From 5ca330ddae2eb245e079cd2f56f91b0618aa9671 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Sun, 17 May 2026 18:31:28 +0000 Subject: [PATCH] Fix SleepIQ timer units: seconds should be minutes for core climate and foot warmer --- homeassistant/components/sleepiq/number.py | 4 +++- tests/components/sleepiq/test_number.py | 10 +++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/sleepiq/number.py b/homeassistant/components/sleepiq/number.py index b3de19dfabbe3a..a5f10f4ebf46f8 100644 --- a/homeassistant/components/sleepiq/number.py +++ b/homeassistant/components/sleepiq/number.py @@ -158,6 +158,8 @@ def _get_core_climate_unique_id( set_value_fn=_async_set_foot_warmer_time, get_name_fn=_get_foot_warming_name, get_unique_id_fn=_get_foot_warming_unique_id, + native_unit_of_measurement=UnitOfTime.MINUTES, + device_class=NumberDeviceClass.DURATION, ), CORE_CLIMATE_TIMER: SleepIQNumberEntityDescription( key=CORE_CLIMATE_TIMER, @@ -170,7 +172,7 @@ def _get_core_climate_unique_id( set_value_fn=_async_set_core_climate_time, get_name_fn=_get_core_climate_name, get_unique_id_fn=_get_core_climate_unique_id, - native_unit_of_measurement=UnitOfTime.SECONDS, + native_unit_of_measurement=UnitOfTime.MINUTES, device_class=NumberDeviceClass.DURATION, ), } diff --git a/tests/components/sleepiq/test_number.py b/tests/components/sleepiq/test_number.py index d6ec33bb56ce60..e3b86bce41a6df 100644 --- a/tests/components/sleepiq/test_number.py +++ b/tests/components/sleepiq/test_number.py @@ -8,7 +8,13 @@ DOMAIN as NUMBER_DOMAIN, SERVICE_SET_VALUE, ) -from homeassistant.const import ATTR_ENTITY_ID, ATTR_FRIENDLY_NAME, ATTR_ICON +from homeassistant.const import ( + ATTR_ENTITY_ID, + ATTR_FRIENDLY_NAME, + ATTR_ICON, + ATTR_UNIT_OF_MEASUREMENT, + UnitOfTime, +) from homeassistant.core import HomeAssistant from homeassistant.helpers import entity_registry as er @@ -178,6 +184,7 @@ async def test_foot_warmer_timer( ) assert state.state == "120.0" assert state.attributes.get(ATTR_ICON) == "mdi:timer" + assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == UnitOfTime.MINUTES assert state.attributes.get(ATTR_MIN) == 30 assert state.attributes.get(ATTR_MAX) == 360 assert state.attributes.get(ATTR_STEP) == 30 @@ -217,6 +224,7 @@ async def test_core_climate_timer( ) assert state.state == "240.0" assert state.attributes.get(ATTR_ICON) == "mdi:timer" + assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == UnitOfTime.MINUTES assert state.attributes.get(ATTR_MIN) == 0 assert state.attributes.get(ATTR_MAX) == 600 assert state.attributes.get(ATTR_STEP) == 30