From 0a3ec6fea17284aa9ce537218635cfd6eab47332 Mon Sep 17 00:00:00 2001
From: Paulus Schoutsen <balloob@gmail.com>
Date: Sat, 4 Apr 2020 14:29:03 -0700
Subject: [PATCH] Correct Hue mireds for lights (#33597)

---
 homeassistant/components/hue/light.py | 16 +++++++
 tests/components/hue/test_light.py    | 64 ++++++++++++---------------
 2 files changed, 44 insertions(+), 36 deletions(-)

diff --git a/homeassistant/components/hue/light.py b/homeassistant/components/hue/light.py
index 649be55e94e..8a3a5c84c02 100644
--- a/homeassistant/components/hue/light.py
+++ b/homeassistant/components/hue/light.py
@@ -278,6 +278,22 @@ class HueLight(Light):
             return self.light.action.get("ct")
         return self.light.state.get("ct")
 
+    @property
+    def min_mireds(self):
+        """Return the coldest color_temp that this light supports."""
+        if self.is_group:
+            return super().min_mireds
+
+        return self.light.controlcapabilities["ct"]["min"]
+
+    @property
+    def max_mireds(self):
+        """Return the warmest color_temp that this light supports."""
+        if self.is_group:
+            return super().min_mireds
+
+        return self.light.controlcapabilities["ct"]["max"]
+
     @property
     def is_on(self):
         """Return true if device is on."""
diff --git a/tests/components/hue/test_light.py b/tests/components/hue/test_light.py
index 998e3cdea50..c4a2a2fc09a 100644
--- a/tests/components/hue/test_light.py
+++ b/tests/components/hue/test_light.py
@@ -49,6 +49,17 @@ GROUP_RESPONSE = {
         "state": {"any_on": True, "all_on": False},
     },
 }
+LIGHT_1_CAPABILITIES = {
+    "certified": True,
+    "control": {
+        "mindimlevel": 5000,
+        "maxlumen": 600,
+        "colorgamuttype": "A",
+        "colorgamut": [[0.704, 0.296], [0.2151, 0.7106], [0.138, 0.08]],
+        "ct": {"min": 153, "max": 500},
+    },
+    "streaming": {"renderer": True, "proxy": False},
+}
 LIGHT_1_ON = {
     "state": {
         "on": True,
@@ -62,12 +73,7 @@ LIGHT_1_ON = {
         "colormode": "xy",
         "reachable": True,
     },
-    "capabilities": {
-        "control": {
-            "colorgamuttype": "A",
-            "colorgamut": [[0.704, 0.296], [0.2151, 0.7106], [0.138, 0.08]],
-        }
-    },
+    "capabilities": LIGHT_1_CAPABILITIES,
     "type": "Extended color light",
     "name": "Hue Lamp 1",
     "modelid": "LCT001",
@@ -88,12 +94,7 @@ LIGHT_1_OFF = {
         "colormode": "xy",
         "reachable": True,
     },
-    "capabilities": {
-        "control": {
-            "colorgamuttype": "A",
-            "colorgamut": [[0.704, 0.296], [0.2151, 0.7106], [0.138, 0.08]],
-        }
-    },
+    "capabilities": LIGHT_1_CAPABILITIES,
     "type": "Extended color light",
     "name": "Hue Lamp 1",
     "modelid": "LCT001",
@@ -101,6 +102,17 @@ LIGHT_1_OFF = {
     "manufacturername": "Philips",
     "uniqueid": "456",
 }
+LIGHT_2_CAPABILITIES = {
+    "certified": True,
+    "control": {
+        "mindimlevel": 5000,
+        "maxlumen": 600,
+        "colorgamuttype": "A",
+        "colorgamut": [[0.704, 0.296], [0.2151, 0.7106], [0.138, 0.08]],
+        "ct": {"min": 153, "max": 500},
+    },
+    "streaming": {"renderer": True, "proxy": False},
+}
 LIGHT_2_OFF = {
     "state": {
         "on": False,
@@ -114,12 +126,7 @@ LIGHT_2_OFF = {
         "colormode": "hs",
         "reachable": True,
     },
-    "capabilities": {
-        "control": {
-            "colorgamuttype": "A",
-            "colorgamut": [[0.704, 0.296], [0.2151, 0.7106], [0.138, 0.08]],
-        }
-    },
+    "capabilities": LIGHT_2_CAPABILITIES,
     "type": "Extended color light",
     "name": "Hue Lamp 2",
     "modelid": "LCT001",
@@ -140,12 +147,7 @@ LIGHT_2_ON = {
         "colormode": "hs",
         "reachable": True,
     },
-    "capabilities": {
-        "control": {
-            "colorgamuttype": "A",
-            "colorgamut": [[0.704, 0.296], [0.2151, 0.7106], [0.138, 0.08]],
-        }
-    },
+    "capabilities": LIGHT_2_CAPABILITIES,
     "type": "Extended color light",
     "name": "Hue Lamp 2 new",
     "modelid": "LCT001",
@@ -353,12 +355,7 @@ async def test_new_light_discovered(hass, mock_bridge):
             "colormode": "hs",
             "reachable": True,
         },
-        "capabilities": {
-            "control": {
-                "colorgamuttype": "A",
-                "colorgamut": [[0.704, 0.296], [0.2151, 0.7106], [0.138, 0.08]],
-            }
-        },
+        "capabilities": LIGHT_1_CAPABILITIES,
         "type": "Extended color light",
         "name": "Hue Lamp 3",
         "modelid": "LCT001",
@@ -518,12 +515,7 @@ async def test_other_light_update(hass, mock_bridge):
             "colormode": "hs",
             "reachable": True,
         },
-        "capabilities": {
-            "control": {
-                "colorgamuttype": "A",
-                "colorgamut": [[0.704, 0.296], [0.2151, 0.7106], [0.138, 0.08]],
-            }
-        },
+        "capabilities": LIGHT_2_CAPABILITIES,
         "type": "Extended color light",
         "name": "Hue Lamp 2 new",
         "modelid": "LCT001",
-- 
GitLab