Migrate deCONZ Group and Scenes to new entity naming style (#74761)

This commit is contained in:
Robert Svensson 2022-07-09 19:17:50 +02:00 committed by GitHub
parent 04bb2d1e5d
commit 24ca656372
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 3 deletions

View File

@ -120,6 +120,8 @@ class DeconzDevice(DeconzBase, Entity):
class DeconzSceneMixin(DeconzDevice):
"""Representation of a deCONZ scene."""
_attr_has_entity_name = True
_device: PydeconzScene
def __init__(
@ -130,7 +132,9 @@ class DeconzSceneMixin(DeconzDevice):
"""Set up a scene."""
super().__init__(device, gateway)
self._attr_name = device.full_name
self.group = self.gateway.api.groups[device.group_id]
self._attr_name = device.name
self._group_identifier = self.get_parent_identifier()
def get_device_identifier(self) -> str:
@ -139,7 +143,7 @@ class DeconzSceneMixin(DeconzDevice):
def get_parent_identifier(self) -> str:
"""Describe a unique identifier for group this scene belongs to."""
return f"{self.gateway.bridgeid}-{self._device.group_deconz_id}"
return f"{self.gateway.bridgeid}-{self.group.deconz_id}"
@property
def unique_id(self) -> str:
@ -149,4 +153,10 @@ class DeconzSceneMixin(DeconzDevice):
@property
def device_info(self) -> DeviceInfo:
"""Return a device description for device registry."""
return DeviceInfo(identifiers={(DECONZ_DOMAIN, self._group_identifier)})
return DeviceInfo(
identifiers={(DECONZ_DOMAIN, self._group_identifier)},
manufacturer="Dresden Elektronik",
model="deCONZ group",
name=self.group.name,
via_device=(DECONZ_DOMAIN, self.gateway.api.config.bridge_id),
)

View File

@ -289,6 +289,8 @@ class DeconzLight(DeconzBaseLight[Light]):
class DeconzGroup(DeconzBaseLight[Group]):
"""Representation of a deCONZ group."""
_attr_has_entity_name = True
_device: Group
def __init__(self, device: Group, gateway: DeconzGateway) -> None:
@ -296,6 +298,8 @@ class DeconzGroup(DeconzBaseLight[Group]):
self._unique_id = f"{gateway.bridgeid}-{device.deconz_id}"
super().__init__(device, gateway)
self._attr_name = None
@property
def unique_id(self) -> str:
"""Return a unique identifier for this device."""