mirror of
https://github.com/home-assistant/core.git
synced 2025-07-26 06:37:52 +00:00
Use device_id for zwave_js/replace_failed_node command (#72785)
This commit is contained in:
parent
1ef59d1e73
commit
394442e8a9
@ -1083,8 +1083,7 @@ async def websocket_remove_node(
|
|||||||
@websocket_api.websocket_command(
|
@websocket_api.websocket_command(
|
||||||
{
|
{
|
||||||
vol.Required(TYPE): "zwave_js/replace_failed_node",
|
vol.Required(TYPE): "zwave_js/replace_failed_node",
|
||||||
vol.Required(ENTRY_ID): str,
|
vol.Required(DEVICE_ID): str,
|
||||||
vol.Required(NODE_ID): int,
|
|
||||||
vol.Optional(INCLUSION_STRATEGY, default=InclusionStrategy.DEFAULT): vol.All(
|
vol.Optional(INCLUSION_STRATEGY, default=InclusionStrategy.DEFAULT): vol.All(
|
||||||
vol.Coerce(int),
|
vol.Coerce(int),
|
||||||
vol.In(
|
vol.In(
|
||||||
@ -1107,18 +1106,16 @@ async def websocket_remove_node(
|
|||||||
)
|
)
|
||||||
@websocket_api.async_response
|
@websocket_api.async_response
|
||||||
@async_handle_failed_command
|
@async_handle_failed_command
|
||||||
@async_get_entry
|
@async_get_node
|
||||||
async def websocket_replace_failed_node(
|
async def websocket_replace_failed_node(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
connection: ActiveConnection,
|
connection: ActiveConnection,
|
||||||
msg: dict,
|
msg: dict,
|
||||||
entry: ConfigEntry,
|
node: Node,
|
||||||
client: Client,
|
|
||||||
driver: Driver,
|
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Replace a failed node with a new node."""
|
"""Replace a failed node with a new node."""
|
||||||
controller = driver.controller
|
assert node.client.driver
|
||||||
node_id = msg[NODE_ID]
|
controller = node.client.driver.controller
|
||||||
inclusion_strategy = InclusionStrategy(msg[INCLUSION_STRATEGY])
|
inclusion_strategy = InclusionStrategy(msg[INCLUSION_STRATEGY])
|
||||||
force_security = msg.get(FORCE_SECURITY)
|
force_security = msg.get(FORCE_SECURITY)
|
||||||
provisioning = (
|
provisioning = (
|
||||||
@ -1232,7 +1229,7 @@ async def websocket_replace_failed_node(
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
result = await controller.async_replace_failed_node(
|
result = await controller.async_replace_failed_node(
|
||||||
controller.nodes[node_id],
|
node,
|
||||||
INCLUSION_STRATEGY_NOT_SMART_START[inclusion_strategy.value],
|
INCLUSION_STRATEGY_NOT_SMART_START[inclusion_strategy.value],
|
||||||
force_security=force_security,
|
force_security=force_security,
|
||||||
provisioning=provisioning,
|
provisioning=provisioning,
|
||||||
|
@ -1511,7 +1511,7 @@ async def test_replace_failed_node(
|
|||||||
dev_reg = dr.async_get(hass)
|
dev_reg = dr.async_get(hass)
|
||||||
|
|
||||||
# Create device registry entry for mock node
|
# Create device registry entry for mock node
|
||||||
dev_reg.async_get_or_create(
|
device = dev_reg.async_get_or_create(
|
||||||
config_entry_id=entry.entry_id,
|
config_entry_id=entry.entry_id,
|
||||||
identifiers={(DOMAIN, "3245146787-67")},
|
identifiers={(DOMAIN, "3245146787-67")},
|
||||||
name="Node 67",
|
name="Node 67",
|
||||||
@ -1526,8 +1526,7 @@ async def test_replace_failed_node(
|
|||||||
{
|
{
|
||||||
ID: 1,
|
ID: 1,
|
||||||
TYPE: "zwave_js/replace_failed_node",
|
TYPE: "zwave_js/replace_failed_node",
|
||||||
ENTRY_ID: entry.entry_id,
|
DEVICE_ID: device.id,
|
||||||
NODE_ID: 67,
|
|
||||||
INCLUSION_STRATEGY: InclusionStrategy.DEFAULT.value,
|
INCLUSION_STRATEGY: InclusionStrategy.DEFAULT.value,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@ -1607,10 +1606,12 @@ async def test_replace_failed_node(
|
|||||||
assert msg["event"]["event"] == "node removed"
|
assert msg["event"]["event"] == "node removed"
|
||||||
|
|
||||||
# Verify device was removed from device registry
|
# Verify device was removed from device registry
|
||||||
device = dev_reg.async_get_device(
|
assert (
|
||||||
identifiers={(DOMAIN, "3245146787-67")},
|
dev_reg.async_get_device(
|
||||||
|
identifiers={(DOMAIN, "3245146787-67")},
|
||||||
|
)
|
||||||
|
is None
|
||||||
)
|
)
|
||||||
assert device is None
|
|
||||||
|
|
||||||
client.driver.receive_event(nortek_thermostat_added_event)
|
client.driver.receive_event(nortek_thermostat_added_event)
|
||||||
msg = await ws_client.receive_json()
|
msg = await ws_client.receive_json()
|
||||||
@ -1686,8 +1687,7 @@ async def test_replace_failed_node(
|
|||||||
{
|
{
|
||||||
ID: 2,
|
ID: 2,
|
||||||
TYPE: "zwave_js/replace_failed_node",
|
TYPE: "zwave_js/replace_failed_node",
|
||||||
ENTRY_ID: entry.entry_id,
|
DEVICE_ID: device.id,
|
||||||
NODE_ID: 67,
|
|
||||||
INCLUSION_STRATEGY: InclusionStrategy.SECURITY_S2.value,
|
INCLUSION_STRATEGY: InclusionStrategy.SECURITY_S2.value,
|
||||||
PLANNED_PROVISIONING_ENTRY: {
|
PLANNED_PROVISIONING_ENTRY: {
|
||||||
DSK: "test",
|
DSK: "test",
|
||||||
@ -1719,8 +1719,7 @@ async def test_replace_failed_node(
|
|||||||
{
|
{
|
||||||
ID: 3,
|
ID: 3,
|
||||||
TYPE: "zwave_js/replace_failed_node",
|
TYPE: "zwave_js/replace_failed_node",
|
||||||
ENTRY_ID: entry.entry_id,
|
DEVICE_ID: device.id,
|
||||||
NODE_ID: 67,
|
|
||||||
INCLUSION_STRATEGY: InclusionStrategy.SECURITY_S2.value,
|
INCLUSION_STRATEGY: InclusionStrategy.SECURITY_S2.value,
|
||||||
QR_PROVISIONING_INFORMATION: {
|
QR_PROVISIONING_INFORMATION: {
|
||||||
VERSION: 0,
|
VERSION: 0,
|
||||||
@ -1772,8 +1771,7 @@ async def test_replace_failed_node(
|
|||||||
{
|
{
|
||||||
ID: 4,
|
ID: 4,
|
||||||
TYPE: "zwave_js/replace_failed_node",
|
TYPE: "zwave_js/replace_failed_node",
|
||||||
ENTRY_ID: entry.entry_id,
|
DEVICE_ID: device.id,
|
||||||
NODE_ID: 67,
|
|
||||||
INCLUSION_STRATEGY: InclusionStrategy.SECURITY_S2.value,
|
INCLUSION_STRATEGY: InclusionStrategy.SECURITY_S2.value,
|
||||||
QR_CODE_STRING: "90testtesttesttesttesttesttesttesttesttesttesttesttest",
|
QR_CODE_STRING: "90testtesttesttesttesttesttesttesttesttesttesttesttest",
|
||||||
}
|
}
|
||||||
@ -1800,8 +1798,7 @@ async def test_replace_failed_node(
|
|||||||
{
|
{
|
||||||
ID: 6,
|
ID: 6,
|
||||||
TYPE: "zwave_js/replace_failed_node",
|
TYPE: "zwave_js/replace_failed_node",
|
||||||
ENTRY_ID: entry.entry_id,
|
DEVICE_ID: device.id,
|
||||||
NODE_ID: 67,
|
|
||||||
INCLUSION_STRATEGY: InclusionStrategy.DEFAULT.value,
|
INCLUSION_STRATEGY: InclusionStrategy.DEFAULT.value,
|
||||||
QR_CODE_STRING: "90testtesttesttesttesttesttesttesttesttesttesttesttest",
|
QR_CODE_STRING: "90testtesttesttesttesttesttesttesttesttesttesttesttest",
|
||||||
}
|
}
|
||||||
@ -1821,8 +1818,7 @@ async def test_replace_failed_node(
|
|||||||
{
|
{
|
||||||
ID: 7,
|
ID: 7,
|
||||||
TYPE: "zwave_js/replace_failed_node",
|
TYPE: "zwave_js/replace_failed_node",
|
||||||
ENTRY_ID: entry.entry_id,
|
DEVICE_ID: device.id,
|
||||||
NODE_ID: 67,
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
msg = await ws_client.receive_json()
|
msg = await ws_client.receive_json()
|
||||||
@ -1839,8 +1835,7 @@ async def test_replace_failed_node(
|
|||||||
{
|
{
|
||||||
ID: 8,
|
ID: 8,
|
||||||
TYPE: "zwave_js/replace_failed_node",
|
TYPE: "zwave_js/replace_failed_node",
|
||||||
ENTRY_ID: entry.entry_id,
|
DEVICE_ID: device.id,
|
||||||
NODE_ID: 67,
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
msg = await ws_client.receive_json()
|
msg = await ws_client.receive_json()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user