mirror of
https://github.com/home-assistant/core.git
synced 2026-08-07 22:05:35 +01:00
Adapt zwave_js to set via_device_id in DeviceInfo (#177861)
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user