From d113ea8e479ef721456c565d5d3663ae9452c477 Mon Sep 17 00:00:00 2001 From: "Barry vd. Heuvel" Date: Sat, 6 Jul 2024 19:04:52 +0200 Subject: [PATCH] Convert Hue scenes brightness to 0..255 (#105871) Co-authored-by: Franck Nijhof --- homeassistant/components/hue/scene.py | 3 +++ tests/components/hue/test_scene.py | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/hue/scene.py b/homeassistant/components/hue/scene.py index 67148eb8be8..6808ddb5353 100644 --- a/homeassistant/components/hue/scene.py +++ b/homeassistant/components/hue/scene.py @@ -177,6 +177,9 @@ class HueSceneEntity(HueSceneEntityBase): if action.action.dimming: brightness = action.action.dimming.brightness break + if brightness is not None: + # Hue uses a range of [0, 100] to control brightness. + brightness = round((brightness / 100) * 255) return { "group_name": self.group.metadata.name, "group_type": self.group.type.value, diff --git a/tests/components/hue/test_scene.py b/tests/components/hue/test_scene.py index b468a5ab348..9488e0e14ce 100644 --- a/tests/components/hue/test_scene.py +++ b/tests/components/hue/test_scene.py @@ -35,7 +35,7 @@ async def test_scene( assert test_entity.attributes["group_type"] == "zone" assert test_entity.attributes["name"] == "Dynamic Test Scene" assert test_entity.attributes["speed"] == 0.6269841194152832 - assert test_entity.attributes["brightness"] == 46.85 + assert test_entity.attributes["brightness"] == 119 assert test_entity.attributes["is_dynamic"] is True # test (regular) scene for a hue room @@ -47,7 +47,7 @@ async def test_scene( assert test_entity.attributes["group_type"] == "room" assert test_entity.attributes["name"] == "Regular Test Scene" assert test_entity.attributes["speed"] == 0.5 - assert test_entity.attributes["brightness"] == 100.0 + assert test_entity.attributes["brightness"] == 255 assert test_entity.attributes["is_dynamic"] is False # test smart scene @@ -170,7 +170,7 @@ async def test_scene_updates( assert test_entity is not None assert test_entity.state == STATE_UNKNOWN assert test_entity.name == "Test Room Mocked Scene" - assert test_entity.attributes["brightness"] == 65.0 + assert test_entity.attributes["brightness"] == 166 # test update updated_resource = {**FAKE_SCENE} @@ -179,7 +179,7 @@ async def test_scene_updates( await hass.async_block_till_done() test_entity = hass.states.get(test_entity_id) assert test_entity is not None - assert test_entity.attributes["brightness"] == 35.0 + assert test_entity.attributes["brightness"] == 89 # # test entity name changes on group name change mock_bridge_v2.api.emit_event(