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:
parent
e6b2a9b5c4
commit
8ca0de1d20
2 changed files with 64 additions and 0 deletions
|
@ -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
|
@callback
|
||||||
def node_added(event: dict) -> None:
|
def node_added(event: dict) -> None:
|
||||||
node = event["node"]
|
node = event["node"]
|
||||||
|
@ -815,6 +827,7 @@ async def websocket_add_node(
|
||||||
controller.on("inclusion stopped", forward_event),
|
controller.on("inclusion stopped", forward_event),
|
||||||
controller.on("validate dsk and enter pin", forward_dsk),
|
controller.on("validate dsk and enter pin", forward_dsk),
|
||||||
controller.on("grant security classes", forward_requested_grant),
|
controller.on("grant security classes", forward_requested_grant),
|
||||||
|
controller.on("node found", node_found),
|
||||||
controller.on("node added", node_added),
|
controller.on("node added", node_added),
|
||||||
async_dispatcher_connect(
|
async_dispatcher_connect(
|
||||||
hass, EVENT_DEVICE_ADDED_TO_REGISTRY, device_registered
|
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
|
@callback
|
||||||
def node_added(event: dict) -> None:
|
def node_added(event: dict) -> None:
|
||||||
node = event["node"]
|
node = event["node"]
|
||||||
|
@ -1352,6 +1377,7 @@ async def websocket_replace_failed_node(
|
||||||
controller.on("validate dsk and enter pin", forward_dsk),
|
controller.on("validate dsk and enter pin", forward_dsk),
|
||||||
controller.on("grant security classes", forward_requested_grant),
|
controller.on("grant security classes", forward_requested_grant),
|
||||||
controller.on("node removed", node_removed),
|
controller.on("node removed", node_removed),
|
||||||
|
controller.on("node found", node_found),
|
||||||
controller.on("node added", node_added),
|
controller.on("node added", node_added),
|
||||||
async_dispatcher_connect(
|
async_dispatcher_connect(
|
||||||
hass, EVENT_DEVICE_ADDED_TO_REGISTRY, device_registered
|
hass, EVENT_DEVICE_ADDED_TO_REGISTRY, device_registered
|
||||||
|
|
|
@ -532,6 +532,25 @@ async def test_add_node(
|
||||||
msg = await ws_client.receive_json()
|
msg = await ws_client.receive_json()
|
||||||
assert msg["event"]["event"] == "inclusion started"
|
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(
|
event = Event(
|
||||||
type="grant security classes",
|
type="grant security classes",
|
||||||
data={
|
data={
|
||||||
|
@ -1811,6 +1830,25 @@ async def test_replace_failed_node(
|
||||||
msg = await ws_client.receive_json()
|
msg = await ws_client.receive_json()
|
||||||
assert msg["event"]["event"] == "inclusion started"
|
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(
|
event = Event(
|
||||||
type="grant security classes",
|
type="grant security classes",
|
||||||
data={
|
data={
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue