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>
pull/77905/head
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 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.model.driver import Driver
from zwave_js_server.model.node import Node as ZwaveNode
@ -312,14 +313,6 @@ class ControllerEvents:
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,
# otherwise we'll have all kinds of missing info issues.
if node.ready:
@ -463,11 +456,27 @@ class NodeEvents:
),
)
)
# add listener for stateless node notification events
self.config_entry.async_on_unload(
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(
self,
device: device_registry.DeviceEntry,

View File

@ -1,14 +1,15 @@
"""Representation of Z-Wave updates."""
from __future__ import annotations
import asyncio
from collections.abc import Callable
from datetime import timedelta
from datetime import datetime, timedelta
from typing import Any
from awesomeversion import AwesomeVersion
from zwave_js_server.client import Client as ZwaveClient
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.firmware import FirmwareUpdateInfo
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.entity import EntityCategory
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 .helpers import get_device_info, get_valueless_base_unique_id
PARALLEL_UPDATES = 1
SCAN_INTERVAL = timedelta(days=1)
async def async_setup_entry(
@ -37,12 +39,14 @@ async def async_setup_entry(
"""Set up Z-Wave button from config entry."""
client: ZwaveClient = hass.data[DOMAIN][config_entry.entry_id][DATA_CLIENT]
semaphore = asyncio.Semaphore(3)
@callback
def async_add_firmware_update_entity(node: ZwaveNode) -> None:
"""Add firmware update entity."""
driver = client.driver
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(
async_dispatcher_connect(
@ -62,30 +66,36 @@ class ZWaveNodeFirmwareUpdate(UpdateEntity):
UpdateEntityFeature.INSTALL | UpdateEntityFeature.RELEASE_NOTES
)
_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."""
self.driver = driver
self.node = node
self.semaphore = semaphore
self._latest_version_firmware: FirmwareUpdateInfo | None = None
self._status_unsub: Callable[[], None] | None = None
self._poll_unsub: Callable[[], None] | None = None
# Entity class attributes
self._attr_name = "Firmware"
self._base_unique_id = get_valueless_base_unique_id(driver, node)
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
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:
"""Update the entity when node is awake."""
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."""
self._poll_unsub = None
for status, event_name in (
(NodeStatus.ASLEEP, "wake up"),
(NodeStatus.DEAD, "alive"),
@ -97,34 +107,38 @@ class ZWaveNodeFirmwareUpdate(UpdateEntity):
)
return
if available_firmware_updates := (
await self.driver.controller.async_get_available_firmware_updates(
self.node, API_KEY_FIRMWARE_UPDATE_SERVICE
try:
async with self.semaphore:
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:
self._attr_latest_version = self._attr_installed_version
if write_state:
self.async_write_ha_state()
if available_firmware_updates:
self._latest_version_firmware = latest_firmware = max(
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:
"""Get release notes."""
@ -138,8 +152,6 @@ class ZWaveNodeFirmwareUpdate(UpdateEntity):
"""Install an update."""
firmware = self._latest_version_firmware
assert firmware
self._attr_in_progress = True
self.async_write_ha_state()
try:
for file in firmware.files:
await self.driver.controller.async_begin_ota_firmware_update(
@ -148,11 +160,9 @@ class ZWaveNodeFirmwareUpdate(UpdateEntity):
except BaseZwaveJSServerError as err:
raise HomeAssistantError(err) from err
else:
self._attr_installed_version = firmware.version
self._attr_installed_version = self._attr_latest_version = firmware.version
self._latest_version_firmware = None
self._async_process_available_updates()
finally:
self._attr_in_progress = False
self.async_write_ha_state()
async def async_poll_value(self, _: bool) -> None:
"""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:
"""Call when entity will be removed."""
if self._status_unsub:
self._status_unsub()
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:
driver_ready.set()
await asyncio.sleep(30)
listen_block = asyncio.Event()
await listen_block.wait()
assert False, "Listen wasn't canceled!"
async def disconnect():

View File

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

View File

@ -77,7 +77,93 @@
32, 133, 89, 128, 121, 114, 115, 159, 108, 85, 134, 94
],
"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,
@ -3665,92 +3751,6 @@
],
"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",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0371:0x0103:0x00a4:1.3",
"isControllerNode": false

View File

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

View File

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

View File

@ -58,7 +58,153 @@
},
"mandatorySupportedCCs": [32, 114, 64, 67, 134],
"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": [
@ -3940,152 +4086,6 @@
"mandatorySupportedCCs": [32, 114, 64, 67, 134],
"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",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0190:0x0006:0x0001:1.44",
"statistics": {

View File

@ -67,62 +67,6 @@
"neighbors": [1, 14],
"interviewAttempts": 1,
"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": [
{
"nodeId": 5,

View File

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

View File

@ -66,7 +66,99 @@
},
"mandatorySupportedCCs": [32, 114, 64, 67, 134],
"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,
@ -1348,98 +1440,6 @@
"mandatorySupportedCCs": [32, 114, 64, 67, 134],
"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",
"isControllerNode": false
}

View File

@ -68,7 +68,105 @@
},
"mandatorySupportedCCs": [32, 114, 64, 67, 134],
"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,
@ -1148,104 +1246,6 @@
"mandatorySupportedCCs": [32, 114, 64, 67, 134],
"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",
"isControllerNode": false
}

View File

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

View File

@ -62,7 +62,93 @@
"endpoints": [
{
"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,
@ -741,91 +827,5 @@
"mandatorySupportedCCs": [32, 114, 64, 67, 134],
"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
}

View File

@ -1316,121 +1316,5 @@
"mandatorySupportedCCs": [32, 114, 64, 67, 134],
"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
}

View File

@ -54,7 +54,93 @@
"endpoints": [
{
"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,
@ -873,91 +959,5 @@
"mandatorySupportedCCs": [32, 114, 64, 67, 134],
"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
}

View File

@ -63,7 +63,93 @@
},
"mandatorySupportedCCs": [32, 38, 37, 114, 134],
"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": [
@ -386,92 +472,6 @@
"mandatorySupportedCCs": [32, 38, 37, 114, 134],
"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",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0371:0x0003:0x008d:3.1",
"isControllerNode": false

View File

@ -74,7 +74,75 @@
},
"mandatorySupportedCCs": [32, 38, 37, 114, 134],
"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": [
@ -1029,74 +1097,6 @@
"mandatorySupportedCCs": [32, 38, 37, 114, 134],
"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",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x010f:0x0302:0x1000:25.25",
"statistics": {

View File

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

View File

@ -57,7 +57,81 @@
},
"mandatorySupportedCCs": [32, 38, 37, 114, 134],
"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": [
@ -792,80 +866,6 @@
"mandatorySupportedCCs": [32, 38, 37, 114, 134],
"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",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0159:0x0003:0x0052:71.0",
"statistics": {

View File

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

View File

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

View File

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

View File

@ -60,7 +60,87 @@
},
"mandatorySupportedCCs": [],
"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": [
@ -578,86 +658,6 @@
"mandatorySupportedCCs": [],
"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",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x001e:0x0004:0x0001:1.8",
"statistics": {

View File

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

View File

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

View File

@ -63,7 +63,105 @@
},
"mandatorySupportedCCs": [32, 38, 133, 89, 114, 115, 134, 94],
"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": [
@ -9859,104 +9957,6 @@
"mandatorySupportedCCs": [32, 38, 133, 89, 114, 115, 134, 94],
"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",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x000c:0x0203:0x0001:50.5",
"statistics": {

View File

@ -62,7 +62,39 @@
},
"mandatorySupportedCCs": [32, 38],
"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": [
@ -306,38 +338,6 @@
"mandatorySupportedCCs": [32, 38],
"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",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0084:0x0313:0x010b:1.11",
"statistics": {

View File

@ -56,7 +56,39 @@
},
"mandatorySupportedCCs": [32, 38],
"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": [
@ -298,38 +330,6 @@
"mandatorySupportedCCs": [32, 38],
"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",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0084:0x0331:0x010b:1.11",
"statistics": {

View File

@ -65,116 +65,116 @@
"aggregatedEndpointCount": 0,
"interviewAttempts": 1,
"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": [
{
"nodeId": 19,
"index": 0,
"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,

View File

@ -83,7 +83,75 @@
},
"mandatorySupportedCCs": [32],
"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": [
@ -616,73 +684,5 @@
"mandatorySupportedCCs": [32],
"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
}

View File

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

View File

@ -48,7 +48,87 @@
"nodeId": 60,
"index": 0,
"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": [
@ -2836,85 +2916,5 @@
"mandatorySupportedCCs": [32, 98, 99, 114, 152, 134],
"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
}

View File

@ -35,7 +35,87 @@
},
"mandatorySupportedCCs": [113, 133, 98, 114, 152, 134],
"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": [
@ -476,86 +556,6 @@
"mandatorySupportedCCs": [113, 133, 98, 114, 152, 134],
"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",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0154:0x0005:0x0001:1.3",
"statistics": {

View File

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

View File

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

View File

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

View File

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

View File

@ -31,7 +31,81 @@
"nodeId": 10,
"index": 0,
"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,
@ -337,79 +411,5 @@
"mandatorySupportedCCs": [32, 49],
"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
}

View File

@ -53,36 +53,36 @@
"neighbors": [1, 5, 10, 12, 13, 14, 15, 18, 21],
"interviewAttempts": 1,
"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": [
{
"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": [

View File

@ -60,7 +60,39 @@
},
"mandatorySupportedCCs": [32, 37, 39],
"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,
@ -363,37 +395,5 @@
"mandatorySupportedCCs": [32, 37, 39],
"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
}

View File

@ -66,7 +66,129 @@
32, 38, 133, 89, 51, 90, 114, 115, 159, 108, 85, 134, 94
],
"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,
@ -2587,127 +2709,5 @@
],
"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
}

View File

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

View File

@ -63,7 +63,87 @@
},
"mandatorySupportedCCs": [],
"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": [
@ -607,86 +687,6 @@
"mandatorySupportedCCs": [],
"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",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0109:0x2021:0x2101:5.1",
"statistics": {

View File

@ -211,8 +211,8 @@ async def test_on_node_added_not_ready(
client.driver.receive_event(event)
await hass.async_block_till_done()
# the only entities are the node status sensor, ping button, and firmware update
assert len(hass.states.async_all()) == 3
# the only entities are the node status sensor and ping button
assert len(hass.states.async_all()) == 2
device = dev_reg.async_get_device(identifiers={(DOMAIN, device_id)})
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.sw_version
# the only entities are the node status sensor, ping button, and firmware update
assert len(hass.states.async_all()) == 3
# the only entities are the node status sensor and ping button
assert len(hass.states.async_all()) == 2
device = dev_reg.async_get_device(identifiers={(DOMAIN, device_id)})
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.exceptions import HomeAssistantError
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"
FIRMWARE_UPDATES = {
@ -162,14 +162,12 @@ async def test_update_entity_success(
client.async_send_command.reset_mock()
async def test_update_entity_failure(
async def test_update_entity_install_failure(
hass,
client,
climate_radio_thermostat_ct100_plus_different_endpoints,
controller_node,
integration,
caplog,
hass_ws_client,
):
"""Test update entity failed install."""
client.async_send_command.return_value = FIRMWARE_UPDATES
@ -194,15 +192,15 @@ async def test_update_entity_failure(
async def test_update_entity_sleep(
hass,
client,
multisensor_6,
zen_31,
integration,
):
"""Test update occurs when device is asleep after it wakes up."""
event = Event(
"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.return_value = FIRMWARE_UPDATES
@ -215,9 +213,9 @@ async def test_update_entity_sleep(
event = Event(
"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()
# 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]
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(
hass,
client,
multisensor_6,
zen_31,
integration,
):
"""Test update occurs when device is dead after it becomes alive."""
event = Event(
"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.return_value = FIRMWARE_UPDATES
@ -252,9 +250,9 @@ async def test_update_entity_dead(
event = Event(
"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()
# 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]
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
)