From afe4647896db77fa9bb806e14dfd3a77ee9be1a3 Mon Sep 17 00:00:00 2001 From: Tony Phan Date: Thu, 11 Jun 2020 17:11:46 +1000 Subject: [PATCH] Add icon_type as configuration variable (#36594) --- homeassistant/components/lametric/notify.py | 25 ++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/lametric/notify.py b/homeassistant/components/lametric/notify.py index 052eb3bceac..d04225f2ce4 100644 --- a/homeassistant/components/lametric/notify.py +++ b/homeassistant/components/lametric/notify.py @@ -20,10 +20,12 @@ from . import DOMAIN as LAMETRIC_DOMAIN _LOGGER = logging.getLogger(__name__) AVAILABLE_PRIORITIES = ["info", "warning", "critical"] +AVAILABLE_ICON_TYPES = ["none", "info", "alert"] CONF_CYCLES = "cycles" CONF_LIFETIME = "lifetime" CONF_PRIORITY = "priority" +CONF_ICON_TYPE = "icon_type" PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( { @@ -31,6 +33,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( vol.Optional(CONF_LIFETIME, default=10): cv.positive_int, vol.Optional(CONF_CYCLES, default=1): cv.positive_int, vol.Optional(CONF_PRIORITY, default="warning"): vol.In(AVAILABLE_PRIORITIES), + vol.Optional(CONF_ICON_TYPE, default="info"): vol.In(AVAILABLE_ICON_TYPES), } ) @@ -44,19 +47,23 @@ def get_service(hass, config, discovery_info=None): config[CONF_LIFETIME] * 1000, config[CONF_CYCLES], config[CONF_PRIORITY], + config[CONF_ICON_TYPE], ) class LaMetricNotificationService(BaseNotificationService): """Implement the notification service for LaMetric.""" - def __init__(self, hasslametricmanager, icon, lifetime, cycles, priority): + def __init__( + self, hasslametricmanager, icon, lifetime, cycles, priority, icon_type + ): """Initialize the service.""" self.hasslametricmanager = hasslametricmanager self._icon = icon self._lifetime = lifetime self._cycles = cycles self._priority = priority + self._icon_type = icon_type self._devices = [] def send_message(self, message="", **kwargs): @@ -69,6 +76,7 @@ class LaMetricNotificationService(BaseNotificationService): cycles = self._cycles sound = None priority = self._priority + icon_type = self._icon_type # Additional data? if data is not None: @@ -82,6 +90,15 @@ class LaMetricNotificationService(BaseNotificationService): _LOGGER.error("Sound ID %s unknown, ignoring", data["sound"]) if "cycles" in data: cycles = int(data["cycles"]) + if "icon_type" in data: + if data["icon_type"] in AVAILABLE_ICON_TYPES: + icon_type = data["icon_type"] + else: + _LOGGER.warning( + "Priority %s invalid, using default %s", + data["priority"], + priority, + ) if "priority" in data: if data["priority"] in AVAILABLE_PRIORITIES: priority = data["priority"] @@ -91,7 +108,6 @@ class LaMetricNotificationService(BaseNotificationService): data["priority"], priority, ) - text_frame = SimpleFrame(icon, message) _LOGGER.debug( "Icon/Message/Cycles/Lifetime: %s, %s, %d, %d", @@ -120,7 +136,10 @@ class LaMetricNotificationService(BaseNotificationService): try: lmn.set_device(dev) lmn.send_notification( - model, lifetime=self._lifetime, priority=priority + model, + lifetime=self._lifetime, + priority=priority, + icon_type=icon_type, ) _LOGGER.debug("Sent notification to LaMetric %s", dev["name"]) except OSError: