Improve performance impact of zwave_js update entity and other tweaks (#77866)

* Improve performance impact of zwave_js update entity and other tweaks

* Reduce concurrent polls

* we need to write state after setting in progress to false

* Fix existing tests

* Fix tests by fixing fixtures

* remove redundant conditional

* Add test for delayed startup

* tweaks

* outdent happy path

* Add missing PROGRESS feature support

* Update homeassistant/components/zwave_js/update.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Update homeassistant/components/zwave_js/update.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* Fix tests by reverting outdent, PR comments, mark callback

* Remove redundant conditional

* make more readable

* Remove unused SCAN_INTERVAL

* Catch FailedZWaveCommand

* Add comment and remove poll unsub on update

* Fix catching error and add test

* readability

* Fix tests

* Add assertions

* rely on built in progress indicator

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
This commit is contained in:
Raman Gupta 2022-09-06 09:40:20 -04:00 committed by GitHub
parent b945327056
commit 91fbff05db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
46 changed files with 1941 additions and 2027 deletions

View File

@ -8,6 +8,7 @@ from typing import Any
from async_timeout import timeout from async_timeout import timeout
from zwave_js_server.client import Client as ZwaveClient from zwave_js_server.client import Client as ZwaveClient
from zwave_js_server.const import CommandClass
from zwave_js_server.exceptions import BaseZwaveJSServerError, InvalidServerVersion from zwave_js_server.exceptions import BaseZwaveJSServerError, InvalidServerVersion
from zwave_js_server.model.driver import Driver from zwave_js_server.model.driver import Driver
from zwave_js_server.model.node import Node as ZwaveNode from zwave_js_server.model.node import Node as ZwaveNode
@ -312,14 +313,6 @@ class ControllerEvents:
node, node,
) )
# Create a firmware update entity for each device
await self.driver_events.async_setup_platform(Platform.UPDATE)
async_dispatcher_send(
self.hass,
f"{DOMAIN}_{self.config_entry.entry_id}_add_firmware_update_entity",
node,
)
# we only want to run discovery when the node has reached ready state, # we only want to run discovery when the node has reached ready state,
# otherwise we'll have all kinds of missing info issues. # otherwise we'll have all kinds of missing info issues.
if node.ready: if node.ready:
@ -463,11 +456,27 @@ class NodeEvents:
), ),
) )
) )
# add listener for stateless node notification events # add listener for stateless node notification events
self.config_entry.async_on_unload( self.config_entry.async_on_unload(
node.on("notification", self.async_on_notification) node.on("notification", self.async_on_notification)
) )
# Create a firmware update entity for each non-controller device that
# supports firmware updates
if not node.is_controller_node and any(
CommandClass.FIRMWARE_UPDATE_MD.value == cc.id
for cc in node.command_classes
):
await self.controller_events.driver_events.async_setup_platform(
Platform.UPDATE
)
async_dispatcher_send(
self.hass,
f"{DOMAIN}_{self.config_entry.entry_id}_add_firmware_update_entity",
node,
)
async def async_handle_discovery_info( async def async_handle_discovery_info(
self, self,
device: device_registry.DeviceEntry, device: device_registry.DeviceEntry,

View File

@ -1,14 +1,15 @@
"""Representation of Z-Wave updates.""" """Representation of Z-Wave updates."""
from __future__ import annotations from __future__ import annotations
import asyncio
from collections.abc import Callable from collections.abc import Callable
from datetime import timedelta from datetime import datetime, timedelta
from typing import Any from typing import Any
from awesomeversion import AwesomeVersion from awesomeversion import AwesomeVersion
from zwave_js_server.client import Client as ZwaveClient from zwave_js_server.client import Client as ZwaveClient
from zwave_js_server.const import NodeStatus from zwave_js_server.const import NodeStatus
from zwave_js_server.exceptions import BaseZwaveJSServerError from zwave_js_server.exceptions import BaseZwaveJSServerError, FailedZWaveCommand
from zwave_js_server.model.driver import Driver from zwave_js_server.model.driver import Driver
from zwave_js_server.model.firmware import FirmwareUpdateInfo from zwave_js_server.model.firmware import FirmwareUpdateInfo
from zwave_js_server.model.node import Node as ZwaveNode from zwave_js_server.model.node import Node as ZwaveNode
@ -21,12 +22,13 @@ from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity import EntityCategory from homeassistant.helpers.entity import EntityCategory
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.event import async_call_later
from homeassistant.helpers.start import async_at_start
from .const import API_KEY_FIRMWARE_UPDATE_SERVICE, DATA_CLIENT, DOMAIN, LOGGER from .const import API_KEY_FIRMWARE_UPDATE_SERVICE, DATA_CLIENT, DOMAIN, LOGGER
from .helpers import get_device_info, get_valueless_base_unique_id from .helpers import get_device_info, get_valueless_base_unique_id
PARALLEL_UPDATES = 1 PARALLEL_UPDATES = 1
SCAN_INTERVAL = timedelta(days=1)
async def async_setup_entry( async def async_setup_entry(
@ -37,12 +39,14 @@ async def async_setup_entry(
"""Set up Z-Wave button from config entry.""" """Set up Z-Wave button from config entry."""
client: ZwaveClient = hass.data[DOMAIN][config_entry.entry_id][DATA_CLIENT] client: ZwaveClient = hass.data[DOMAIN][config_entry.entry_id][DATA_CLIENT]
semaphore = asyncio.Semaphore(3)
@callback @callback
def async_add_firmware_update_entity(node: ZwaveNode) -> None: def async_add_firmware_update_entity(node: ZwaveNode) -> None:
"""Add firmware update entity.""" """Add firmware update entity."""
driver = client.driver driver = client.driver
assert driver is not None # Driver is ready before platforms are loaded. assert driver is not None # Driver is ready before platforms are loaded.
async_add_entities([ZWaveNodeFirmwareUpdate(driver, node)], True) async_add_entities([ZWaveNodeFirmwareUpdate(driver, node, semaphore)])
config_entry.async_on_unload( config_entry.async_on_unload(
async_dispatcher_connect( async_dispatcher_connect(
@ -62,30 +66,36 @@ class ZWaveNodeFirmwareUpdate(UpdateEntity):
UpdateEntityFeature.INSTALL | UpdateEntityFeature.RELEASE_NOTES UpdateEntityFeature.INSTALL | UpdateEntityFeature.RELEASE_NOTES
) )
_attr_has_entity_name = True _attr_has_entity_name = True
_attr_should_poll = False
def __init__(self, driver: Driver, node: ZwaveNode) -> None: def __init__(
self, driver: Driver, node: ZwaveNode, semaphore: asyncio.Semaphore
) -> None:
"""Initialize a Z-Wave device firmware update entity.""" """Initialize a Z-Wave device firmware update entity."""
self.driver = driver self.driver = driver
self.node = node self.node = node
self.semaphore = semaphore
self._latest_version_firmware: FirmwareUpdateInfo | None = None self._latest_version_firmware: FirmwareUpdateInfo | None = None
self._status_unsub: Callable[[], None] | None = None self._status_unsub: Callable[[], None] | None = None
self._poll_unsub: Callable[[], None] | None = None
# Entity class attributes # Entity class attributes
self._attr_name = "Firmware" self._attr_name = "Firmware"
self._base_unique_id = get_valueless_base_unique_id(driver, node) self._base_unique_id = get_valueless_base_unique_id(driver, node)
self._attr_unique_id = f"{self._base_unique_id}.firmware_update" self._attr_unique_id = f"{self._base_unique_id}.firmware_update"
self._attr_installed_version = self._attr_latest_version = node.firmware_version
# device may not be precreated in main handler yet # device may not be precreated in main handler yet
self._attr_device_info = get_device_info(driver, node) self._attr_device_info = get_device_info(driver, node)
self._attr_installed_version = self._attr_latest_version = node.firmware_version @callback
def _update_on_status_change(self, _: dict[str, Any]) -> None: def _update_on_status_change(self, _: dict[str, Any]) -> None:
"""Update the entity when node is awake.""" """Update the entity when node is awake."""
self._status_unsub = None self._status_unsub = None
self.hass.async_create_task(self.async_update(True)) self.hass.async_create_task(self._async_update())
async def async_update(self, write_state: bool = False) -> None: async def _async_update(self, _: HomeAssistant | datetime | None = None) -> None:
"""Update the entity.""" """Update the entity."""
self._poll_unsub = None
for status, event_name in ( for status, event_name in (
(NodeStatus.ASLEEP, "wake up"), (NodeStatus.ASLEEP, "wake up"),
(NodeStatus.DEAD, "alive"), (NodeStatus.DEAD, "alive"),
@ -97,34 +107,38 @@ class ZWaveNodeFirmwareUpdate(UpdateEntity):
) )
return return
if available_firmware_updates := ( try:
await self.driver.controller.async_get_available_firmware_updates( async with self.semaphore:
self.node, API_KEY_FIRMWARE_UPDATE_SERVICE available_firmware_updates = (
await self.driver.controller.async_get_available_firmware_updates(
self.node, API_KEY_FIRMWARE_UPDATE_SERVICE
)
)
except FailedZWaveCommand as err:
LOGGER.debug(
"Failed to get firmware updates for node %s: %s",
self.node.node_id,
err,
) )
):
self._latest_version_firmware = max(
available_firmware_updates,
key=lambda x: AwesomeVersion(x.version),
)
self._async_process_available_updates(write_state)
@callback
def _async_process_available_updates(self, write_state: bool = True) -> None:
"""
Process available firmware updates.
Sets latest version attribute and FirmwareUpdateInfo instance.
"""
# If we have an available firmware update that is a higher version than what's
# on the node, we should advertise it, otherwise we are on the latest version
if (firmware := self._latest_version_firmware) and AwesomeVersion(
firmware.version
) > AwesomeVersion(self.node.firmware_version):
self._attr_latest_version = firmware.version
else: else:
self._attr_latest_version = self._attr_installed_version if available_firmware_updates:
if write_state: self._latest_version_firmware = latest_firmware = max(
self.async_write_ha_state() available_firmware_updates,
key=lambda x: AwesomeVersion(x.version),
)
# If we have an available firmware update that is a higher version than
# what's on the node, we should advertise it, otherwise there is
# nothing to do.
new_version = latest_firmware.version
current_version = self.node.firmware_version
if AwesomeVersion(new_version) > AwesomeVersion(current_version):
self._attr_latest_version = new_version
self.async_write_ha_state()
finally:
self._poll_unsub = async_call_later(
self.hass, timedelta(days=1), self._async_update
)
async def async_release_notes(self) -> str | None: async def async_release_notes(self) -> str | None:
"""Get release notes.""" """Get release notes."""
@ -138,8 +152,6 @@ class ZWaveNodeFirmwareUpdate(UpdateEntity):
"""Install an update.""" """Install an update."""
firmware = self._latest_version_firmware firmware = self._latest_version_firmware
assert firmware assert firmware
self._attr_in_progress = True
self.async_write_ha_state()
try: try:
for file in firmware.files: for file in firmware.files:
await self.driver.controller.async_begin_ota_firmware_update( await self.driver.controller.async_begin_ota_firmware_update(
@ -148,11 +160,9 @@ class ZWaveNodeFirmwareUpdate(UpdateEntity):
except BaseZwaveJSServerError as err: except BaseZwaveJSServerError as err:
raise HomeAssistantError(err) from err raise HomeAssistantError(err) from err
else: else:
self._attr_installed_version = firmware.version self._attr_installed_version = self._attr_latest_version = firmware.version
self._latest_version_firmware = None self._latest_version_firmware = None
self._async_process_available_updates() self.async_write_ha_state()
finally:
self._attr_in_progress = False
async def async_poll_value(self, _: bool) -> None: async def async_poll_value(self, _: bool) -> None:
"""Poll a value.""" """Poll a value."""
@ -179,8 +189,14 @@ class ZWaveNodeFirmwareUpdate(UpdateEntity):
) )
) )
self.async_on_remove(async_at_start(self.hass, self._async_update))
async def async_will_remove_from_hass(self) -> None: async def async_will_remove_from_hass(self) -> None:
"""Call when entity will be removed.""" """Call when entity will be removed."""
if self._status_unsub: if self._status_unsub:
self._status_unsub() self._status_unsub()
self._status_unsub = None self._status_unsub = None
if self._poll_unsub:
self._poll_unsub()
self._poll_unsub = None

View File

@ -584,7 +584,8 @@ def mock_client_fixture(controller_state, version_state, log_config_state):
async def listen(driver_ready: asyncio.Event) -> None: async def listen(driver_ready: asyncio.Event) -> None:
driver_ready.set() driver_ready.set()
await asyncio.sleep(30) listen_block = asyncio.Event()
await listen_block.wait()
assert False, "Listen wasn't canceled!" assert False, "Listen wasn't canceled!"
async def disconnect(): async def disconnect():

View File

@ -39,7 +39,13 @@
"neighbors": [6, 7, 45, 67], "neighbors": [6, 7, 45, 67],
"interviewAttempts": 1, "interviewAttempts": 1,
"endpoints": [ "endpoints": [
{ "nodeId": 4, "index": 0, "installerIcon": 4608, "userIcon": 4608 } {
"nodeId": 4,
"index": 0,
"installerIcon": 4608,
"userIcon": 4608,
"commandClasses": []
}
], ],
"values": [ "values": [
{ {

View File

@ -77,7 +77,93 @@
32, 133, 89, 128, 121, 114, 115, 159, 108, 85, 134, 94 32, 133, 89, 128, 121, 114, 115, 159, 108, 85, 134, 94
], ],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
} },
"commandClasses": [
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": false
},
{
"id": 121,
"name": "Sound Switch",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 108,
"name": "Supervision",
"version": 1,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": false
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
},
{
"id": 142,
"name": "Multi Channel Association",
"version": 3,
"isSecure": false
},
{
"id": 96,
"name": "Multi Channel",
"version": 4,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 152,
"name": "Security",
"version": 1,
"isSecure": true
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 4,
"isSecure": false
},
{
"id": 113,
"name": "Notification",
"version": 8,
"isSecure": false
}
]
}, },
{ {
"nodeId": 2, "nodeId": 2,
@ -3665,92 +3751,6 @@
], ],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": false
},
{
"id": 121,
"name": "Sound Switch",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 108,
"name": "Supervision",
"version": 1,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": false
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
},
{
"id": 142,
"name": "Multi Channel Association",
"version": 3,
"isSecure": false
},
{
"id": 96,
"name": "Multi Channel",
"version": 4,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 152,
"name": "Security",
"version": 1,
"isSecure": true
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 4,
"isSecure": false
},
{
"id": 113,
"name": "Notification",
"version": 8,
"isSecure": false
}
],
"interviewStage": "Complete", "interviewStage": "Complete",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0371:0x0103:0x00a4:1.3", "deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0371:0x0103:0x00a4:1.3",
"isControllerNode": false "isControllerNode": false

View File

@ -57,10 +57,10 @@
"nodeId": 39, "nodeId": 39,
"index": 0, "index": 0,
"installerIcon": 1536, "installerIcon": 1536,
"userIcon": 1536 "userIcon": 1536,
"commandClasses": []
} }
], ],
"commandClasses": [],
"values": [ "values": [
{ {
"commandClassName": "Multilevel Switch", "commandClassName": "Multilevel Switch",

View File

@ -44,9 +44,14 @@
"neighbors": [1, 2], "neighbors": [1, 2],
"interviewAttempts": 1, "interviewAttempts": 1,
"endpoints": [ "endpoints": [
{ "nodeId": 6, "index": 0, "installerIcon": 6656, "userIcon": 6656 } {
"nodeId": 6,
"index": 0,
"installerIcon": 6656,
"userIcon": 6656,
"commandClasses": []
}
], ],
"commandClasses": [],
"values": [ "values": [
{ {
"commandClassName": "Multilevel Switch", "commandClassName": "Multilevel Switch",

View File

@ -58,7 +58,153 @@
}, },
"mandatorySupportedCCs": [32, 114, 64, 67, 134], "mandatorySupportedCCs": [32, 114, 64, 67, 134],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
} },
"commandClasses": [
{
"id": 49,
"name": "Multilevel Sensor",
"version": 11,
"isSecure": true
},
{
"id": 64,
"name": "Thermostat Mode",
"version": 2,
"isSecure": true
},
{
"id": 66,
"name": "Thermostat Operating State",
"version": 2,
"isSecure": true
},
{
"id": 67,
"name": "Thermostat Setpoint",
"version": 3,
"isSecure": true
},
{
"id": 68,
"name": "Thermostat Fan Mode",
"version": 3,
"isSecure": true
},
{
"id": 69,
"name": "Thermostat Fan State",
"version": 1,
"isSecure": true
},
{
"id": 85,
"name": "Transport Service",
"version": 2,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": true
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": true
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 100,
"name": "Humidity Control Setpoint",
"version": 1,
"isSecure": true
},
{
"id": 108,
"name": "Supervision",
"version": 1,
"isSecure": false
},
{
"id": 109,
"name": "Humidity Control Mode",
"version": 2,
"isSecure": true
},
{
"id": 110,
"name": "Humidity Control Operating State",
"version": 1,
"isSecure": true
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": true
},
{
"id": 113,
"name": "Notification",
"version": 7,
"isSecure": true
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": true
},
{
"id": 115,
"name": "Powerlevel",
"version": 1,
"isSecure": true
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 3,
"isSecure": true
},
{
"id": 128,
"name": "Battery",
"version": 1,
"isSecure": true
},
{
"id": 129,
"name": "Clock",
"version": 1,
"isSecure": true
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": true
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": true
},
{
"id": 159,
"name": "Security 2",
"version": 1,
"isSecure": true
}
]
} }
], ],
"values": [ "values": [
@ -3940,152 +4086,6 @@
"mandatorySupportedCCs": [32, 114, 64, 67, 134], "mandatorySupportedCCs": [32, 114, 64, 67, 134],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [
{
"id": 49,
"name": "Multilevel Sensor",
"version": 11,
"isSecure": true
},
{
"id": 64,
"name": "Thermostat Mode",
"version": 2,
"isSecure": true
},
{
"id": 66,
"name": "Thermostat Operating State",
"version": 2,
"isSecure": true
},
{
"id": 67,
"name": "Thermostat Setpoint",
"version": 3,
"isSecure": true
},
{
"id": 68,
"name": "Thermostat Fan Mode",
"version": 3,
"isSecure": true
},
{
"id": 69,
"name": "Thermostat Fan State",
"version": 1,
"isSecure": true
},
{
"id": 85,
"name": "Transport Service",
"version": 2,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": true
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": true
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 100,
"name": "Humidity Control Setpoint",
"version": 1,
"isSecure": true
},
{
"id": 108,
"name": "Supervision",
"version": 1,
"isSecure": false
},
{
"id": 109,
"name": "Humidity Control Mode",
"version": 2,
"isSecure": true
},
{
"id": 110,
"name": "Humidity Control Operating State",
"version": 1,
"isSecure": true
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": true
},
{
"id": 113,
"name": "Notification",
"version": 7,
"isSecure": true
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": true
},
{
"id": 115,
"name": "Powerlevel",
"version": 1,
"isSecure": true
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 3,
"isSecure": true
},
{
"id": 128,
"name": "Battery",
"version": 1,
"isSecure": true
},
{
"id": 129,
"name": "Clock",
"version": 1,
"isSecure": true
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": true
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": true
},
{
"id": 159,
"name": "Security 2",
"version": 1,
"isSecure": true
}
],
"interviewStage": "Complete", "interviewStage": "Complete",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0190:0x0006:0x0001:1.44", "deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0190:0x0006:0x0001:1.44",
"statistics": { "statistics": {

View File

@ -67,62 +67,6 @@
"neighbors": [1, 14], "neighbors": [1, 14],
"interviewAttempts": 1, "interviewAttempts": 1,
"interviewStage": 7, "interviewStage": 7,
"commandClasses": [
{
"id": 67,
"name": "Thermostat Setpoint",
"version": 2,
"isSecure": false
},
{
"id": 70,
"name": "Climate Control Schedule",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 1,
"isSecure": false
},
{
"id": 117,
"name": "Protection",
"version": 2,
"isSecure": false
},
{
"id": 128,
"name": "Battery",
"version": 1,
"isSecure": false
},
{
"id": 129,
"name": "Clock",
"version": 1,
"isSecure": false
},
{
"id": 132,
"name": "Wake Up",
"version": 1,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 1,
"isSecure": false
},
{
"id": 143,
"name": "Multi Command",
"version": 1,
"isSecure": false
}
],
"endpoints": [ "endpoints": [
{ {
"nodeId": 5, "nodeId": 5,

View File

@ -72,7 +72,8 @@
"nodeId": 8, "nodeId": 8,
"index": 0, "index": 0,
"installerIcon": 4608, "installerIcon": 4608,
"userIcon": 4608 "userIcon": 4608,
"commandClasses": []
} }
], ],
"values": [ "values": [

View File

@ -66,7 +66,99 @@
}, },
"mandatorySupportedCCs": [32, 114, 64, 67, 134], "mandatorySupportedCCs": [32, 114, 64, 67, 134],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
} },
"commandClasses": [
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 64,
"name": "Thermostat Mode",
"version": 3,
"isSecure": false
},
{
"id": 67,
"name": "Thermostat Setpoint",
"version": 3,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 3,
"isSecure": false
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": false
},
{
"id": 142,
"name": "Multi Channel Association",
"version": 3,
"isSecure": false
},
{
"id": 96,
"name": "Multi Channel",
"version": 4,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 152,
"name": "Security",
"version": 1,
"isSecure": true
},
{
"id": 108,
"name": "Supervision",
"version": 1,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 3,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 4,
"isSecure": false
},
{
"id": 50,
"name": "Meter",
"version": 3,
"isSecure": false
}
]
}, },
{ {
"nodeId": 26, "nodeId": 26,
@ -1348,98 +1440,6 @@
"mandatorySupportedCCs": [32, 114, 64, 67, 134], "mandatorySupportedCCs": [32, 114, 64, 67, 134],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 64,
"name": "Thermostat Mode",
"version": 3,
"isSecure": false
},
{
"id": 67,
"name": "Thermostat Setpoint",
"version": 3,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 3,
"isSecure": false
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": false
},
{
"id": 142,
"name": "Multi Channel Association",
"version": 3,
"isSecure": false
},
{
"id": 96,
"name": "Multi Channel",
"version": 4,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 152,
"name": "Security",
"version": 1,
"isSecure": true
},
{
"id": 108,
"name": "Supervision",
"version": 1,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 3,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 4,
"isSecure": false
},
{
"id": 50,
"name": "Meter",
"version": 3,
"isSecure": false
}
],
"interviewStage": "Complete", "interviewStage": "Complete",
"isControllerNode": false "isControllerNode": false
} }

View File

@ -68,7 +68,105 @@
}, },
"mandatorySupportedCCs": [32, 114, 64, 67, 134], "mandatorySupportedCCs": [32, 114, 64, 67, 134],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
} },
"commandClasses": [
{
"id": 50,
"name": "Meter",
"version": 3,
"isSecure": false
},
{
"id": 64,
"name": "Thermostat Mode",
"version": 3,
"isSecure": false
},
{
"id": 66,
"name": "Thermostat Operating State",
"version": 1,
"isSecure": false
},
{
"id": 67,
"name": "Thermostat Setpoint",
"version": 3,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 96,
"name": "Multi Channel",
"version": 4,
"isSecure": false
},
{
"id": 108,
"name": "Supervision",
"version": 1,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 3,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 1,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 4,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 3,
"isSecure": false
},
{
"id": 142,
"name": "Multi Channel Association",
"version": 3,
"isSecure": false
},
{
"id": 152,
"name": "Security",
"version": 1,
"isSecure": true
}
]
}, },
{ {
"nodeId": 74, "nodeId": 74,
@ -1148,104 +1246,6 @@
"mandatorySupportedCCs": [32, 114, 64, 67, 134], "mandatorySupportedCCs": [32, 114, 64, 67, 134],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [
{
"id": 50,
"name": "Meter",
"version": 3,
"isSecure": false
},
{
"id": 64,
"name": "Thermostat Mode",
"version": 3,
"isSecure": false
},
{
"id": 66,
"name": "Thermostat Operating State",
"version": 1,
"isSecure": false
},
{
"id": 67,
"name": "Thermostat Setpoint",
"version": 3,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 96,
"name": "Multi Channel",
"version": 4,
"isSecure": false
},
{
"id": 108,
"name": "Supervision",
"version": 1,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 3,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 1,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 4,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 3,
"isSecure": false
},
{
"id": 142,
"name": "Multi Channel Association",
"version": 3,
"isSecure": false
},
{
"id": 152,
"name": "Security",
"version": 1,
"isSecure": true
}
],
"interviewStage": "Complete", "interviewStage": "Complete",
"isControllerNode": false "isControllerNode": false
} }

View File

@ -66,7 +66,8 @@
"nodeId": 24, "nodeId": 24,
"index": 0, "index": 0,
"installerIcon": 4608, "installerIcon": 4608,
"userIcon": 4609 "userIcon": 4609,
"commandClasses": []
}, },
{ {
"nodeId": 24, "nodeId": 24,
@ -93,7 +94,6 @@
"userIcon": 3329 "userIcon": 3329
} }
], ],
"commandClasses": [],
"values": [ "values": [
{ {
"endpoint": 0, "endpoint": 0,

View File

@ -62,7 +62,93 @@
"endpoints": [ "endpoints": [
{ {
"nodeId": 8, "nodeId": 8,
"index": 0 "index": 0,
"commandClasses": [
{
"id": 49,
"name": "Multilevel Sensor",
"version": 2,
"isSecure": false
},
{
"id": 64,
"name": "Thermostat Mode",
"version": 2,
"isSecure": false
},
{
"id": 66,
"name": "Thermostat Operating State",
"version": 2,
"isSecure": false
},
{
"id": 67,
"name": "Thermostat Setpoint",
"version": 2,
"isSecure": false
},
{
"id": 68,
"name": "Thermostat Fan Mode",
"version": 1,
"isSecure": false
},
{
"id": 69,
"name": "Thermostat Fan State",
"version": 1,
"isSecure": false
},
{
"id": 96,
"name": "Multi Channel",
"version": 3,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 1,
"isSecure": false
},
{
"id": 128,
"name": "Battery",
"version": 1,
"isSecure": false
},
{
"id": 129,
"name": "Clock",
"version": 1,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 1,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 1,
"isSecure": false
},
{
"id": 135,
"name": "Indicator",
"version": 1,
"isSecure": false
}
]
}, },
{ {
"nodeId": 8, "nodeId": 8,
@ -741,91 +827,5 @@
"mandatorySupportedCCs": [32, 114, 64, 67, 134], "mandatorySupportedCCs": [32, 114, 64, 67, 134],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [
{
"id": 49,
"name": "Multilevel Sensor",
"version": 2,
"isSecure": false
},
{
"id": 64,
"name": "Thermostat Mode",
"version": 2,
"isSecure": false
},
{
"id": 66,
"name": "Thermostat Operating State",
"version": 2,
"isSecure": false
},
{
"id": 67,
"name": "Thermostat Setpoint",
"version": 2,
"isSecure": false
},
{
"id": 68,
"name": "Thermostat Fan Mode",
"version": 1,
"isSecure": false
},
{
"id": 69,
"name": "Thermostat Fan State",
"version": 1,
"isSecure": false
},
{
"id": 96,
"name": "Multi Channel",
"version": 3,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 1,
"isSecure": false
},
{
"id": 128,
"name": "Battery",
"version": 1,
"isSecure": false
},
{
"id": 129,
"name": "Clock",
"version": 1,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 1,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 1,
"isSecure": false
},
{
"id": 135,
"name": "Indicator",
"version": 1,
"isSecure": false
}
],
"isControllerNode": false "isControllerNode": false
} }

View File

@ -1316,121 +1316,5 @@
"mandatorySupportedCCs": [32, 114, 64, 67, 134], "mandatorySupportedCCs": [32, 114, 64, 67, 134],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [
{
"id": 49,
"name": "Multilevel Sensor",
"version": 5,
"isSecure": false
},
{
"id": 64,
"name": "Thermostat Mode",
"version": 2,
"isSecure": false
},
{
"id": 66,
"name": "Thermostat Operating State",
"version": 2,
"isSecure": false
},
{
"id": 67,
"name": "Thermostat Setpoint",
"version": 2,
"isSecure": false
},
{
"id": 68,
"name": "Thermostat Fan Mode",
"version": 1,
"isSecure": false
},
{
"id": 69,
"name": "Thermostat Fan State",
"version": 1,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 96,
"name": "Multi Channel",
"version": 4,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 3,
"isSecure": false
},
{
"id": 128,
"name": "Battery",
"version": 1,
"isSecure": false
},
{
"id": 129,
"name": "Clock",
"version": 1,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": false
},
{
"id": 135,
"name": "Indicator",
"version": 1,
"isSecure": false
},
{
"id": 142,
"name": "Multi Channel Association",
"version": 3,
"isSecure": false
}
],
"isControllerNode": false "isControllerNode": false
} }

View File

@ -54,7 +54,93 @@
"endpoints": [ "endpoints": [
{ {
"nodeId": 4, "nodeId": 4,
"index": 0 "index": 0,
"commandClasses": [
{
"id": 49,
"name": "Multilevel Sensor",
"version": 2,
"isSecure": false
},
{
"id": 64,
"name": "Thermostat Mode",
"version": 2,
"isSecure": false
},
{
"id": 66,
"name": "Thermostat Operating State",
"version": 2,
"isSecure": false
},
{
"id": 67,
"name": "Thermostat Setpoint",
"version": 2,
"isSecure": false
},
{
"id": 68,
"name": "Thermostat Fan Mode",
"version": 1,
"isSecure": false
},
{
"id": 69,
"name": "Thermostat Fan State",
"version": 1,
"isSecure": false
},
{
"id": 96,
"name": "Multi Channel",
"version": 3,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 1,
"isSecure": false
},
{
"id": 128,
"name": "Battery",
"version": 1,
"isSecure": false
},
{
"id": 129,
"name": "Clock",
"version": 1,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 1,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 1,
"isSecure": false
},
{
"id": 135,
"name": "Indicator",
"version": 1,
"isSecure": false
}
]
}, },
{ {
"nodeId": 4, "nodeId": 4,
@ -873,91 +959,5 @@
"mandatorySupportedCCs": [32, 114, 64, 67, 134], "mandatorySupportedCCs": [32, 114, 64, 67, 134],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [
{
"id": 49,
"name": "Multilevel Sensor",
"version": 2,
"isSecure": false
},
{
"id": 64,
"name": "Thermostat Mode",
"version": 2,
"isSecure": false
},
{
"id": 66,
"name": "Thermostat Operating State",
"version": 2,
"isSecure": false
},
{
"id": 67,
"name": "Thermostat Setpoint",
"version": 2,
"isSecure": false
},
{
"id": 68,
"name": "Thermostat Fan Mode",
"version": 1,
"isSecure": false
},
{
"id": 69,
"name": "Thermostat Fan State",
"version": 1,
"isSecure": false
},
{
"id": 96,
"name": "Multi Channel",
"version": 3,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 1,
"isSecure": false
},
{
"id": 128,
"name": "Battery",
"version": 1,
"isSecure": false
},
{
"id": 129,
"name": "Clock",
"version": 1,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 1,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 1,
"isSecure": false
},
{
"id": 135,
"name": "Indicator",
"version": 1,
"isSecure": false
}
],
"isControllerNode": false "isControllerNode": false
} }

View File

@ -63,7 +63,93 @@
}, },
"mandatorySupportedCCs": [32, 38, 37, 114, 134], "mandatorySupportedCCs": [32, 38, 37, 114, 134],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
} },
"commandClasses": [
{
"id": 38,
"name": "Multilevel Switch",
"version": 4,
"isSecure": true
},
{
"id": 43,
"name": "Scene Activation",
"version": 1,
"isSecure": true
},
{
"id": 44,
"name": "Scene Actuator Configuration",
"version": 1,
"isSecure": true
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": true
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": true
},
{
"id": 91,
"name": "Central Scene",
"version": 3,
"isSecure": true
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 108,
"name": "Supervision",
"version": 1,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": true
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 4,
"isSecure": true
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": true
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": true
},
{
"id": 152,
"name": "Security",
"version": 1,
"isSecure": true
}
]
} }
], ],
"values": [ "values": [
@ -386,92 +472,6 @@
"mandatorySupportedCCs": [32, 38, 37, 114, 134], "mandatorySupportedCCs": [32, 38, 37, 114, 134],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [
{
"id": 38,
"name": "Multilevel Switch",
"version": 4,
"isSecure": true
},
{
"id": 43,
"name": "Scene Activation",
"version": 1,
"isSecure": true
},
{
"id": 44,
"name": "Scene Actuator Configuration",
"version": 1,
"isSecure": true
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": true
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": true
},
{
"id": 91,
"name": "Central Scene",
"version": 3,
"isSecure": true
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 108,
"name": "Supervision",
"version": 1,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": true
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 4,
"isSecure": true
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": true
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": true
},
{
"id": 152,
"name": "Security",
"version": 1,
"isSecure": true
}
],
"interviewStage": "Complete", "interviewStage": "Complete",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0371:0x0003:0x008d:3.1", "deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0371:0x0003:0x008d:3.1",
"isControllerNode": false "isControllerNode": false

View File

@ -74,7 +74,75 @@
}, },
"mandatorySupportedCCs": [32, 38, 37, 114, 134], "mandatorySupportedCCs": [32, 38, 37, 114, 134],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
} },
"commandClasses": [
{
"id": 37,
"name": "Binary Switch",
"version": 1,
"isSecure": false
},
{
"id": 38,
"name": "Multilevel Switch",
"version": 3,
"isSecure": false
},
{
"id": 49,
"name": "Multilevel Sensor",
"version": 2,
"isSecure": false
},
{
"id": 50,
"name": "Meter",
"version": 2,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 1,
"isSecure": false
},
{
"id": 117,
"name": "Protection",
"version": 2,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 1,
"isSecure": false
},
{
"id": 142,
"name": "Multi Channel Association",
"version": 2,
"isSecure": false
},
{
"id": 145,
"name": "Manufacturer Proprietary",
"version": 1,
"isSecure": false
}
]
} }
], ],
"values": [ "values": [
@ -1029,74 +1097,6 @@
"mandatorySupportedCCs": [32, 38, 37, 114, 134], "mandatorySupportedCCs": [32, 38, 37, 114, 134],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [
{
"id": 37,
"name": "Binary Switch",
"version": 1,
"isSecure": false
},
{
"id": 38,
"name": "Multilevel Switch",
"version": 3,
"isSecure": false
},
{
"id": 49,
"name": "Multilevel Sensor",
"version": 2,
"isSecure": false
},
{
"id": 50,
"name": "Meter",
"version": 2,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 1,
"isSecure": false
},
{
"id": 117,
"name": "Protection",
"version": 2,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 1,
"isSecure": false
},
{
"id": 142,
"name": "Multi Channel Association",
"version": 2,
"isSecure": false
},
{
"id": 145,
"name": "Manufacturer Proprietary",
"version": 1,
"isSecure": false
}
],
"interviewStage": "Complete", "interviewStage": "Complete",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x010f:0x0302:0x1000:25.25", "deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x010f:0x0302:0x1000:25.25",
"statistics": { "statistics": {

View File

@ -54,10 +54,10 @@
"nodeId": 54, "nodeId": 54,
"index": 0, "index": 0,
"installerIcon": 6400, "installerIcon": 6400,
"userIcon": 6400 "userIcon": 6400,
"commandClasses": []
} }
], ],
"commandClasses": [],
"values": [ "values": [
{ {
"endpoint": 0, "endpoint": 0,

View File

@ -57,7 +57,81 @@
}, },
"mandatorySupportedCCs": [32, 38, 37, 114, 134], "mandatorySupportedCCs": [32, 38, 37, 114, 134],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
} },
"commandClasses": [
{
"id": 37,
"name": "Binary Switch",
"version": 1,
"isSecure": false
},
{
"id": 38,
"name": "Multilevel Switch",
"version": 3,
"isSecure": false
},
{
"id": 50,
"name": "Meter",
"version": 4,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 2,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
},
{
"id": 113,
"name": "Notification",
"version": 5,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": false
},
{
"id": 142,
"name": "Multi Channel Association",
"version": 3,
"isSecure": false
}
]
} }
], ],
"values": [ "values": [
@ -792,80 +866,6 @@
"mandatorySupportedCCs": [32, 38, 37, 114, 134], "mandatorySupportedCCs": [32, 38, 37, 114, 134],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [
{
"id": 37,
"name": "Binary Switch",
"version": 1,
"isSecure": false
},
{
"id": 38,
"name": "Multilevel Switch",
"version": 3,
"isSecure": false
},
{
"id": 50,
"name": "Meter",
"version": 4,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 2,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
},
{
"id": 113,
"name": "Notification",
"version": 5,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": false
},
{
"id": 142,
"name": "Multi Channel Association",
"version": 3,
"isSecure": false
}
],
"interviewStage": "Complete", "interviewStage": "Complete",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0159:0x0003:0x0052:71.0", "deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0159:0x0003:0x0052:71.0",
"statistics": { "statistics": {

View File

@ -62,10 +62,10 @@
"nodeId": 12, "nodeId": 12,
"index": 0, "index": 0,
"installerIcon": 7680, "installerIcon": 7680,
"userIcon": 7680 "userIcon": 7680,
"commandClasses": []
} }
], ],
"commandClasses": [],
"values": [ "values": [
{ {
"endpoint": 0, "endpoint": 0,

View File

@ -55,10 +55,10 @@
"nodeId": 19, "nodeId": 19,
"index": 0, "index": 0,
"installerIcon": 1536, "installerIcon": 1536,
"userIcon": 1536 "userIcon": 1536,
"commandClasses": []
} }
], ],
"commandClasses": [],
"values": [ "values": [
{ {
"commandClassName": "Multilevel Switch", "commandClassName": "Multilevel Switch",

View File

@ -47,10 +47,10 @@
"endpoints": [ "endpoints": [
{ {
"nodeId": 2, "nodeId": 2,
"index": 0 "index": 0,
"commandClasses": []
} }
], ],
"commandClasses": [],
"values": [ "values": [
{ {
"commandClassName": "Basic", "commandClassName": "Basic",

View File

@ -60,7 +60,87 @@
}, },
"mandatorySupportedCCs": [], "mandatorySupportedCCs": [],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
} },
"commandClasses": [
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 113,
"name": "Notification",
"version": 3,
"isSecure": false
},
{
"id": 49,
"name": "Multilevel Sensor",
"version": 6,
"isSecure": false
},
{
"id": 51,
"name": "Color Switch",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 2,
"isSecure": false
},
{
"id": 119,
"name": "Node Naming and Location",
"version": 1,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 2,
"isSecure": false
},
{
"id": 115,
"name": "Powerlevel",
"version": 1,
"isSecure": false
}
]
} }
], ],
"values": [ "values": [
@ -578,86 +658,6 @@
"mandatorySupportedCCs": [], "mandatorySupportedCCs": [],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 113,
"name": "Notification",
"version": 3,
"isSecure": false
},
{
"id": 49,
"name": "Multilevel Sensor",
"version": 6,
"isSecure": false
},
{
"id": 51,
"name": "Color Switch",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 2,
"isSecure": false
},
{
"id": 119,
"name": "Node Naming and Location",
"version": 1,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 2,
"isSecure": false
},
{
"id": 115,
"name": "Powerlevel",
"version": 1,
"isSecure": false
}
],
"interviewStage": "Complete", "interviewStage": "Complete",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x001e:0x0004:0x0001:1.8", "deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x001e:0x0004:0x0001:1.8",
"statistics": { "statistics": {

View File

@ -47,10 +47,10 @@
"endpoints": [ "endpoints": [
{ {
"nodeId": 24, "nodeId": 24,
"index": 0 "index": 0,
"commandClasses": []
} }
], ],
"commandClasses": [],
"values": [ "values": [
{ {
"endpoint": 0, "endpoint": 0,

View File

@ -57,10 +57,10 @@
"nodeId": 17, "nodeId": 17,
"index": 0, "index": 0,
"installerIcon": 1024, "installerIcon": 1024,
"userIcon": 1024 "userIcon": 1024,
"commandClasses": []
} }
], ],
"commandClasses": [],
"values": [ "values": [
{ {
"commandClassName": "Multilevel Switch", "commandClassName": "Multilevel Switch",

View File

@ -63,7 +63,105 @@
}, },
"mandatorySupportedCCs": [32, 38, 133, 89, 114, 115, 134, 94], "mandatorySupportedCCs": [32, 38, 133, 89, 114, 115, 134, 94],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
} },
"commandClasses": [
{
"id": 38,
"name": "Multilevel Switch",
"version": 4,
"isSecure": false
},
{
"id": 43,
"name": "Scene Activation",
"version": 1,
"isSecure": false
},
{
"id": 44,
"name": "Scene Actuator Configuration",
"version": 1,
"isSecure": false
},
{
"id": 85,
"name": "Transport Service",
"version": 2,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 91,
"name": "Central Scene",
"version": 3,
"isSecure": false
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 108,
"name": "Supervision",
"version": 1,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 3,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 115,
"name": "Powerlevel",
"version": 1,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 4,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 3,
"isSecure": false
},
{
"id": 159,
"name": "Security 2",
"version": 1,
"isSecure": true
}
]
} }
], ],
"values": [ "values": [
@ -9859,104 +9957,6 @@
"mandatorySupportedCCs": [32, 38, 133, 89, 114, 115, 134, 94], "mandatorySupportedCCs": [32, 38, 133, 89, 114, 115, 134, 94],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [
{
"id": 38,
"name": "Multilevel Switch",
"version": 4,
"isSecure": false
},
{
"id": 43,
"name": "Scene Activation",
"version": 1,
"isSecure": false
},
{
"id": 44,
"name": "Scene Actuator Configuration",
"version": 1,
"isSecure": false
},
{
"id": 85,
"name": "Transport Service",
"version": 2,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 91,
"name": "Central Scene",
"version": 3,
"isSecure": false
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 108,
"name": "Supervision",
"version": 1,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 3,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 115,
"name": "Powerlevel",
"version": 1,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 4,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 3,
"isSecure": false
},
{
"id": 159,
"name": "Security 2",
"version": 1,
"isSecure": true
}
],
"interviewStage": "Complete", "interviewStage": "Complete",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x000c:0x0203:0x0001:50.5", "deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x000c:0x0203:0x0001:50.5",
"statistics": { "statistics": {

View File

@ -62,7 +62,39 @@
}, },
"mandatorySupportedCCs": [32, 38], "mandatorySupportedCCs": [32, 38],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
} },
"commandClasses": [
{
"id": 38,
"name": "Multilevel Switch",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 1,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 1,
"isSecure": false
},
{
"id": 113,
"name": "Notification",
"version": 2,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
}
]
} }
], ],
"values": [ "values": [
@ -306,38 +338,6 @@
"mandatorySupportedCCs": [32, 38], "mandatorySupportedCCs": [32, 38],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [
{
"id": 38,
"name": "Multilevel Switch",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 1,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 1,
"isSecure": false
},
{
"id": 113,
"name": "Notification",
"version": 2,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
}
],
"interviewStage": "Complete", "interviewStage": "Complete",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0084:0x0313:0x010b:1.11", "deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0084:0x0313:0x010b:1.11",
"statistics": { "statistics": {

View File

@ -56,7 +56,39 @@
}, },
"mandatorySupportedCCs": [32, 38], "mandatorySupportedCCs": [32, 38],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
} },
"commandClasses": [
{
"id": 38,
"name": "Multilevel Switch",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 1,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 1,
"isSecure": false
},
{
"id": 113,
"name": "Notification",
"version": 2,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
}
]
} }
], ],
"values": [ "values": [
@ -298,38 +330,6 @@
"mandatorySupportedCCs": [32, 38], "mandatorySupportedCCs": [32, 38],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [
{
"id": 38,
"name": "Multilevel Switch",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 1,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 1,
"isSecure": false
},
{
"id": 113,
"name": "Notification",
"version": 2,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
}
],
"interviewStage": "Complete", "interviewStage": "Complete",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0084:0x0331:0x010b:1.11", "deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0084:0x0331:0x010b:1.11",
"statistics": { "statistics": {

View File

@ -65,116 +65,116 @@
"aggregatedEndpointCount": 0, "aggregatedEndpointCount": 0,
"interviewAttempts": 1, "interviewAttempts": 1,
"interviewStage": 7, "interviewStage": 7,
"commandClasses": [
{
"id": 38,
"name": "Multilevel Switch",
"version": 4,
"isSecure": false
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 152,
"name": "Security",
"version": 1,
"isSecure": true
},
{
"id": 108,
"name": "Supervision",
"version": 1,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 4,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 3,
"isSecure": false
},
{
"id": 142,
"name": "Multi Channel Association",
"version": 3,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 3,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 117,
"name": "Protection",
"version": 2,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 5,
"isSecure": false
},
{
"id": 91,
"name": "Central Scene",
"version": 3,
"isSecure": false
},
{
"id": 135,
"name": "Indicator",
"version": 3,
"isSecure": false
},
{
"id": 96,
"name": "Multi Channel",
"version": 4,
"isSecure": false
},
{
"id": 50,
"name": "Meter",
"version": 3,
"isSecure": false
}
],
"endpoints": [ "endpoints": [
{ {
"nodeId": 19, "nodeId": 19,
"index": 0, "index": 0,
"installerIcon": 7168, "installerIcon": 7168,
"userIcon": 7168 "userIcon": 7168,
"commandClasses": [
{
"id": 38,
"name": "Multilevel Switch",
"version": 4,
"isSecure": false
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 152,
"name": "Security",
"version": 1,
"isSecure": true
},
{
"id": 108,
"name": "Supervision",
"version": 1,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 4,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 3,
"isSecure": false
},
{
"id": 142,
"name": "Multi Channel Association",
"version": 3,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 3,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 117,
"name": "Protection",
"version": 2,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 5,
"isSecure": false
},
{
"id": 91,
"name": "Central Scene",
"version": 3,
"isSecure": false
},
{
"id": 135,
"name": "Indicator",
"version": 3,
"isSecure": false
},
{
"id": 96,
"name": "Multi Channel",
"version": 4,
"isSecure": false
},
{
"id": 50,
"name": "Meter",
"version": 3,
"isSecure": false
}
]
}, },
{ {
"nodeId": 19, "nodeId": 19,

View File

@ -83,7 +83,75 @@
}, },
"mandatorySupportedCCs": [32], "mandatorySupportedCCs": [32],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
} },
"commandClasses": [
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 38,
"name": "Multilevel Switch",
"version": 2,
"isSecure": false
},
{
"id": 51,
"name": "Color Switch",
"version": 1,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 2,
"isSecure": false
},
{
"id": 152,
"name": "Security",
"version": 1,
"isSecure": true
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
}
]
} }
], ],
"values": [ "values": [
@ -616,73 +684,5 @@
"mandatorySupportedCCs": [32], "mandatorySupportedCCs": [32],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 38,
"name": "Multilevel Switch",
"version": 2,
"isSecure": false
},
{
"id": 51,
"name": "Color Switch",
"version": 1,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 2,
"isSecure": false
},
{
"id": 152,
"name": "Security",
"version": 1,
"isSecure": true
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
}
],
"isControllerNode": false "isControllerNode": false
} }

View File

@ -58,10 +58,10 @@
"nodeId": 6, "nodeId": 6,
"index": 0, "index": 0,
"installerIcon": 768, "installerIcon": 768,
"userIcon": 768 "userIcon": 768,
"commandClasses": []
} }
], ],
"commandClasses": [],
"values": [ "values": [
{ {
"commandClassName": "Door Lock", "commandClassName": "Door Lock",

View File

@ -48,7 +48,87 @@
"nodeId": 60, "nodeId": 60,
"index": 0, "index": 0,
"installerIcon": 768, "installerIcon": 768,
"userIcon": 768 "userIcon": 768,
"commandClasses": [
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": true
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 98,
"name": "Door Lock",
"version": 2,
"isSecure": true
},
{
"id": 99,
"name": "User Code",
"version": 1,
"isSecure": true
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
},
{
"id": 113,
"name": "Notification",
"version": 4,
"isSecure": true
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 2,
"isSecure": true
},
{
"id": 128,
"name": "Battery",
"version": 1,
"isSecure": true
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": true
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": true
},
{
"id": 152,
"name": "Security",
"version": 1,
"isSecure": true
}
]
} }
], ],
"values": [ "values": [
@ -2836,85 +2916,5 @@
"mandatorySupportedCCs": [32, 98, 99, 114, 152, 134], "mandatorySupportedCCs": [32, 98, 99, 114, 152, 134],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": true
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 98,
"name": "Door Lock",
"version": 2,
"isSecure": true
},
{
"id": 99,
"name": "User Code",
"version": 1,
"isSecure": true
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
},
{
"id": 113,
"name": "Notification",
"version": 4,
"isSecure": true
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 2,
"isSecure": true
},
{
"id": 128,
"name": "Battery",
"version": 1,
"isSecure": true
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": true
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": true
},
{
"id": 152,
"name": "Security",
"version": 1,
"isSecure": true
}
],
"isControllerNode": false "isControllerNode": false
} }

