From 4c2f1dfed81a5f44f3cef3489bf6ce26bf07025d Mon Sep 17 00:00:00 2001 From: Robert Gering Date: Sat, 3 Oct 2026 13:09:37 -0700 Subject: [PATCH] Fix Hue temperature sensor crash on None value (#184148) Co-authored-by: Claude Opus 5.5 --- homeassistant/components/hue/v2/sensor.py | 4 +++- tests/components/hue/test_sensor_v2.py | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/hue/v2/sensor.py b/homeassistant/components/hue/v2/sensor.py index 6f408c2959b2..41bce23e81a7 100644 --- a/homeassistant/components/hue/v2/sensor.py +++ b/homeassistant/components/hue/v2/sensor.py @@ -149,8 +149,10 @@ class HueTemperatureSensor(HueSensorBase): @property @override - def native_value(self) -> float: + def native_value(self) -> float | None: """Return the value reported by the sensor.""" + if self.resource.temperature.value is None: + return None return round(self.resource.temperature.value, 1) diff --git a/tests/components/hue/test_sensor_v2.py b/tests/components/hue/test_sensor_v2.py index ed86444933cc..028b4b2682ab 100644 --- a/tests/components/hue/test_sensor_v2.py +++ b/tests/components/hue/test_sensor_v2.py @@ -187,6 +187,24 @@ async def test_grouped_light_level_sensor( ) # Light level 30000 translates to 10^((30000-1)/10000) ≈ 999 lux +async def test_temperature_sensor_none_value( + hass: HomeAssistant, mock_bridge_v2: Mock, v2_resources_test_data: JsonArrayType +) -> None: + """Test that temperature sensor handles None value without crashing.""" + for resource in v2_resources_test_data: + if resource.get("id") == "66466e14-d2fa-4b96-b2a0-e10de9cd8b8b": + resource["temperature"]["temperature"] = None + resource["temperature"]["temperature_valid"] = False + break + + await mock_bridge_v2.api.load_test_data(v2_resources_test_data) + await setup_platform(hass, mock_bridge_v2, Platform.SENSOR) + + sensor = hass.states.get("sensor.hue_motion_sensor_temperature") + assert sensor is not None + assert sensor.state == STATE_UNKNOWN + + async def test_light_level_sensor_none_value( hass: HomeAssistant, mock_bridge_v2: Mock, v2_resources_test_data: JsonArrayType ) -> None: