From 7b26bbea1552ab406473e580cabb0e325e96f89f Mon Sep 17 00:00:00 2001 From: Laurens <43173895+GreenGrassBlueOcean@users.noreply.github.com> Date: Sat, 17 Oct 2026 00:10:32 +0200 Subject: [PATCH] fix(lighting): validate hue (0..360) and saturation (0..100) ranges in OWNLightingCommand.hs --- OWNd/message/lighting.py | 2 +- tests/test_who1_ts10_builders.py | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/OWNd/message/lighting.py b/OWNd/message/lighting.py index 344e29a..8c0721d 100644 --- a/OWNd/message/lighting.py +++ b/OWNd/message/lighting.py @@ -430,7 +430,7 @@ def hs(self) -> tuple[int, int] | None: v = int(self._dimension_value[2]) except (TypeError, ValueError): return None - if h <= 360 and (h, s, v) != (511, 127, 255): + if 0 <= h <= 360 and 0 <= s <= 100 and (h, s, v) != (511, 127, 255): return (h, s) return None diff --git a/tests/test_who1_ts10_builders.py b/tests/test_who1_ts10_builders.py index 76e606e..f23afc1 100644 --- a/tests/test_who1_ts10_builders.py +++ b/tests/test_who1_ts10_builders.py @@ -118,6 +118,12 @@ def test_lighting_dimension_properties(): cmd_hs._dimension_value = ["511", "127", "255"] assert cmd_hs.hs is None + cmd_hs._dimension_value = ["-1", "50", "80"] + assert cmd_hs.hs is None + cmd_hs._dimension_value = ["120", "-1", "80"] + assert cmd_hs.hs is None + cmd_hs._dimension_value = ["120", "101", "80"] + assert cmd_hs.hs is None cmd_hs._dimension_value = ["abc", "50", "80"] assert cmd_hs.hs is None