瀏覽代碼

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 1 年之前
父節點
當前提交
4e25f86383
共有 1 個文件被更改,包括 14 次插入14 次删除
  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