From 05c0671ed898645933996a9be4495c212c790408 Mon Sep 17 00:00:00 2001 From: Thibaut Etienne Date: Mon, 6 Jul 2020 12:02:37 +0200 Subject: [PATCH 1/2] Remove some useless lock variables --- custom_components/tahoma/const.py | 3 -- custom_components/tahoma/cover.py | 52 +++---------------------------- 2 files changed, 5 insertions(+), 50 deletions(-) diff --git a/custom_components/tahoma/const.py b/custom_components/tahoma/const.py index b0304ab1b..e10000c65 100644 --- a/custom_components/tahoma/const.py +++ b/custom_components/tahoma/const.py @@ -89,9 +89,6 @@ # TaHoma Attributes ATTR_MEM_POS = "memorized_position" ATTR_RSSI_LEVEL = "rssi_level" -ATTR_LOCK_START_TS = "lock_start_ts" -ATTR_LOCK_END_TS = "lock_end_ts" -ATTR_LOCK_LEVEL = "lock_level" ATTR_LOCK_ORIG = "lock_originator" # TaHoma internal device states diff --git a/custom_components/tahoma/cover.py b/custom_components/tahoma/cover.py index 0f792790f..fb4a82b95 100644 --- a/custom_components/tahoma/cover.py +++ b/custom_components/tahoma/cover.py @@ -21,13 +21,9 @@ SUPPORT_STOP_TILT, CoverEntity, ) -from homeassistant.util.dt import utcnow from .const import ( - ATTR_LOCK_END_TS, - ATTR_LOCK_LEVEL, ATTR_LOCK_ORIG, - ATTR_LOCK_START_TS, ATTR_MEM_POS, COMMAND_SET_CLOSURE, COMMAND_SET_ORIENTATION, @@ -41,7 +37,6 @@ CORE_SLATS_ORIENTATION_STATE, CORE_TARGET_CLOSURE_STATE, DOMAIN, - IO_PRIORITY_LOCK_LEVEL_STATE, IO_PRIORITY_LOCK_ORIGINATOR_STATE, TAHOMA_COVER_DEVICE_CLASSES, TAHOMA_TYPES, @@ -77,15 +72,7 @@ def __init__(self, tahoma_device, controller): self._tilt_position = None self._position = None - self._icon = None self._lock_timer = 0 # Can be 0 and bigger - self._lock_start_ts = None - self._lock_end_ts = None - - # Can be 'comfortLevel1', 'comfortLevel2', 'comfortLevel3', - # 'comfortLevel4', 'environmentProtection', 'humanProtection', - # 'userLevel1', 'userLevel2' - self._lock_level = None # Can be 'LSC', 'SAAC', 'SFC', 'UPS', 'externalGateway', 'localUser', # 'myself', 'rain', 'security', 'temperature', 'timer', 'user', 'wind' @@ -144,29 +131,7 @@ def update_tilt_position(self): def update_lock(self): states = self.tahoma_device.active_states - if CORE_PRIORITY_LOCK_TIMER_STATE in states: - old_lock_timer = self._lock_timer - self._lock_timer = states[CORE_PRIORITY_LOCK_TIMER_STATE] - - # Derive timestamps from _lock_timer, only if not already set or something has changed - if self._lock_timer > 0: - _LOGGER.debug("Update %s, lock_timer: %d", self._name, self._lock_timer) - if self._lock_start_ts is None: - self._lock_start_ts = utcnow() - if self._lock_end_ts is None or old_lock_timer != self._lock_timer: - self._lock_end_ts = utcnow() + timedelta(seconds=self._lock_timer) - else: - self._lock_start_ts = None - self._lock_end_ts = None - else: - self._lock_timer = 0 - self._lock_start_ts = None - self._lock_end_ts = None - - # Set Lock Level - self._lock_level = states.get(IO_PRIORITY_LOCK_LEVEL_STATE) - - # Set Lock Originator + self._lock_timer = states.get(CORE_PRIORITY_LOCK_TIMER_STATE, 0) self._lock_originator = states.get(IO_PRIORITY_LOCK_ORIGINATOR_STATE) @property @@ -255,12 +220,6 @@ def device_state_attributes(self): attr[ATTR_MEM_POS] = self.tahoma_device.active_states[ CORE_MEMORIZED_1_POSITION_STATE ] - if self._lock_start_ts is not None: - attr[ATTR_LOCK_START_TS] = self._lock_start_ts.isoformat() - if self._lock_end_ts is not None: - attr[ATTR_LOCK_END_TS] = self._lock_end_ts.isoformat() - if self._lock_level is not None: - attr[ATTR_LOCK_LEVEL] = self._lock_level if self._lock_originator is not None: attr[ATTR_LOCK_ORIG] = self._lock_originator @@ -269,13 +228,12 @@ def device_state_attributes(self): @property def icon(self): """Return the icon to use in the frontend, if any.""" + icon = None if self._lock_timer > 0: + icon = "mdi:lock-alert" if self._lock_originator == "wind": - return "mdi:weather-windy" - else: - return "mdi:lock-alert" - - return self._icon + icon = "mdi:weather-windy" + return icon def open_cover(self, **kwargs): """Open the cover.""" From 6d375d354a7d84a358034f4a9bed3e9cf6969aca Mon Sep 17 00:00:00 2001 From: Thibaut Etienne Date: Mon, 6 Jul 2020 12:28:05 +0200 Subject: [PATCH 2/2] Directly return the icon value --- custom_components/tahoma/cover.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/custom_components/tahoma/cover.py b/custom_components/tahoma/cover.py index fb4a82b95..37bcbd6d3 100644 --- a/custom_components/tahoma/cover.py +++ b/custom_components/tahoma/cover.py @@ -228,12 +228,12 @@ def device_state_attributes(self): @property def icon(self): """Return the icon to use in the frontend, if any.""" - icon = None if self._lock_timer > 0: - icon = "mdi:lock-alert" if self._lock_originator == "wind": - icon = "mdi:weather-windy" - return icon + return "mdi:weather-windy" + else: + return "mdi:lock-alert" + return None def open_cover(self, **kwargs): """Open the cover."""