Quellcode durchsuchen

Unixtime should not need a mapping to convert to datetime

Previously HA also accepted unix timestamps for timestamp class
sensors, so this went unnoticed. But now it blindly tries to get the
timezone, which causes an error if the sensor is reporting an integer
value rather than a DateTime object.

Discussion #2080
Jason Rumney vor 1 Jahr
Ursprung
Commit
4e25f86383
1 geänderte Dateien mit 14 neuen und 14 gelöschten Zeilen
  1. 14 14
      custom_components/tuya_local/helpers/device_config.py

+ 14 - 14
custom_components/tuya_local/helpers/device_config.py

@@ -716,21 +716,21 @@ class TuyaDpsConfig:
                 result = result / scale
                 replaced = True
 
-            if self.rawtype == "unixtime" and isinstance(result, int):
-                try:
-                    result = datetime.fromtimestamp(result)
-                    replaced = True
-                except Exception:
-                    _LOGGER.warning("Invalid timestamp %d", result)
+        if self.rawtype == "unixtime" and isinstance(result, int):
+            try:
+                result = datetime.fromtimestamp(result)
+                replaced = True
+            except Exception:
+                _LOGGER.warning("Invalid timestamp %d", result)
 
-            if replaced:
-                _LOGGER.debug(
-                    "%s: Mapped dps %s value from %s to %s",
-                    self._entity._device.name,
-                    self.id,
-                    val,
-                    result,
-                )
+        if replaced:
+            _LOGGER.debug(
+                "%s: Mapped dps %s value from %s to %s",
+                self._entity._device.name,
+                self.id,
+                val,
+                result,
+            )
 
         return result