Forward Z-Wave JS node found event to frontend (#118866)

* forward Z-Wave `node found` event to frontend

* add tests
This commit is contained in:
AlCalzone 2024-06-12 13:48:47 +02:00 committed by GitHub
parent e6b2a9b5c4
commit 8ca0de1d20
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 64 additions and 0 deletions

View File

@ -772,6 +772,18 @@ async def websocket_add_node(
)
)
@callback
def node_found(event: dict) -> None:
node = event["node"]
node_details = {
"node_id": node["nodeId"],
}
connection.send_message(
websocket_api.event_message(
msg[ID], {"event": "node found", "node": node_details}
)
)
@callback
def node_added(event: dict) -> None:
node = event["node"]
@ -815,6 +827,7 @@ async def websocket_add_node(
controller.on("inclusion stopped", forward_event),
controller.on("validate dsk and enter pin", forward_dsk),
controller.on("grant security classes", forward_requested_grant),
controller.on("node found", node_found),
controller.on("node added", node_added),
async_dispatcher_connect(
hass, EVENT_DEVICE_ADDED_TO_REGISTRY, device_registered
@ -1296,6 +1309,18 @@ async def websocket_replace_failed_node(
)
)
@callback
def node_found(event: dict) -> None:
node = event["node"]
node_details = {
"node_id": node["nodeId"],
}
connection.send_message(
websocket_api.event_message(
msg[ID], {"event": "node found", "node": node_details}
)
)
@callback
def node_added(event: dict) -> None:
node = event["node"]
@ -1352,6 +1377,7 @@ async def websocket_replace_failed_node(
controller.on("validate dsk and enter pin", forward_dsk),
controller.on("grant security classes", forward_requested_grant),
controller.on("node removed", node_removed),
controller.on("node found", node_found),
controller.on("node added", node_added),
async_dispatcher_connect(
hass, EVENT_DEVICE_ADDED_TO_REGISTRY, device_registered

View File

@ -532,6 +532,25 @@ async def test_add_node(
msg = await ws_client.receive_json()
assert msg["event"]["event"] == "inclusion started"
event = Event(
type="node found",
data={
"source": "controller",
"event": "node found",
"node": {
"nodeId": 67,
},
},
)
client.driver.receive_event(event)
msg = await ws_client.receive_json()
assert msg["event"]["event"] == "node found"
node_details = {
"node_id": 67,
}
assert msg["event"]["node"] == node_details
event = Event(
type="grant security classes",
data={
@ -1811,6 +1830,25 @@ async def test_replace_failed_node(
msg = await ws_client.receive_json()
assert msg["event"]["event"] == "inclusion started"
event = Event(
type="node found",
data={
"source": "controller",
"event": "node found",
"node": {
"nodeId": 67,
},
},
)
client.driver.receive_event(event)
msg = await ws_client.receive_json()
assert msg["event"]["event"] == "node found"
node_details = {
"node_id": 67,
}
assert msg["event"]["node"] == node_details
event = Event(
type="grant security classes",
data={