1 """Notification support for Homematic."""
3 from __future__
import annotations
5 import voluptuous
as vol
9 PLATFORM_SCHEMA
as NOTIFY_PLATFORM_SCHEMA,
10 BaseNotificationService,
24 SERVICE_SET_DEVICE_VALUE,
27 PLATFORM_SCHEMA = NOTIFY_PLATFORM_SCHEMA.extend(
29 vol.Required(ATTR_ADDRESS): vol.All(cv.string, vol.Upper),
30 vol.Required(ATTR_CHANNEL): vol.Coerce(int),
31 vol.Required(ATTR_PARAM): vol.All(cv.string, vol.Upper),
32 vol.Required(ATTR_VALUE): cv.match_all,
33 vol.Optional(ATTR_INTERFACE): cv.string,
41 discovery_info: DiscoveryInfoType |
None =
None,
42 ) -> HomematicNotificationService:
43 """Get the Homematic notification service."""
45 ATTR_ADDRESS: config[ATTR_ADDRESS],
46 ATTR_CHANNEL: config[ATTR_CHANNEL],
47 ATTR_PARAM: config[ATTR_PARAM],
48 ATTR_VALUE: config[ATTR_VALUE],
50 if ATTR_INTERFACE
in config:
51 data[ATTR_INTERFACE] = config[ATTR_INTERFACE]
57 """Implement the notification service for Homematic."""
60 """Initialize the service."""
65 """Send a notification to the device."""
66 data = {**self.
datadata, **kwargs.get(ATTR_DATA, {})}
68 if data.get(ATTR_VALUE)
is not None:
69 templ = template_helper.Template(self.
datadata[ATTR_VALUE], self.
hasshass)
70 data[ATTR_VALUE] = template_helper.render_complex(templ,
None)
72 self.
hasshass.services.call(DOMAIN, SERVICE_SET_DEVICE_VALUE, data)
def send_message(self, message="", **kwargs)
def __init__(self, hass, data)
HomematicNotificationService get_service(HomeAssistant hass, ConfigType config, DiscoveryInfoType|None discovery_info=None)