From 9967b3340755742a685d902007ae9dc6e7d93103 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Thu, 16 Apr 2020 23:36:41 +0000 Subject: [PATCH] Restore isy light brightness after off --- homeassistant/components/isy994/light.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/homeassistant/components/isy994/light.py b/homeassistant/components/isy994/light.py index be94f8dd27a1b0..a8c30220637821 100644 --- a/homeassistant/components/isy994/light.py +++ b/homeassistant/components/isy994/light.py @@ -24,6 +24,11 @@ def setup_platform( class ISYLightDevice(ISYDevice, Light): """Representation of an ISY994 light device.""" + def __init__(self, node) -> None: + """Initialize the ISY994 light device.""" + super().__init__(node) + self._last_brightness = self.brightness + @property def is_on(self) -> bool: """Get whether the ISY994 light is on.""" @@ -38,12 +43,21 @@ def brightness(self) -> float: def turn_off(self, **kwargs) -> None: """Send the turn off command to the ISY994 light device.""" + self._last_brightness = self.brightness if not self._node.off(): _LOGGER.debug("Unable to turn off light") + def on_update(self, event: object) -> None: + """Save brightness in the update event from the ISY994 Node.""" + if not self.is_unknown() and self.value != 0: + self._last_brightness = self.value + super().on_update(event) + # pylint: disable=arguments-differ def turn_on(self, brightness=None, **kwargs) -> None: """Send the turn on command to the ISY994 light device.""" + if brightness is None and self._last_brightness is not None: + brightness = self._last_brightness if not self._node.on(val=brightness): _LOGGER.debug("Unable to turn on light")