From 82ebb7047f54347982531f16f009f618dc06fcc2 Mon Sep 17 00:00:00 2001 From: Raman Gupta <7243222+raman325@users.noreply.github.com> Date: Fri, 18 Feb 2022 02:36:27 -0500 Subject: [PATCH] Bump zwave-js-server-python to 0.35.0 (#66785) * Bump zwave-js-server-python to 0.35.0 * Remove support for new event type which should go in a separate PR --- .../components/zwave_js/diagnostics.py | 9 +- .../components/zwave_js/manifest.json | 2 +- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- .../fixtures/aeon_smart_switch_6_state.json | 6 +- .../aeotec_radiator_thermostat_state.json | 2 +- .../fixtures/bulb_6_multi_color_state.json | 2 +- .../fixtures/chain_actuator_zws12_state.json | 2 +- .../climate_eurotronic_spirit_z_state.json | 2 +- .../fixtures/climate_heatit_z_trm3_state.json | 2 +- ...ate_radio_thermostat_ct100_plus_state.json | 254 +++++++++--------- .../fixtures/cover_iblinds_v2_state.json | 2 +- .../zwave_js/fixtures/cover_zw062_state.json | 2 +- .../fixtures/eaton_rf9640_dimmer_state.json | 2 +- .../fixtures/ecolink_door_sensor_state.json | 2 +- .../zwave_js/fixtures/fan_ge_12730_state.json | 2 +- .../zwave_js/fixtures/fan_generic_state.json | 2 +- .../ge_in_wall_dimmer_switch_state.json | 162 +++++------ .../fixtures/hank_binary_switch_state.json | 6 +- .../fixtures/lock_august_asl03_state.json | 2 +- .../fixtures/lock_schlage_be469_state.json | 128 ++++----- .../fixtures/multisensor_6_state.json | 2 +- .../nortek_thermostat_added_event.json | 2 +- .../nortek_thermostat_removed_event.json | 5 +- .../fixtures/nortek_thermostat_state.json | 2 +- .../wallmote_central_scene_state.json | 174 ++++++------ tests/components/zwave_js/test_api.py | 30 ++- .../zwave_js/test_device_condition.py | 11 - tests/components/zwave_js/test_diagnostics.py | 18 +- tests/components/zwave_js/test_init.py | 27 +- tests/components/zwave_js/test_sensor.py | 10 +- 31 files changed, 447 insertions(+), 429 deletions(-) diff --git a/homeassistant/components/zwave_js/diagnostics.py b/homeassistant/components/zwave_js/diagnostics.py index 080fffe2107..8b59c38d405 100644 --- a/homeassistant/components/zwave_js/diagnostics.py +++ b/homeassistant/components/zwave_js/diagnostics.py @@ -8,8 +8,8 @@ from zwave_js_server.model.node import NodeDataType from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_URL from homeassistant.core import HomeAssistant +from homeassistant.helpers import device_registry as dr from homeassistant.helpers.aiohttp_client import async_get_clientsession -from homeassistant.helpers.device_registry import DeviceEntry from .const import DATA_CLIENT, DOMAIN from .helpers import get_home_and_node_id_from_device_entry @@ -26,7 +26,7 @@ async def async_get_config_entry_diagnostics( async def async_get_device_diagnostics( - hass: HomeAssistant, config_entry: ConfigEntry, device: DeviceEntry + hass: HomeAssistant, config_entry: ConfigEntry, device: dr.DeviceEntry ) -> NodeDataType: """Return diagnostics for a device.""" client: Client = hass.data[DOMAIN][config_entry.entry_id][DATA_CLIENT] @@ -42,8 +42,5 @@ async def async_get_device_diagnostics( "minSchemaVersion": client.version.min_schema_version, "maxSchemaVersion": client.version.max_schema_version, }, - "state": { - **node.data, - "values": [value.data for value in node.values.values()], - }, + "state": node.data, } diff --git a/homeassistant/components/zwave_js/manifest.json b/homeassistant/components/zwave_js/manifest.json index d6cc9938eba..e6975ddb47b 100644 --- a/homeassistant/components/zwave_js/manifest.json +++ b/homeassistant/components/zwave_js/manifest.json @@ -3,7 +3,7 @@ "name": "Z-Wave JS", "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/zwave_js", - "requirements": ["zwave-js-server-python==0.34.0"], + "requirements": ["zwave-js-server-python==0.35.0"], "codeowners": ["@home-assistant/z-wave"], "dependencies": ["usb", "http", "websocket_api"], "iot_class": "local_push", diff --git a/requirements_all.txt b/requirements_all.txt index 3f343d5d23f..caa36d4dc46 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -2559,7 +2559,7 @@ zigpy==0.43.0 zm-py==0.5.2 # homeassistant.components.zwave_js -zwave-js-server-python==0.34.0 +zwave-js-server-python==0.35.0 # homeassistant.components.zwave_me zwave_me_ws==0.1.23 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index faeba577532..912e41fcd7d 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -1584,7 +1584,7 @@ zigpy-znp==0.7.0 zigpy==0.43.0 # homeassistant.components.zwave_js -zwave-js-server-python==0.34.0 +zwave-js-server-python==0.35.0 # homeassistant.components.zwave_me zwave_me_ws==0.1.23 diff --git a/tests/components/zwave_js/fixtures/aeon_smart_switch_6_state.json b/tests/components/zwave_js/fixtures/aeon_smart_switch_6_state.json index c8d8f878c0b..1eb2baf3a02 100644 --- a/tests/components/zwave_js/fixtures/aeon_smart_switch_6_state.json +++ b/tests/components/zwave_js/fixtures/aeon_smart_switch_6_state.json @@ -10,7 +10,7 @@ "generic": {"key": 16, "label":"Binary Switch"}, "specific": {"key": 1, "label":"Binary Power Switch"}, "mandatorySupportedCCs": [], - "mandatoryControlCCs": [] + "mandatoryControlledCCs": [] }, "isListening": true, "isFrequentListening": false, @@ -50,10 +50,10 @@ "nodeId": 102, "index": 0, "installerIcon": 1792, - "userIcon": 1792 + "userIcon": 1792, + "commandClasses": [] } ], - "commandClasses": [], "values": [ { "endpoint": 0, diff --git a/tests/components/zwave_js/fixtures/aeotec_radiator_thermostat_state.json b/tests/components/zwave_js/fixtures/aeotec_radiator_thermostat_state.json index 27c3f991d33..646363e3313 100644 --- a/tests/components/zwave_js/fixtures/aeotec_radiator_thermostat_state.json +++ b/tests/components/zwave_js/fixtures/aeotec_radiator_thermostat_state.json @@ -10,7 +10,7 @@ "generic": {"key": 8, "label":"Thermostat"}, "specific": {"key": 6, "label":"Thermostat General V2"}, "mandatorySupportedCCs": [], - "mandatoryControlCCs": [] + "mandatoryControlledCCs": [] }, "isListening": false, "isFrequentListening": true, diff --git a/tests/components/zwave_js/fixtures/bulb_6_multi_color_state.json b/tests/components/zwave_js/fixtures/bulb_6_multi_color_state.json index 58608131e90..668d1b9dce9 100644 --- a/tests/components/zwave_js/fixtures/bulb_6_multi_color_state.json +++ b/tests/components/zwave_js/fixtures/bulb_6_multi_color_state.json @@ -10,7 +10,7 @@ "generic": {"key": 17, "label":"Multilevel Switch"}, "specific": {"key": 1, "label":"Multilevel Power Switch"}, "mandatorySupportedCCs": [], - "mandatoryControlCCs": [] + "mandatoryControlledCCs": [] }, "isListening": true, "isFrequentListening": false, diff --git a/tests/components/zwave_js/fixtures/chain_actuator_zws12_state.json b/tests/components/zwave_js/fixtures/chain_actuator_zws12_state.json index cf7adddc21e..a726175fa38 100644 --- a/tests/components/zwave_js/fixtures/chain_actuator_zws12_state.json +++ b/tests/components/zwave_js/fixtures/chain_actuator_zws12_state.json @@ -10,7 +10,7 @@ "generic": {"key": 17, "label":"Multilevel Switch"}, "specific": {"key": 7, "label":"Motor Control Class C"}, "mandatorySupportedCCs": [], - "mandatoryControlCCs": [] + "mandatoryControlledCCs": [] }, "isListening": true, "isFrequentListening": false, diff --git a/tests/components/zwave_js/fixtures/climate_eurotronic_spirit_z_state.json b/tests/components/zwave_js/fixtures/climate_eurotronic_spirit_z_state.json index 8dff31a5225..afa216cac32 100644 --- a/tests/components/zwave_js/fixtures/climate_eurotronic_spirit_z_state.json +++ b/tests/components/zwave_js/fixtures/climate_eurotronic_spirit_z_state.json @@ -25,7 +25,7 @@ "Thermostat Setpoint", "Version" ], - "mandatoryControlCCs": [] + "mandatoryControlledCCs": [] }, "isListening": false, "isFrequentListening": true, diff --git a/tests/components/zwave_js/fixtures/climate_heatit_z_trm3_state.json b/tests/components/zwave_js/fixtures/climate_heatit_z_trm3_state.json index b26b69be9ad..98c185fd8d5 100644 --- a/tests/components/zwave_js/fixtures/climate_heatit_z_trm3_state.json +++ b/tests/components/zwave_js/fixtures/climate_heatit_z_trm3_state.json @@ -10,7 +10,7 @@ "generic": {"key": 8, "label":"Thermostat"}, "specific": {"key": 6, "label":"Thermostat General V2"}, "mandatorySupportedCCs": [], - "mandatoryControlCCs": [] + "mandatoryControlledCCs": [] }, "isListening": true, "isFrequentListening": false, diff --git a/tests/components/zwave_js/fixtures/climate_radio_thermostat_ct100_plus_state.json b/tests/components/zwave_js/fixtures/climate_radio_thermostat_ct100_plus_state.json index cd5a6bd4abe..3805394dbce 100644 --- a/tests/components/zwave_js/fixtures/climate_radio_thermostat_ct100_plus_state.json +++ b/tests/components/zwave_js/fixtures/climate_radio_thermostat_ct100_plus_state.json @@ -6,11 +6,11 @@ "status": 4, "ready": true, "deviceClass": { - "basic": {"key": 2, "label":"Static Controller"}, - "generic": {"key": 8, "label":"Thermostat"}, - "specific": {"key": 6, "label":"Thermostat General V2"}, + "basic": { "key": 2, "label": "Static Controller" }, + "generic": { "key": 8, "label": "Thermostat" }, + "specific": { "key": 6, "label": "Thermostat General V2" }, "mandatorySupportedCCs": [], - "mandatoryControlCCs": [] + "mandatoryControlledCCs": [] }, "isListening": true, "isFrequentListening": false, @@ -47,7 +47,129 @@ "nodeId": 13, "index": 0, "installerIcon": 4608, - "userIcon": 4608 + "userIcon": 4608, + "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": 115, + "name": "Powerlevel", + "version": 1, + "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 + } + ] }, { "nodeId": 13, @@ -57,128 +179,6 @@ }, { "nodeId": 13, "index": 2 } ], - "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": 115, - "name": "Powerlevel", - "version": 1, - "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 - } - ], "values": [ { "commandClassName": "Manufacturer Specific", diff --git a/tests/components/zwave_js/fixtures/cover_iblinds_v2_state.json b/tests/components/zwave_js/fixtures/cover_iblinds_v2_state.json index 35ce70f617a..42200c2f1d6 100644 --- a/tests/components/zwave_js/fixtures/cover_iblinds_v2_state.json +++ b/tests/components/zwave_js/fixtures/cover_iblinds_v2_state.json @@ -10,7 +10,7 @@ "generic": {"key": 17, "label":"Routing Slave"}, "specific": {"key": 0, "label":"Unused"}, "mandatorySupportedCCs": [], - "mandatoryControlCCs": [] + "mandatoryControlledCCs": [] }, "isListening": false, "isFrequentListening": true, diff --git a/tests/components/zwave_js/fixtures/cover_zw062_state.json b/tests/components/zwave_js/fixtures/cover_zw062_state.json index 9e7b05adc34..a0ccd4de9c5 100644 --- a/tests/components/zwave_js/fixtures/cover_zw062_state.json +++ b/tests/components/zwave_js/fixtures/cover_zw062_state.json @@ -10,7 +10,7 @@ "generic": {"key": 64, "label":"Entry Control"}, "specific": {"key": 7, "label":"Secure Barrier Add-on"}, "mandatorySupportedCCs": [], - "mandatoryControlCCs": [] + "mandatoryControlledCCs": [] }, "isListening": true, "isFrequentListening": false, diff --git a/tests/components/zwave_js/fixtures/eaton_rf9640_dimmer_state.json b/tests/components/zwave_js/fixtures/eaton_rf9640_dimmer_state.json index b11d2bfd180..3edb0494c37 100644 --- a/tests/components/zwave_js/fixtures/eaton_rf9640_dimmer_state.json +++ b/tests/components/zwave_js/fixtures/eaton_rf9640_dimmer_state.json @@ -10,7 +10,7 @@ "generic": {"key": 17, "label":"Routing Slave"}, "specific": {"key": 1, "label":"Multilevel Power Switch"}, "mandatorySupportedCCs": [], - "mandatoryControlCCs": [] + "mandatoryControlledCCs": [] }, "isListening": true, "isFrequentListening": false, diff --git a/tests/components/zwave_js/fixtures/ecolink_door_sensor_state.json b/tests/components/zwave_js/fixtures/ecolink_door_sensor_state.json index 9c2befdf5e8..ac32a9f99bb 100644 --- a/tests/components/zwave_js/fixtures/ecolink_door_sensor_state.json +++ b/tests/components/zwave_js/fixtures/ecolink_door_sensor_state.json @@ -8,7 +8,7 @@ "generic": {"key": 32, "label":"Binary Sensor"}, "specific": {"key": 1, "label":"Routing Binary Sensor"}, "mandatorySupportedCCs": [], - "mandatoryControlCCs": [] + "mandatoryControlledCCs": [] }, "isListening": false, "isFrequentListening": false, diff --git a/tests/components/zwave_js/fixtures/fan_ge_12730_state.json b/tests/components/zwave_js/fixtures/fan_ge_12730_state.json index b6cf59b4226..ddbff0f3ffa 100644 --- a/tests/components/zwave_js/fixtures/fan_ge_12730_state.json +++ b/tests/components/zwave_js/fixtures/fan_ge_12730_state.json @@ -8,7 +8,7 @@ "generic": {"key": 17, "label":"Multilevel Switch"}, "specific": {"key": 1, "label":"Multilevel Power Switch"}, "mandatorySupportedCCs": [], - "mandatoryControlCCs": [] + "mandatoryControlledCCs": [] }, "isListening": true, "isFrequentListening": false, diff --git a/tests/components/zwave_js/fixtures/fan_generic_state.json b/tests/components/zwave_js/fixtures/fan_generic_state.json index 1f4f55dd220..d09848fb759 100644 --- a/tests/components/zwave_js/fixtures/fan_generic_state.json +++ b/tests/components/zwave_js/fixtures/fan_generic_state.json @@ -10,7 +10,7 @@ "generic": {"key": 17, "label":"Multilevel Switch"}, "specific": {"key": 8, "label":"Fan Switch"}, "mandatorySupportedCCs": [], - "mandatoryControlCCs": [] + "mandatoryControlledCCs": [] }, "isListening": true, "isFrequentListening": false, diff --git a/tests/components/zwave_js/fixtures/ge_in_wall_dimmer_switch_state.json b/tests/components/zwave_js/fixtures/ge_in_wall_dimmer_switch_state.json index 58d3f0d06ec..d47896a980a 100644 --- a/tests/components/zwave_js/fixtures/ge_in_wall_dimmer_switch_state.json +++ b/tests/components/zwave_js/fixtures/ge_in_wall_dimmer_switch_state.json @@ -64,7 +64,87 @@ }, "mandatorySupportedCCs": [32, 38, 39], "mandatoryControlledCCs": [] - } + }, + "commandClasses": [ + { + "id": 32, + "name": "Basic", + "version": 1, + "isSecure": false + }, + { + "id": 38, + "name": "Multilevel Switch", + "version": 2, + "isSecure": false + }, + { + "id": 43, + "name": "Scene Activation", + "version": 1, + "isSecure": false + }, + { + "id": 44, + "name": "Scene Actuator Configuration", + "version": 1, + "isSecure": false + }, + { + "id": 86, + "name": "CRC-16 Encapsulation", + "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": 112, + "name": "Configuration", + "version": 1, + "isSecure": false + }, + { + "id": 114, + "name": "Manufacturer Specific", + "version": 2, + "isSecure": false + }, + { + "id": 122, + "name": "Firmware Update Meta Data", + "version": 2, + "isSecure": false + }, + { + "id": 133, + "name": "Association", + "version": 2, + "isSecure": false + }, + { + "id": 134, + "name": "Version", + "version": 2, + "isSecure": false + } + ] } ], "values": [ @@ -557,86 +637,6 @@ "mandatorySupportedCCs": [32, 38, 39], "mandatoryControlledCCs": [] }, - "commandClasses": [ - { - "id": 32, - "name": "Basic", - "version": 1, - "isSecure": false - }, - { - "id": 38, - "name": "Multilevel Switch", - "version": 2, - "isSecure": false - }, - { - "id": 43, - "name": "Scene Activation", - "version": 1, - "isSecure": false - }, - { - "id": 44, - "name": "Scene Actuator Configuration", - "version": 1, - "isSecure": false - }, - { - "id": 86, - "name": "CRC-16 Encapsulation", - "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": 112, - "name": "Configuration", - "version": 1, - "isSecure": false - }, - { - "id": 114, - "name": "Manufacturer Specific", - "version": 2, - "isSecure": false - }, - { - "id": 122, - "name": "Firmware Update Meta Data", - "version": 2, - "isSecure": false - }, - { - "id": 133, - "name": "Association", - "version": 2, - "isSecure": false - }, - { - "id": 134, - "name": "Version", - "version": 2, - "isSecure": false - } - ], "interviewStage": "Complete", "deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0063:0x4944:0x3038:5.26" } diff --git a/tests/components/zwave_js/fixtures/hank_binary_switch_state.json b/tests/components/zwave_js/fixtures/hank_binary_switch_state.json index e5f739d63a5..d27338db5a9 100644 --- a/tests/components/zwave_js/fixtures/hank_binary_switch_state.json +++ b/tests/components/zwave_js/fixtures/hank_binary_switch_state.json @@ -10,7 +10,7 @@ "generic": {"key": 16, "label":"Binary Switch"}, "specific": {"key": 1, "label":"Binary Power Switch"}, "mandatorySupportedCCs": [], - "mandatoryControlCCs": [] + "mandatoryControlledCCs": [] }, "isListening": true, "isFrequentListening": false, @@ -60,10 +60,10 @@ "nodeId": 32, "index": 0, "installerIcon": 1792, - "userIcon": 1792 + "userIcon": 1792, + "commandClasses": [] } ], - "commandClasses": [], "values": [ { "commandClassName": "Binary Switch", diff --git a/tests/components/zwave_js/fixtures/lock_august_asl03_state.json b/tests/components/zwave_js/fixtures/lock_august_asl03_state.json index 2b218cd915b..b22c21e4777 100644 --- a/tests/components/zwave_js/fixtures/lock_august_asl03_state.json +++ b/tests/components/zwave_js/fixtures/lock_august_asl03_state.json @@ -10,7 +10,7 @@ "generic": {"key": 64, "label":"Entry Control"}, "specific": {"key": 3, "label":"Secure Keypad Door Lock"}, "mandatorySupportedCCs": [], - "mandatoryControlCCs": [] + "mandatoryControlledCCs": [] }, "isListening": false, "isFrequentListening": true, diff --git a/tests/components/zwave_js/fixtures/lock_schlage_be469_state.json b/tests/components/zwave_js/fixtures/lock_schlage_be469_state.json index f85a8e6b005..fedee0f9cf1 100644 --- a/tests/components/zwave_js/fixtures/lock_schlage_be469_state.json +++ b/tests/components/zwave_js/fixtures/lock_schlage_be469_state.json @@ -8,7 +8,7 @@ "generic": {"key": 64, "label":"Entry Control"}, "specific": {"key": 3, "label":"Secure Keypad Door Lock"}, "mandatorySupportedCCs": [], - "mandatoryControlCCs": [] + "mandatoryControlledCCs": [] }, "isListening": false, "isFrequentListening": true, @@ -47,71 +47,71 @@ "endpoints": [ { "nodeId": 20, - "index": 0 + "index": 0, + "commandClasses": [ + { + "id": 98, + "name": "Door Lock", + "version": 1, + "isSecure": true + }, + { + "id": 99, + "name": "User Code", + "version": 1, + "isSecure": true + }, + { + "id": 112, + "name": "Configuration", + "version": 1, + "isSecure": true + }, + { + "id": 113, + "name": "Notification", + "version": 1, + "isSecure": true + }, + { + "id": 114, + "name": "Manufacturer Specific", + "version": 1, + "isSecure": false + }, + { + "id": 122, + "name": "Firmware Update Meta Data", + "version": 1, + "isSecure": false + }, + { + "id": 128, + "name": "Battery", + "version": 1, + "isSecure": true + }, + { + "id": 133, + "name": "Association", + "version": 1, + "isSecure": true + }, + { + "id": 134, + "name": "Version", + "version": 1, + "isSecure": false + }, + { + "id": 152, + "name": "Security", + "version": 1, + "isSecure": true + } + ] } ], - "commandClasses": [ - { - "id": 98, - "name": "Door Lock", - "version": 1, - "isSecure": true - }, - { - "id": 99, - "name": "User Code", - "version": 1, - "isSecure": true - }, - { - "id": 112, - "name": "Configuration", - "version": 1, - "isSecure": true - }, - { - "id": 113, - "name": "Notification", - "version": 1, - "isSecure": true - }, - { - "id": 114, - "name": "Manufacturer Specific", - "version": 1, - "isSecure": false - }, - { - "id": 122, - "name": "Firmware Update Meta Data", - "version": 1, - "isSecure": false - }, - { - "id": 128, - "name": "Battery", - "version": 1, - "isSecure": true - }, - { - "id": 133, - "name": "Association", - "version": 1, - "isSecure": true - }, - { - "id": 134, - "name": "Version", - "version": 1, - "isSecure": false - }, - { - "id": 152, - "name": "Security", - "version": 1, - "isSecure": true - } - ], "values": [ { "commandClassName": "Door Lock", diff --git a/tests/components/zwave_js/fixtures/multisensor_6_state.json b/tests/components/zwave_js/fixtures/multisensor_6_state.json index 2646fecfd37..634d8ec9169 100644 --- a/tests/components/zwave_js/fixtures/multisensor_6_state.json +++ b/tests/components/zwave_js/fixtures/multisensor_6_state.json @@ -10,7 +10,7 @@ "generic": {"key": 21, "label":"Multilevel Sensor"}, "specific": {"key": 1, "label":"Routing Multilevel Sensor"}, "mandatorySupportedCCs": [], - "mandatoryControlCCs": [] + "mandatoryControlledCCs": [] }, "isListening": true, "isFrequentListening": false, diff --git a/tests/components/zwave_js/fixtures/nortek_thermostat_added_event.json b/tests/components/zwave_js/fixtures/nortek_thermostat_added_event.json index 98ae03afbf2..598650b863c 100644 --- a/tests/components/zwave_js/fixtures/nortek_thermostat_added_event.json +++ b/tests/components/zwave_js/fixtures/nortek_thermostat_added_event.json @@ -11,7 +11,7 @@ "generic": {"key": 8, "label":"Thermostat"}, "specific": {"key": 6, "label":"Thermostat General V2"}, "mandatorySupportedCCs": [], - "mandatoryControlCCs": [] + "mandatoryControlledCCs": [] }, "neighbors": [], "interviewAttempts": 1, diff --git a/tests/components/zwave_js/fixtures/nortek_thermostat_removed_event.json b/tests/components/zwave_js/fixtures/nortek_thermostat_removed_event.json index 01bad6c4a8f..44b1379ca82 100644 --- a/tests/components/zwave_js/fixtures/nortek_thermostat_removed_event.json +++ b/tests/components/zwave_js/fixtures/nortek_thermostat_removed_event.json @@ -11,7 +11,7 @@ "generic": {"key": 8, "label":"Thermostat"}, "specific": {"key": 6, "label":"Thermostat General V2"}, "mandatorySupportedCCs": [], - "mandatoryControlCCs": [] + "mandatoryControlledCCs": [] }, "isListening": false, "isFrequentListening": true, @@ -274,5 +274,6 @@ } } ] - } + }, + "replaced": false } \ No newline at end of file diff --git a/tests/components/zwave_js/fixtures/nortek_thermostat_state.json b/tests/components/zwave_js/fixtures/nortek_thermostat_state.json index 4e6ca17e013..a3b34aeedf0 100644 --- a/tests/components/zwave_js/fixtures/nortek_thermostat_state.json +++ b/tests/components/zwave_js/fixtures/nortek_thermostat_state.json @@ -10,7 +10,7 @@ "generic": {"key": 8, "label":"Thermostat"}, "specific": {"key": 6, "label":"Thermostat General V2"}, "mandatorySupportedCCs": [], - "mandatoryControlCCs": [] + "mandatoryControlledCCs": [] }, "isListening": false, "isFrequentListening": true, diff --git a/tests/components/zwave_js/fixtures/wallmote_central_scene_state.json b/tests/components/zwave_js/fixtures/wallmote_central_scene_state.json index 22eb05c9ce5..f5560dd7e78 100644 --- a/tests/components/zwave_js/fixtures/wallmote_central_scene_state.json +++ b/tests/components/zwave_js/fixtures/wallmote_central_scene_state.json @@ -80,98 +80,98 @@ "aggregatedEndpointCount": 0, "interviewAttempts": 1, "interviewStage": "NodeInfo", - "commandClasses": [ - { - "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": 2, - "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": 113, - "name": "Notification", - "version": 4, - "isSecure": false - }, - { - "id": 114, - "name": "Manufacturer Specific", - "version": 2, - "isSecure": false - }, - { - "id": 122, - "name": "Firmware Update Meta Data", - "version": 2, - "isSecure": false - }, - { - "id": 128, - "name": "Battery", - "version": 1, - "isSecure": false - }, - { - "id": 132, - "name": "Wake Up", - "version": 1, - "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 - } - ], "endpoints": [ { "nodeId": 35, "index": 0, "installerIcon": 7172, - "userIcon": 7172 + "userIcon": 7172, + "commandClasses": [ + { + "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": 2, + "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": 113, + "name": "Notification", + "version": 4, + "isSecure": false + }, + { + "id": 114, + "name": "Manufacturer Specific", + "version": 2, + "isSecure": false + }, + { + "id": 122, + "name": "Firmware Update Meta Data", + "version": 2, + "isSecure": false + }, + { + "id": 128, + "name": "Battery", + "version": 1, + "isSecure": false + }, + { + "id": 132, + "name": "Wake Up", + "version": 1, + "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": 35, diff --git a/tests/components/zwave_js/test_api.py b/tests/components/zwave_js/test_api.py index 8362854a5f6..1596b099ab1 100644 --- a/tests/components/zwave_js/test_api.py +++ b/tests/components/zwave_js/test_api.py @@ -478,7 +478,15 @@ async def test_add_node( event = Event( type="interview failed", - data={"source": "node", "event": "interview failed", "nodeId": 67}, + data={ + "source": "node", + "event": "interview failed", + "nodeId": 67, + "args": { + "errorMessage": "error", + "isFinal": True, + }, + }, ) client.driver.receive_event(event) @@ -1610,7 +1618,15 @@ async def test_replace_failed_node( event = Event( type="interview failed", - data={"source": "node", "event": "interview failed", "nodeId": 67}, + data={ + "source": "node", + "event": "interview failed", + "nodeId": 67, + "args": { + "errorMessage": "error", + "isFinal": True, + }, + }, ) client.driver.receive_event(event) @@ -2193,7 +2209,15 @@ async def test_refresh_node_info( event = Event( type="interview failed", - data={"source": "node", "event": "interview failed", "nodeId": 52}, + data={ + "source": "node", + "event": "interview failed", + "nodeId": 52, + "args": { + "errorMessage": "error", + "isFinal": True, + }, + }, ) client.driver.receive_event(event) diff --git a/tests/components/zwave_js/test_device_condition.py b/tests/components/zwave_js/test_device_condition.py index da6b4b15459..2161c8e6fe4 100644 --- a/tests/components/zwave_js/test_device_condition.py +++ b/tests/components/zwave_js/test_device_condition.py @@ -215,17 +215,6 @@ async def test_node_status_state( assert len(calls) == 4 assert calls[3].data["some"] == "dead - event - test_event4" - event = Event( - "unknown", - data={ - "source": "node", - "event": "unknown", - "nodeId": lock_schlage_be469.node_id, - }, - ) - lock_schlage_be469.receive_event(event) - await hass.async_block_till_done() - async def test_config_parameter_state( hass, client, lock_schlage_be469, integration, calls diff --git a/tests/components/zwave_js/test_diagnostics.py b/tests/components/zwave_js/test_diagnostics.py index b41292a15fc..332c8c84635 100644 --- a/tests/components/zwave_js/test_diagnostics.py +++ b/tests/components/zwave_js/test_diagnostics.py @@ -2,9 +2,7 @@ from unittest.mock import patch import pytest -from zwave_js_server.const import CommandClass from zwave_js_server.event import Event -from zwave_js_server.model.value import _get_value_id_from_dict, get_value_id from homeassistant.components.zwave_js.diagnostics import async_get_device_diagnostics from homeassistant.components.zwave_js.helpers import get_device_id @@ -43,9 +41,6 @@ async def test_device_diagnostics( assert device # Update a value and ensure it is reflected in the node state - value_id = get_value_id( - multisensor_6, CommandClass.SENSOR_MULTILEVEL, PROPERTY_ULTRAVIOLET - ) event = Event( type="value updated", data={ @@ -75,18 +70,7 @@ async def test_device_diagnostics( "maxSchemaVersion": 0, } - # Assert that the data returned doesn't match the stale node state data - assert diagnostics_data["state"] != multisensor_6.data - - # Replace data for the value we updated and assert the new node data is the same - # as what's returned - updated_node_data = multisensor_6.data.copy() - for idx, value in enumerate(updated_node_data["values"]): - if _get_value_id_from_dict(multisensor_6, value) == value_id: - updated_node_data["values"][idx] = multisensor_6.values[ - value_id - ].data.copy() - assert diagnostics_data["state"] == updated_node_data + assert diagnostics_data["state"] == multisensor_6.data async def test_device_diagnostics_error(hass, integration): diff --git a/tests/components/zwave_js/test_init.py b/tests/components/zwave_js/test_init.py index d08c680dfe2..3780b2654f9 100644 --- a/tests/components/zwave_js/test_init.py +++ b/tests/components/zwave_js/test_init.py @@ -196,12 +196,16 @@ async def test_on_node_added_not_ready( assert len(hass.states.async_all()) == 0 assert not dev_reg.devices + node_state = deepcopy(zp3111_not_ready_state) + node_state["isSecure"] = False + event = Event( type="node added", data={ "source": "controller", "event": "node added", - "node": deepcopy(zp3111_not_ready_state), + "node": node_state, + "result": {}, }, ) client.driver.receive_event(event) @@ -317,12 +321,16 @@ async def test_existing_node_not_replaced_when_not_ready( assert state.name == "Custom Entity Name" assert not hass.states.get(motion_entity) + node_state = deepcopy(zp3111_not_ready_state) + node_state["isSecure"] = False + event = Event( type="node added", data={ "source": "controller", "event": "node added", - "node": deepcopy(zp3111_not_ready_state), + "node": node_state, + "result": {}, }, ) client.driver.receive_event(event) @@ -838,9 +846,14 @@ async def test_node_removed(hass, multisensor_6_state, client, integration): dev_reg = dr.async_get(hass) node = Node(client, deepcopy(multisensor_6_state)) device_id = f"{client.driver.controller.home_id}-{node.node_id}" - event = {"node": node} + event = { + "source": "controller", + "event": "node added", + "node": node.data, + "result": {}, + } - client.driver.controller.emit("node added", event) + client.driver.controller.receive_event(Event("node added", event)) await hass.async_block_till_done() old_device = dev_reg.async_get_device(identifiers={(DOMAIN, device_id)}) assert old_device.id @@ -907,7 +920,7 @@ async def test_replace_same_node( "index": 0, "status": 4, "ready": False, - "isSecure": "unknown", + "isSecure": False, "interviewAttempts": 1, "endpoints": [{"nodeId": node_id, "index": 0, "deviceClass": None}], "values": [], @@ -922,6 +935,7 @@ async def test_replace_same_node( "timeoutResponse": 0, }, }, + "result": {}, }, ) @@ -1022,7 +1036,7 @@ async def test_replace_different_node( "index": 0, "status": 4, "ready": False, - "isSecure": "unknown", + "isSecure": False, "interviewAttempts": 1, "endpoints": [ {"nodeId": multisensor_6.node_id, "index": 0, "deviceClass": None} @@ -1039,6 +1053,7 @@ async def test_replace_different_node( "timeoutResponse": 0, }, }, + "result": {}, }, ) diff --git a/tests/components/zwave_js/test_sensor.py b/tests/components/zwave_js/test_sensor.py index 2d120411513..c632f0fca17 100644 --- a/tests/components/zwave_js/test_sensor.py +++ b/tests/components/zwave_js/test_sensor.py @@ -220,7 +220,15 @@ async def test_node_status_sensor_not_ready( assert hass.states.get(NODE_STATUS_ENTITY).state == "alive" # Mark node as ready - event = Event("ready", {"nodeState": lock_id_lock_as_id150_state}) + event = Event( + "ready", + { + "source": "node", + "event": "ready", + "nodeId": node.node_id, + "nodeState": lock_id_lock_as_id150_state, + }, + ) node.receive_event(event) assert node.ready assert hass.states.get(NODE_STATUS_ENTITY) -- GitLab