Просмотр исходного кода

tinytuya.status() sometimes returns None.

This was handled in the receive loop, but not when refreshing the dps on demand.

Issue #444
Jason Rumney 3 лет назад
Родитель
Сommit
6d561b2965
1 измененных файлов с 5 добавлено и 4 удалено
  1. 5 4
      custom_components/tuya_local/device.py

+ 5 - 4
custom_components/tuya_local/device.py

@@ -359,10 +359,11 @@ class TuyaLocalDevice(object):
 
     def _refresh_cached_state(self):
         new_state = self._api.status()
-        self._cached_state = self._cached_state | new_state.get("dps", {})
-        self._cached_state["updated_at"] = time()
-        for entity in self._children:
-            entity.async_schedule_update_ha_state()
+        if new_state:
+            self._cached_state = self._cached_state | new_state.get("dps", {})
+            self._cached_state["updated_at"] = time()
+            for entity in self._children:
+                entity.async_schedule_update_ha_state()
         _LOGGER.debug(
             "%s refreshed device state: %s",
             self.name,