Adapt zwave_js to set via_device_id in DeviceInfo (#177861)

This commit is contained in:
Erik Montnemery
2026-08-01 01:40:38 +02:00
committed by GitHub
parent 4250056be3
commit 397ae438fe
2 changed files with 16 additions and 8 deletions
@@ -696,11 +696,15 @@ class ControllerEvents:
node_id_device = self.dev_reg.async_get_device_by_identifier(
device_id, self.config_entry.entry_id
)
via_identifier = None
via_device_id: str | None = None
controller = driver.controller
# Get the controller node device ID if this node is not the controller
if controller.own_node and controller.own_node != node:
via_identifier = get_device_id(driver, controller.own_node)
via_device_id = dr.async_get_device_id_by_identifier(
self.hass,
get_device_id(driver, controller.own_node),
config_entry_id=self.config_entry.entry_id,
)
if device_id_ext:
# If there is a device with this node ID but with a different hardware
@@ -747,7 +751,7 @@ class ControllerEvents:
model=node.device_config.label,
manufacturer=node.device_config.manufacturer,
suggested_area=node.location or UNDEFINED,
via_device=via_identifier,
via_device_id=via_device_id,
)
async_dispatcher_send(self.hass, EVENT_DEVICE_ADDED_TO_REGISTRY, device)
+9 -5
View File
@@ -1141,6 +1141,14 @@ async def websocket_provision_smart_start_node(
manufacturer = device_info.manufacturer
model = device_info.label
via_device_id: str | None = None
if driver.controller.own_node:
via_device_id = dr.async_get_device_id_by_identifier(
hass,
get_device_id(driver, driver.controller.own_node),
config_entry_id=entry.entry_id,
)
# Create an empty device
device = dev_reg.async_get_or_create(
config_entry_id=entry.entry_id,
@@ -1148,11 +1156,7 @@ async def websocket_provision_smart_start_node(
name=device_name,
manufacturer=manufacturer,
model=model,
via_device=(
get_device_id(driver, driver.controller.own_node)
if driver.controller.own_node
else None
),
via_device_id=via_device_id,
)
dev_reg.async_update_device(
device.id, area_id=msg.get(AREA_ID), name_by_user=device_name