Quellcode durchsuchen

fix(device_config): return target_range for range() when appropriate

When range is called for determining the HA side range, we should use target_range
instead when available.

PR #5324 by @nalditopr
Jason Rumney vor 6 Tagen
Ursprung
Commit
5f033c3114
1 geänderte Dateien mit 6 neuen und 1 gelöschten Zeilen
  1. 6 1
      custom_components/tuya_local/helpers/device_config.py

+ 6 - 1
custom_components/tuya_local/helpers/device_config.py

@@ -660,10 +660,15 @@ class TuyaDpsConfig:
         r = self._config.get("range")
         r = self._config.get("range")
         if mapping:
         if mapping:
             r = mapping.get("range", r)
             r = mapping.get("range", r)
+            if scaled and "target_range" in mapping:
+                r = mapping.get("target_range", r)
+                scale = 1
             cond = self._active_condition(mapping, device)
             cond = self._active_condition(mapping, device)
             if cond:
             if cond:
                 r = cond.get("range", r)
                 r = cond.get("range", r)
-
+                if scaled and "target_range" in cond:
+                    r = cond.get("target_range", r)
+                    scale = 1
         if r and "min" in r and "max" in r:
         if r and "min" in r and "max" in r:
             return _scale_range(r, scale)
             return _scale_range(r, scale)
         else:
         else: