Quellcode durchsuchen

cover: don't return False from is_closing and is_opening if unknown

The same as previous commit for is_closed - as these three are used in
combination to determine whether the state is open, we should only return
any of them when the state can be determined.

Issue #292
Jason Rumney vor 3 Jahren
Ursprung
Commit
92feef1ec4
1 geänderte Dateien mit 11 neuen und 8 gelöschten Zeilen
  1. 11 8
      custom_components/tuya_local/generic/cover.py

+ 11 - 8
custom_components/tuya_local/generic/cover.py

@@ -109,10 +109,12 @@ class TuyaLocalCover(TuyaLocalEntity, CoverEntity):
             return self._action_dp.get_value(self._device) == "opening"
         # Otherwise use last command and check it hasn't completed
         if self._control_dp:
-            return (
-                self._control_dp.get_value(self._device) == "open"
-                and self.current_cover_position != 100
-            )
+            pos = self.current_cover_position
+            if pos is not None:
+                return (
+                    self._control_dp.get_value(self._device) == "open"
+                    and self.current_cover_position != 100
+                )
 
     @property
     def is_closing(self):
@@ -122,10 +124,11 @@ class TuyaLocalCover(TuyaLocalEntity, CoverEntity):
             return self._action_dp.get_value(self._device) == "closing"
         # Otherwise use last command and check it hasn't completed
         if self._control_dp:
-            return (
-                self._control_dp.get_value(self._device) == "close"
-                and self.is_closed is False
-            )
+            closed = self.is_closed
+            if closed is not None:
+                return (
+                    self._control_dp.get_value(self._device) == "close" and not closed
+                )
 
     @property
     def is_closed(self):