From 4820acb897847fdb6d3faf3d2bff949daafc753b Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Sat, 20 Nov 2021 23:45:51 +0100 Subject: [PATCH] Fix for deviceless entities in Hue integration (#59820) --- homeassistant/components/hue/v2/entity.py | 4 +--- tests/components/hue/test_light_v2.py | 2 ++ tests/components/hue/test_scene.py | 12 ++++++++++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/hue/v2/entity.py b/homeassistant/components/hue/v2/entity.py index 1b646857e44..9bb81c16fa5 100644 --- a/homeassistant/components/hue/v2/entity.py +++ b/homeassistant/components/hue/v2/entity.py @@ -36,9 +36,7 @@ class HueBaseEntity(Entity): self.bridge = bridge self.controller = controller self.resource = resource - self.device = ( - controller.get_device(resource.id) or bridge.api.config.bridge_device - ) + self.device = controller.get_device(resource.id) self.logger = bridge.logger.getChild(resource.type.value) # Entity class attributes diff --git a/tests/components/hue/test_light_v2.py b/tests/components/hue/test_light_v2.py index 0a06a87f7f2..e608ef00e26 100644 --- a/tests/components/hue/test_light_v2.py +++ b/tests/components/hue/test_light_v2.py @@ -240,6 +240,8 @@ async def test_grouped_lights(hass, mock_bridge_v2, v2_resources_test_data): assert entity_entry assert entity_entry.disabled assert entity_entry.disabled_by == er.DISABLED_INTEGRATION + # entity should not have a device assigned + assert entity_entry.device_id is None # enable the entity updated_entry = ent_reg.async_update_entity( diff --git a/tests/components/hue/test_scene.py b/tests/components/hue/test_scene.py index 82595d3845d..15684eb7e56 100644 --- a/tests/components/hue/test_scene.py +++ b/tests/components/hue/test_scene.py @@ -1,6 +1,8 @@ """Philips Hue scene platform tests for V2 bridge/api.""" +from homeassistant.helpers import entity_registry as er + from .conftest import setup_platform from .const import FAKE_SCENE @@ -39,6 +41,16 @@ async def test_scene(hass, mock_bridge_v2, v2_resources_test_data): assert test_entity.attributes["brightness"] == 100.0 assert test_entity.attributes["is_dynamic"] is False + # scene entities should not have a device assigned + ent_reg = er.async_get(hass) + for entity_id in ( + "scene.test_zone_dynamic_test_scene", + "scene.test_room_regular_test_scene", + ): + entity_entry = ent_reg.async_get(entity_id) + assert entity_entry + assert entity_entry.device_id is None + async def test_scene_turn_on_service(hass, mock_bridge_v2, v2_resources_test_data): """Test calling the turn on service on a scene."""