From 1dc488d3a5e067d745d6b3c132da41c9c02ca1d3 Mon Sep 17 00:00:00 2001 From: TheYOSH Date: Wed, 10 Apr 2024 20:20:07 +0200 Subject: [PATCH] Fix kasa relay caching #898 --- hardware/relay/kasa_relay.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/hardware/relay/kasa_relay.py b/hardware/relay/kasa_relay.py index 4716ca527..8a8fbecd9 100644 --- a/hardware/relay/kasa_relay.py +++ b/hardware/relay/kasa_relay.py @@ -45,14 +45,14 @@ async def __set_hardware_state(state): return state - data = self.__state_cache.get_data(self._address[0]) - if data is not None and terrariumUtils.is_true(data[self._device["switch"]]) == (state != 0.0): - return True - data = self.__asyncio.run(__set_hardware_state(state)) + + # Update the cache after relay change + self._get_hardware_value(True) + return data == state - def _get_hardware_value(self): + def _get_hardware_value(self, force = False): async def __get_hardware_state(): data = [] await self.device.update() @@ -66,7 +66,7 @@ async def __get_hardware_state(): try: data = self.__state_cache.get_data(self._address[0]) - if data is None: + if data is None or force: data = self.__asyncio.run(__get_hardware_state()) self.__state_cache.set_data(self._address[0], data, cache_timeout=20)