View File

@ -35,7 +35,87 @@
}, },
"mandatorySupportedCCs": [113, 133, 98, 114, 152, 134], "mandatorySupportedCCs": [113, 133, 98, 114, 152, 134],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
} },
"commandClasses": [
{
"id": 48,
"name": "Binary Sensor",
"version": 2,
"isSecure": true
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": true
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": true
},
{
"id": 98,
"name": "Door Lock",
"version": 2,
"isSecure": true
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": true
},
{
"id": 113,
"name": "Notification",
"version": 5,
"isSecure": true
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": true
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 3,
"isSecure": false
},
{
"id": 128,
"name": "Battery",
"version": 1,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": true
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": true
},
{
"id": 152,
"name": "Security",
"version": 1,
"isSecure": true
}
]
} }
], ],
"values": [ "values": [
@ -476,86 +556,6 @@
"mandatorySupportedCCs": [113, 133, 98, 114, 152, 134], "mandatorySupportedCCs": [113, 133, 98, 114, 152, 134],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [
{
"id": 48,
"name": "Binary Sensor",
"version": 2,
"isSecure": true
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": true
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": true
},
{
"id": 98,
"name": "Door Lock",
"version": 2,
"isSecure": true
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": true
},
{
"id": 113,
"name": "Notification",
"version": 5,
"isSecure": true
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": true
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 3,
"isSecure": false
},
{
"id": 128,
"name": "Battery",
"version": 1,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": true
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": true
},
{
"id": 152,
"name": "Security",
"version": 1,
"isSecure": true
}
],
"interviewStage": "Complete", "interviewStage": "Complete",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0154:0x0005:0x0001:1.3", "deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0154:0x0005:0x0001:1.3",
"statistics": { "statistics": {

View File

@ -61,10 +61,10 @@
"nodeId": 52, "nodeId": 52,
"index": 0, "index": 0,
"installerIcon": 3079, "installerIcon": 3079,
"userIcon": 3079 "userIcon": 3079,
"commandClasses": []
} }
], ],
"commandClasses": [],
"values": [ "values": [
{ {
"commandClassName": "Basic", "commandClassName": "Basic",

View File

@ -18,10 +18,10 @@
"endpoints": [ "endpoints": [
{ {
"nodeId": 67, "nodeId": 67,
"index": 0 "index": 0,
"commandClasses": []
} }
], ],
"commandClasses": [],
"values": [ "values": [
{ {
"commandClassName": "Basic", "commandClassName": "Basic",

View File

@ -53,10 +53,10 @@
"endpoints": [ "endpoints": [
{ {
"nodeId": 67, "nodeId": 67,
"index": 0 "index": 0,
"commandClasses": []
} }
], ],
"commandClasses": [],
"values": [ "values": [
{ {
"commandClassName": "Manufacturer Specific", "commandClassName": "Manufacturer Specific",

View File

@ -61,10 +61,10 @@
"nodeId": 67, "nodeId": 67,
"index": 0, "index": 0,
"installerIcon": 4608, "installerIcon": 4608,
"userIcon": 4608 "userIcon": 4608,
"commandClasses": []
} }
], ],
"commandClasses": [],
"values": [ "values": [
{ {
"commandClassName": "Manufacturer Specific", "commandClassName": "Manufacturer Specific",

View File

@ -31,7 +31,81 @@
"nodeId": 10, "nodeId": 10,
"index": 0, "index": 0,
"installerIcon": 3328, "installerIcon": 3328,
"userIcon": 3328 "userIcon": 3328,
"commandClasses": [
{
"id": 37,
"name": "Binary Switch",
"version": 1,
"isSecure": false
},
{
"id": 49,
"name": "Multilevel Sensor",
"version": 7,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 96,
"name": "Multi Channel",
"version": 4,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 3,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": false
},
{
"id": 142,
"name": "Multi Channel Association",
"version": 3,
"isSecure": false
}
]
}, },
{ {
"nodeId": 10, "nodeId": 10,
@ -337,79 +411,5 @@
"mandatorySupportedCCs": [32, 49], "mandatorySupportedCCs": [32, 49],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [
{
"id": 37,
"name": "Binary Switch",
"version": 1,
"isSecure": false
},
{
"id": 49,
"name": "Multilevel Sensor",
"version": 7,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 96,
"name": "Multi Channel",
"version": 4,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 3,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": false
},
{
"id": 142,
"name": "Multi Channel Association",
"version": 3,
"isSecure": false
}
],
"isControllerNode": false "isControllerNode": false
} }

View File

@ -53,36 +53,36 @@
"neighbors": [1, 5, 10, 12, 13, 14, 15, 18, 21], "neighbors": [1, 5, 10, 12, 13, 14, 15, 18, 21],
"interviewAttempts": 1, "interviewAttempts": 1,
"interviewStage": 7, "interviewStage": 7,
"commandClasses": [
{
"id": 37,
"name": "Binary Switch",
"version": 1,
"isSecure": false
},
{
"id": 64,
"name": "Thermostat Mode",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 1,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 1,
"isSecure": false
}
],
"endpoints": [ "endpoints": [
{ {
"nodeId": 20, "nodeId": 20,
"index": 0 "index": 0,
"commandClasses": [
{
"id": 37,
"name": "Binary Switch",
"version": 1,
"isSecure": false
},
{
"id": 64,
"name": "Thermostat Mode",
"version": 1,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 1,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 1,
"isSecure": false
}
]
} }
], ],
"values": [ "values": [

View File

@ -60,7 +60,39 @@
}, },
"mandatorySupportedCCs": [32, 37, 39], "mandatorySupportedCCs": [32, 37, 39],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
} },
"commandClasses": [
{
"id": 37,
"name": "Binary Switch",
"version": 1,
"isSecure": false
},
{
"id": 96,
"name": "Multi Channel",
"version": 3,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 1,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 1,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 1,
"isSecure": false
}
]
}, },
{ {
"nodeId": 7, "nodeId": 7,
@ -363,37 +395,5 @@
"mandatorySupportedCCs": [32, 37, 39], "mandatorySupportedCCs": [32, 37, 39],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [
{
"id": 37,
"name": "Binary Switch",
"version": 1,
"isSecure": false
},
{
"id": 96,
"name": "Multi Channel",
"version": 3,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 1,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 1,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 1,
"isSecure": false
}
],
"isControllerNode": false "isControllerNode": false
} }

View File

@ -66,7 +66,129 @@
32, 38, 133, 89, 51, 90, 114, 115, 159, 108, 85, 134, 94 32, 38, 133, 89, 51, 90, 114, 115, 159, 108, 85, 134, 94
], ],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
} },
"commandClasses": [
{
"id": 38,
"name": "Multilevel Switch",
"version": 4,
"isSecure": false
},
{
"id": 49,
"name": "Multilevel Sensor",
"version": 11,
"isSecure": false
},
{
"id": 50,
"name": "Meter",
"version": 3,
"isSecure": false
},
{
"id": 51,
"name": "Color Switch",
"version": 3,
"isSecure": false
},
{
"id": 86,
"name": "CRC-16 Encapsulation",
"version": 1,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 2,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 91,
"name": "Central Scene",
"version": 3,
"isSecure": false
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 96,
"name": "Multi Channel",
"version": 4,
"isSecure": false
},
{
"id": 108,
"name": "Supervision",
"version": 1,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
},
{
"id": 113,
"name": "Notification",
"version": 8,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 117,
"name": "Protection",
"version": 2,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 4,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": false
},
{
"id": 142,
"name": "Multi Channel Association",
"version": 3,
"isSecure": false
},
{
"id": 152,
"name": "Security",
"version": 1,
"isSecure": true
}
]
}, },
{ {
"nodeId": 94, "nodeId": 94,
@ -2587,127 +2709,5 @@
], ],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [
{
"id": 38,
"name": "Multilevel Switch",
"version": 4,
"isSecure": false
},
{
"id": 49,
"name": "Multilevel Sensor",
"version": 11,
"isSecure": false
},
{
"id": 50,
"name": "Meter",
"version": 3,
"isSecure": false
},
{
"id": 51,
"name": "Color Switch",
"version": 3,
"isSecure": false
},
{
"id": 86,
"name": "CRC-16 Encapsulation",
"version": 1,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 2,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 91,
"name": "Central Scene",
"version": 3,
"isSecure": false
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 96,
"name": "Multi Channel",
"version": 4,
"isSecure": false
},
{
"id": 108,
"name": "Supervision",
"version": 1,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
},
{
"id": 113,
"name": "Notification",
"version": 8,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 117,
"name": "Protection",
"version": 2,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 4,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": false
},
{
"id": 142,
"name": "Multi Channel Association",
"version": 3,
"isSecure": false
},
{
"id": 152,
"name": "Security",
"version": 1,
"isSecure": true
}
],
"isControllerNode": false "isControllerNode": false
} }

View File

@ -26,7 +26,8 @@
}, },
"mandatorySupportedCCs": [], "mandatorySupportedCCs": [],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
} },
"commandClasses": []
} }
], ],
"values": [], "values": [],
@ -53,7 +54,6 @@
"mandatorySupportedCCs": [], "mandatorySupportedCCs": [],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [],
"interviewStage": "ProtocolInfo", "interviewStage": "ProtocolInfo",
"statistics": { "statistics": {
"commandsTX": 0, "commandsTX": 0,

View File

@ -63,7 +63,87 @@
}, },
"mandatorySupportedCCs": [], "mandatorySupportedCCs": [],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
} },
"commandClasses": [
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": false
},
{
"id": 115,
"name": "Powerlevel",
"version": 1,
"isSecure": false
},
{
"id": 128,
"name": "Battery",
"version": 1,
"isSecure": false
},
{
"id": 113,
"name": "Notification",
"version": 4,
"isSecure": false
},
{
"id": 49,
"name": "Multilevel Sensor",
"version": 7,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
},
{
"id": 132,
"name": "Wake Up",
"version": 2,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 2,
"isSecure": false
}
]
} }
], ],
"values": [ "values": [
@ -607,86 +687,6 @@
"mandatorySupportedCCs": [], "mandatorySupportedCCs": [],
"mandatoryControlledCCs": [] "mandatoryControlledCCs": []
}, },
"commandClasses": [
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 2,
"isSecure": false
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 1,
"isSecure": false
},
{
"id": 115,
"name": "Powerlevel",
"version": 1,
"isSecure": false
},
{
"id": 128,
"name": "Battery",
"version": 1,
"isSecure": false
},
{
"id": 113,
"name": "Notification",
"version": 4,
"isSecure": false
},
{
"id": 49,
"name": "Multilevel Sensor",
"version": 7,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 1,
"isSecure": false
},
{
"id": 132,
"name": "Wake Up",
"version": 2,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 2,
"isSecure": false
}
],
"interviewStage": "Complete", "interviewStage": "Complete",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0109:0x2021:0x2101:5.1", "deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0109:0x2021:0x2101:5.1",
"statistics": { "statistics": {

View File

@ -211,8 +211,8 @@ async def test_on_node_added_not_ready(
client.driver.receive_event(event) client.driver.receive_event(event)
await hass.async_block_till_done() await hass.async_block_till_done()
# the only entities are the node status sensor, ping button, and firmware update # the only entities are the node status sensor and ping button
assert len(hass.states.async_all()) == 3 assert len(hass.states.async_all()) == 2
device = dev_reg.async_get_device(identifiers={(DOMAIN, device_id)}) device = dev_reg.async_get_device(identifiers={(DOMAIN, device_id)})
assert device assert device
@ -254,8 +254,8 @@ async def test_existing_node_not_ready(hass, zp3111_not_ready, client, integrati
assert not device.model assert not device.model
assert not device.sw_version assert not device.sw_version
# the only entities are the node status sensor, ping button, and firmware update # the only entities are the node status sensor and ping button
assert len(hass.states.async_all()) == 3 assert len(hass.states.async_all()) == 2
device = dev_reg.async_get_device(identifiers={(DOMAIN, device_id)}) device = dev_reg.async_get_device(identifiers={(DOMAIN, device_id)})
assert device assert device

View File

@ -19,9 +19,9 @@ from homeassistant.components.zwave_js.helpers import get_valueless_base_unique_
from homeassistant.const import ATTR_ENTITY_ID, STATE_OFF, STATE_ON from homeassistant.const import ATTR_ENTITY_ID, STATE_OFF, STATE_ON
from homeassistant.exceptions import HomeAssistantError from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers.entity_registry import async_get from homeassistant.helpers.entity_registry import async_get
from homeassistant.util import datetime as dt_util from homeassistant.util import dt as dt_util
from tests.common import async_fire_time_changed from tests.common import MockConfigEntry, async_fire_time_changed
UPDATE_ENTITY = "update.z_wave_thermostat_firmware" UPDATE_ENTITY = "update.z_wave_thermostat_firmware"
FIRMWARE_UPDATES = { FIRMWARE_UPDATES = {
@ -162,14 +162,12 @@ async def test_update_entity_success(
client.async_send_command.reset_mock() client.async_send_command.reset_mock()
async def test_update_entity_failure( async def test_update_entity_install_failure(
hass, hass,
client, client,
climate_radio_thermostat_ct100_plus_different_endpoints, climate_radio_thermostat_ct100_plus_different_endpoints,
controller_node, controller_node,
integration, integration,
caplog,
hass_ws_client,
): ):
"""Test update entity failed install.""" """Test update entity failed install."""
client.async_send_command.return_value = FIRMWARE_UPDATES client.async_send_command.return_value = FIRMWARE_UPDATES
@ -194,15 +192,15 @@ async def test_update_entity_failure(
async def test_update_entity_sleep( async def test_update_entity_sleep(
hass, hass,
client, client,
multisensor_6, zen_31,
integration, integration,
): ):
"""Test update occurs when device is asleep after it wakes up.""" """Test update occurs when device is asleep after it wakes up."""
event = Event( event = Event(
"sleep", "sleep",
data={"source": "node", "event": "sleep", "nodeId": multisensor_6.node_id}, data={"source": "node", "event": "sleep", "nodeId": zen_31.node_id},
) )
multisensor_6.receive_event(event) zen_31.receive_event(event)
client.async_send_command.reset_mock() client.async_send_command.reset_mock()
client.async_send_command.return_value = FIRMWARE_UPDATES client.async_send_command.return_value = FIRMWARE_UPDATES
@ -215,9 +213,9 @@ async def test_update_entity_sleep(
event = Event( event = Event(
"wake up", "wake up",
data={"source": "node", "event": "wake up", "nodeId": multisensor_6.node_id}, data={"source": "node", "event": "wake up", "nodeId": zen_31.node_id},
) )
multisensor_6.receive_event(event) zen_31.receive_event(event)
await hass.async_block_till_done() await hass.async_block_till_done()
# Now that the node is up we can check for updates # Now that the node is up we can check for updates
@ -225,21 +223,21 @@ async def test_update_entity_sleep(
args = client.async_send_command.call_args_list[0][0][0] args = client.async_send_command.call_args_list[0][0][0]
assert args["command"] == "controller.get_available_firmware_updates" assert args["command"] == "controller.get_available_firmware_updates"
assert args["nodeId"] == multisensor_6.node_id assert args["nodeId"] == zen_31.node_id
async def test_update_entity_dead( async def test_update_entity_dead(
hass, hass,
client, client,
multisensor_6, zen_31,
integration, integration,
): ):
"""Test update occurs when device is dead after it becomes alive.""" """Test update occurs when device is dead after it becomes alive."""
event = Event( event = Event(
"dead", "dead",
data={"source": "node", "event": "dead", "nodeId": multisensor_6.node_id}, data={"source": "node", "event": "dead", "nodeId": zen_31.node_id},
) )
multisensor_6.receive_event(event) zen_31.receive_event(event)
client.async_send_command.reset_mock() client.async_send_command.reset_mock()
client.async_send_command.return_value = FIRMWARE_UPDATES client.async_send_command.return_value = FIRMWARE_UPDATES
@ -252,9 +250,9 @@ async def test_update_entity_dead(
event = Event( event = Event(
"alive", "alive",
data={"source": "node", "event": "alive", "nodeId": multisensor_6.node_id}, data={"source": "node", "event": "alive", "nodeId": zen_31.node_id},
) )
multisensor_6.receive_event(event) zen_31.receive_event(event)
await hass.async_block_till_done() await hass.async_block_till_done()
# Now that the node is up we can check for updates # Now that the node is up we can check for updates
@ -262,4 +260,54 @@ async def test_update_entity_dead(
args = client.async_send_command.call_args_list[0][0][0] args = client.async_send_command.call_args_list[0][0][0]
assert args["command"] == "controller.get_available_firmware_updates" assert args["command"] == "controller.get_available_firmware_updates"
assert args["nodeId"] == multisensor_6.node_id assert args["nodeId"] == zen_31.node_id
async def test_update_entity_ha_not_running(
hass,
client,
zen_31,
hass_ws_client,
):
"""Test update occurs after HA starts."""
await hass.async_stop()
entry = MockConfigEntry(domain="zwave_js", data={"url": "ws://test.org"})
entry.add_to_hass(hass)
await hass.config_entries.async_setup(entry.entry_id)
await hass.async_block_till_done()
assert len(client.async_send_command.call_args_list) == 0
await hass.async_start()
assert len(client.async_send_command.call_args_list) == 1
args = client.async_send_command.call_args_list[0][0][0]
assert args["command"] == "controller.get_available_firmware_updates"
assert args["nodeId"] == zen_31.node_id
async def test_update_entity_failure(
hass,
client,
climate_radio_thermostat_ct100_plus_different_endpoints,
controller_node,
integration,
):
"""Test update entity update failed."""
assert len(client.async_send_command.call_args_list) == 0
client.async_send_command.side_effect = FailedZWaveCommand("test", 260, "test")
async_fire_time_changed(hass, dt_util.utcnow() + timedelta(days=1))
await hass.async_block_till_done()
state = hass.states.get(UPDATE_ENTITY)
assert state
assert state.state == STATE_OFF
assert len(client.async_send_command.call_args_list) == 1
args = client.async_send_command.call_args_list[0][0][0]
assert args["command"] == "controller.get_available_firmware_updates"
assert (
args["nodeId"]
== climate_radio_thermostat_ct100_plus_different_endpoints.node_id
)