Handle entity creation on new added zwave_js value (#55987)
* Handle new entity creation when a new value is added * spacing * Update homeassistant/components/zwave_js/__init__.py Co-authored-by: Martin Hjelmare <marhje52@gmail.com> * change variable name and use asyncio.gather * Centralized where discovered value IDs gets managed Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
This commit is contained in:
parent
ac1251c52b
commit
c785983cce
3 changed files with 249 additions and 148 deletions
|
@ -3,6 +3,7 @@ from copy import deepcopy
|
|||
from unittest.mock import call, patch
|
||||
|
||||
import pytest
|
||||
from zwave_js_server.event import Event
|
||||
from zwave_js_server.exceptions import BaseZwaveJSServerError, InvalidServerVersion
|
||||
from zwave_js_server.model.node import Node
|
||||
|
||||
|
@ -124,6 +125,39 @@ async def test_listen_failure(hass, client, error):
|
|||
assert entry.state is ConfigEntryState.SETUP_RETRY
|
||||
|
||||
|
||||
async def test_new_entity_on_value_added(hass, multisensor_6, client, integration):
|
||||
"""Test we create a new entity if a value is added after the fact."""
|
||||
node: Node = multisensor_6
|
||||
|
||||
# Add a value on a random endpoint so we can be sure we should get a new entity
|
||||
event = Event(
|
||||
type="value added",
|
||||
data={
|
||||
"source": "node",
|
||||
"event": "value added",
|
||||
"nodeId": node.node_id,
|
||||
"args": {
|
||||
"commandClassName": "Multilevel Sensor",
|
||||
"commandClass": 49,
|
||||
"endpoint": 10,
|
||||
"property": "Ultraviolet",
|
||||
"propertyName": "Ultraviolet",
|
||||
"metadata": {
|
||||
"type": "number",
|
||||
"readable": True,
|
||||
"writeable": False,
|
||||
"label": "Ultraviolet",
|
||||
"ccSpecific": {"sensorType": 27, "scale": 0},
|
||||
},
|
||||
"value": 0,
|
||||
},
|
||||
},
|
||||
)
|
||||
node.receive_event(event)
|
||||
await hass.async_block_till_done()
|
||||
assert hass.states.get("sensor.multisensor_6_ultraviolet_10") is not None
|
||||
|
||||
|
||||
async def test_on_node_added_ready(hass, multisensor_6_state, client, integration):
|
||||
"""Test we handle a ready node added event."""
|
||||
dev_reg = dr.async_get(hass)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue