mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 03:07:37 +00:00
Change ISY994 group device assignments (#84933)
Changes to ISY994 group device assignments
This commit is contained in:
parent
e62ee331c7
commit
a9fa9a5dd3
@ -80,9 +80,6 @@ class ISYEntity(Entity):
|
|||||||
@property
|
@property
|
||||||
def device_info(self) -> DeviceInfo | None:
|
def device_info(self) -> DeviceInfo | None:
|
||||||
"""Return the device_info of the device."""
|
"""Return the device_info of the device."""
|
||||||
if hasattr(self._node, "protocol") and self._node.protocol == PROTO_GROUP:
|
|
||||||
# not a device
|
|
||||||
return None
|
|
||||||
isy = self._node.isy
|
isy = self._node.isy
|
||||||
uuid = isy.configuration["uuid"]
|
uuid = isy.configuration["uuid"]
|
||||||
node = self._node
|
node = self._node
|
||||||
@ -90,9 +87,17 @@ class ISYEntity(Entity):
|
|||||||
|
|
||||||
basename = self._name or str(self._node.name)
|
basename = self._name or str(self._node.name)
|
||||||
|
|
||||||
if hasattr(self._node, "parent_node") and self._node.parent_node is not None:
|
if hasattr(node, "protocol") and node.protocol == PROTO_GROUP:
|
||||||
|
# If Group has only 1 Controller, link to that device, otherwise link to ISY Hub
|
||||||
|
if len(node.controllers) != 1:
|
||||||
|
return DeviceInfo(identifiers={(DOMAIN, uuid)})
|
||||||
|
|
||||||
|
node = isy.nodes.get_by_id(node.controllers[0])
|
||||||
|
basename = node.name
|
||||||
|
|
||||||
|
if hasattr(node, "parent_node") and node.parent_node is not None:
|
||||||
# This is not the parent node, get the parent node.
|
# This is not the parent node, get the parent node.
|
||||||
node = self._node.parent_node
|
node = node.parent_node
|
||||||
basename = node.name
|
basename = node.name
|
||||||
|
|
||||||
device_info = DeviceInfo(
|
device_info = DeviceInfo(
|
||||||
@ -105,7 +110,9 @@ class ISYEntity(Entity):
|
|||||||
|
|
||||||
if hasattr(node, "address"):
|
if hasattr(node, "address"):
|
||||||
assert isinstance(node.address, str)
|
assert isinstance(node.address, str)
|
||||||
device_info[ATTR_NAME] = f"{basename} ({node.address})"
|
device_info[
|
||||||
|
ATTR_NAME
|
||||||
|
] = f"{basename} ({(node.address.rpartition(' ')[0] or node.address)})"
|
||||||
if hasattr(node, "primary_node"):
|
if hasattr(node, "primary_node"):
|
||||||
device_info[ATTR_IDENTIFIERS] = {(DOMAIN, f"{uuid}_{node.address}")}
|
device_info[ATTR_IDENTIFIERS] = {(DOMAIN, f"{uuid}_{node.address}")}
|
||||||
# ISYv5 Device Types
|
# ISYv5 Device Types
|
||||||
|
Loading…
x
Reference in New Issue
Block a user