Fix zwave_js cover bug for Window Covering CC values (#103289)

* Fix cover bug for Window Covering CC values

* update test

* Fix fixture

* Remove no-op line from test
This commit is contained in:
Raman Gupta 2023-11-03 10:36:48 -04:00 committed by GitHub
parent eadfd51dab
commit eeb88f5e07
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 459 additions and 547 deletions

View File

@ -18,7 +18,6 @@ from zwave_js_server.const.command_class.multilevel_switch import (
from zwave_js_server.const.command_class.window_covering import ( from zwave_js_server.const.command_class.window_covering import (
NO_POSITION_PROPERTY_KEYS, NO_POSITION_PROPERTY_KEYS,
NO_POSITION_SUFFIX, NO_POSITION_SUFFIX,
WINDOW_COVERING_OPEN_PROPERTY,
SlatStates, SlatStates,
) )
from zwave_js_server.model.driver import Driver from zwave_js_server.model.driver import Driver
@ -370,7 +369,7 @@ class ZWaveWindowCovering(CoverPositionMixin, CoverTiltMixin):
set_values_func( set_values_func(
value, value,
stop_value=self.get_zwave_value( stop_value=self.get_zwave_value(
WINDOW_COVERING_OPEN_PROPERTY, "levelChangeUp",
value_property_key=value.property_key, value_property_key=value.property_key,
), ),
) )

View File

@ -60,10 +60,12 @@ def extract_fixture_data(diagnostics_data: Any) -> dict:
): ):
raise ValueError("Invalid diagnostics file format") raise ValueError("Invalid diagnostics file format")
state: dict = diagnostics_data["data"]["state"] state: dict = diagnostics_data["data"]["state"]
if isinstance(state["values"], list): if not isinstance(state["values"], list):
return state values_dict: dict[str, dict] = state.pop("values")
values_dict: dict[str, dict] = state.pop("values") state["values"] = list(values_dict.values())
state["values"] = list(values_dict.values()) if not isinstance(state["endpoints"], list):
endpoints_dict: dict[str, dict] = state.pop("endpoints")
state["endpoints"] = list(endpoints_dict.values())
return state return state

View File

@ -1,5 +1,5 @@
{ {
"nodeId": 12, "nodeId": 131,
"index": 0, "index": 0,
"installerIcon": 6656, "installerIcon": 6656,
"userIcon": 6656, "userIcon": 6656,
@ -7,12 +7,13 @@
"ready": true, "ready": true,
"isListening": false, "isListening": false,
"isRouting": true, "isRouting": true,
"isSecure": true, "isSecure": false,
"manufacturerId": 647, "manufacturerId": 647,
"productId": 114, "productId": 114,
"productType": 4, "productType": 4,
"firmwareVersion": "3.12.1", "firmwareVersion": "3.12.1",
"zwavePlusVersion": 2, "zwavePlusVersion": 2,
"name": "Blind West Bed 1",
"deviceConfig": { "deviceConfig": {
"filename": "/data/db/devices/0x0287/iblindsv3.json", "filename": "/data/db/devices/0x0287/iblindsv3.json",
"isEmbedded": true, "isEmbedded": true,
@ -38,321 +39,61 @@
"associations": {}, "associations": {},
"paramInformation": { "paramInformation": {
"_map": {} "_map": {}
},
"compat": {
"removeCCs": {}
} }
}, },
"label": "iblinds V3", "label": "iblinds V3",
"interviewAttempts": 1, "interviewAttempts": 1,
"endpoints": [ "isFrequentListening": "1000ms",
{ "maxDataRate": 100000,
"nodeId": 12, "supportedDataRates": [40000, 100000],
"index": 0, "protocolVersion": 3,
"installerIcon": 6656, "supportsBeaming": true,
"userIcon": 6656, "supportsSecurity": false,
"deviceClass": { "nodeType": 1,
"basic": { "zwavePlusNodeType": 0,
"key": 4, "zwavePlusRoleType": 7,
"label": "Routing Slave" "deviceClass": {
}, "basic": {
"generic": { "key": 4,
"key": 17, "label": "Routing Slave"
"label": "Multilevel Switch" },
}, "generic": {
"specific": { "key": 17,
"key": 7, "label": "Multilevel Switch"
"label": "Motor Control Class C" },
}, "specific": {
"mandatorySupportedCCs": [32, 38, 37, 114, 134], "key": 7,
"mandatoryControlledCCs": [] "label": "Motor Control Class C"
}, },
"commandClasses": [ "mandatorySupportedCCs": [32, 38, 37, 114, 134],
{ "mandatoryControlledCCs": []
"id": 38, },
"name": "Multilevel Switch", "interviewStage": "Complete",
"version": 4, "deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0287:0x0004:0x0072:3.12.1",
"isSecure": true "statistics": {
}, "commandsTX": 95,
{ "commandsRX": 110,
"id": 37, "commandsDroppedRX": 0,
"name": "Binary Switch", "commandsDroppedTX": 0,
"version": 2, "timeoutResponse": 0,
"isSecure": true "rtt": 1295.6,
}, "lastSeen": "2023-11-02T18:41:40.552Z",
{ "rssi": -69,
"id": 114, "lwr": {
"name": "Manufacturer Specific", "protocolDataRate": 2,
"version": 2, "repeaters": [],
"isSecure": true "rssi": -71,
}, "repeaterRSSI": []
{
"id": 134,
"name": "Version",
"version": 3,
"isSecure": true
},
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": true
},
{
"id": 89,
"name": "Association Group Information",
"version": 3,
"isSecure": true
},
{
"id": 85,
"name": "Transport Service",
"version": 2,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": true
},
{
"id": 115,
"name": "Powerlevel",
"version": 1,
"isSecure": true
},
{
"id": 159,
"name": "Security 2",
"version": 1,
"isSecure": true
},
{
"id": 108,
"name": "Supervision",
"version": 1,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 5,
"isSecure": true
},
{
"id": 128,
"name": "Battery",
"version": 1,
"isSecure": true
},
{
"id": 112,
"name": "Configuration",
"version": 4,
"isSecure": true
},
{
"id": 135,
"name": "Indicator",
"version": 3,
"isSecure": true
},
{
"id": 142,
"name": "Multi Channel Association",
"version": 3,
"isSecure": true
},
{
"id": 106,
"name": "Window Covering",
"version": 1,
"isSecure": true
},
{
"id": 152,
"name": "Security",
"version": 1,
"isSecure": true
}
]
} }
], },
"highestSecurityClass": -1,
"isControllerNode": false,
"keepAwake": false,
"lastSeen": "2023-11-02T18:41:40.552Z",
"values": [ "values": [
{
"endpoint": 0,
"commandClass": 37,
"commandClassName": "Binary Switch",
"property": "currentValue",
"propertyName": "currentValue",
"ccVersion": 2,
"metadata": {
"type": "boolean",
"readable": true,
"writeable": false,
"label": "Current value",
"stateful": true,
"secret": false
},
"value": false
},
{
"endpoint": 0,
"commandClass": 37,
"commandClassName": "Binary Switch",
"property": "targetValue",
"propertyName": "targetValue",
"ccVersion": 2,
"metadata": {
"type": "boolean",
"readable": true,
"writeable": true,
"label": "Target value",
"valueChangeOptions": ["transitionDuration"],
"stateful": true,
"secret": false
},
"value": false
},
{
"endpoint": 0,
"commandClass": 37,
"commandClassName": "Binary Switch",
"property": "duration",
"propertyName": "duration",
"ccVersion": 2,
"metadata": {
"type": "duration",
"readable": true,
"writeable": false,
"label": "Remaining duration",
"stateful": true,
"secret": false
},
"value": {
"value": 0,
"unit": "seconds"
}
},
{
"endpoint": 0,
"commandClass": 38,
"commandClassName": "Multilevel Switch",
"property": "targetValue",
"propertyName": "targetValue",
"ccVersion": 4,
"metadata": {
"type": "number",
"readable": true,
"writeable": true,
"label": "Target value",
"valueChangeOptions": ["transitionDuration"],
"min": 0,
"max": 99,
"stateful": true,
"secret": false
},
"value": 0
},
{
"endpoint": 0,
"commandClass": 38,
"commandClassName": "Multilevel Switch",
"property": "duration",
"propertyName": "duration",
"ccVersion": 4,
"metadata": {
"type": "duration",
"readable": true,
"writeable": false,
"label": "Remaining duration",
"stateful": true,
"secret": false
},
"value": {
"value": 0,
"unit": "seconds"
}
},
{
"endpoint": 0,
"commandClass": 38,
"commandClassName": "Multilevel Switch",
"property": "currentValue",
"propertyName": "currentValue",
"ccVersion": 4,
"metadata": {
"type": "number",
"readable": true,
"writeable": false,
"label": "Current value",
"min": 0,
"max": 99,
"stateful": true,
"secret": false
},
"value": 0
},
{
"endpoint": 0,
"commandClass": 38,
"commandClassName": "Multilevel Switch",
"property": "Up",
"propertyName": "Up",
"ccVersion": 4,
"metadata": {
"type": "boolean",
"readable": false,
"writeable": true,
"label": "Perform a level change (Up)",
"ccSpecific": {
"switchType": 2
},
"valueChangeOptions": ["transitionDuration"],
"stateful": true,
"secret": false
}
},
{
"endpoint": 0,
"commandClass": 38,
"commandClassName": "Multilevel Switch",
"property": "Down",
"propertyName": "Down",
"ccVersion": 4,
"metadata": {
"type": "boolean",
"readable": false,
"writeable": true,
"label": "Perform a level change (Down)",
"ccSpecific": {
"switchType": 2
},
"valueChangeOptions": ["transitionDuration"],
"stateful": true,
"secret": false
}
},
{
"endpoint": 0,
"commandClass": 38,
"commandClassName": "Multilevel Switch",
"property": "restorePrevious",
"propertyName": "restorePrevious",
"ccVersion": 4,
"metadata": {
"type": "boolean",
"readable": false,
"writeable": true,
"label": "Restore previous value",
"stateful": true,
"secret": false
}
},
{ {
"endpoint": 0, "endpoint": 0,
"commandClass": 106, "commandClass": 106,
@ -361,7 +102,7 @@
"propertyKey": 23, "propertyKey": 23,
"propertyName": "currentValue", "propertyName": "currentValue",
"propertyKeyName": "Horizontal Slats Angle", "propertyKeyName": "Horizontal Slats Angle",
"ccVersion": 0, "ccVersion": 1,
"metadata": { "metadata": {
"type": "number", "type": "number",
"readable": true, "readable": true,
@ -373,9 +114,9 @@
"min": 0, "min": 0,
"max": 99, "max": 99,
"states": { "states": {
"0": "Closed (up)", "0": "Closed (up inside)",
"50": "Open", "50": "Open",
"99": "Closed (down)" "99": "Closed (down inside)"
}, },
"stateful": true, "stateful": true,
"secret": false "secret": false
@ -390,7 +131,7 @@
"propertyKey": 23, "propertyKey": 23,
"propertyName": "targetValue", "propertyName": "targetValue",
"propertyKeyName": "Horizontal Slats Angle", "propertyKeyName": "Horizontal Slats Angle",
"ccVersion": 0, "ccVersion": 1,
"metadata": { "metadata": {
"type": "number", "type": "number",
"readable": true, "readable": true,
@ -403,14 +144,14 @@
"min": 0, "min": 0,
"max": 99, "max": 99,
"states": { "states": {
"0": "Closed (up)", "0": "Closed (up inside)",
"50": "Open", "50": "Open",
"99": "Closed (down)" "99": "Closed (down inside)"
}, },
"stateful": true, "stateful": true,
"secret": false "secret": false
}, },
"value": 99 "value": 0
}, },
{ {
"endpoint": 0, "endpoint": 0,
@ -420,7 +161,7 @@
"propertyKey": 23, "propertyKey": 23,
"propertyName": "duration", "propertyName": "duration",
"propertyKeyName": "Horizontal Slats Angle", "propertyKeyName": "Horizontal Slats Angle",
"ccVersion": 0, "ccVersion": 1,
"metadata": { "metadata": {
"type": "duration", "type": "duration",
"readable": true, "readable": true,
@ -441,44 +182,24 @@
"endpoint": 0, "endpoint": 0,
"commandClass": 106, "commandClass": 106,
"commandClassName": "Window Covering", "commandClassName": "Window Covering",
"property": "open", "property": "levelChangeUp",
"propertyKey": 23, "propertyKey": 23,
"propertyName": "open", "propertyName": "levelChangeUp",
"propertyKeyName": "Horizontal Slats Angle", "propertyKeyName": "Horizontal Slats Angle",
"ccVersion": 0, "ccVersion": 1,
"metadata": { "metadata": {
"type": "boolean", "type": "boolean",
"readable": false, "readable": false,
"writeable": true, "writeable": true,
"label": "Open - Horizontal Slats Angle", "label": "Change tilt (down inside) - Horizontal Slats Angle",
"ccSpecific": { "ccSpecific": {
"parameter": 23 "parameter": 23
}, },
"valueChangeOptions": ["transitionDuration"], "valueChangeOptions": ["transitionDuration"],
"stateful": true, "states": {
"secret": false "true": "Start",
}, "false": "Stop"
"nodeId": 12,
"value": true
},
{
"endpoint": 0,
"commandClass": 106,
"commandClassName": "Window Covering",
"property": "close0",
"propertyKey": 23,
"propertyName": "close0",
"propertyKeyName": "Horizontal Slats Angle",
"ccVersion": 0,
"metadata": {
"type": "boolean",
"readable": false,
"writeable": true,
"label": "Close Up - Horizontal Slats Angle",
"ccSpecific": {
"parameter": 23
}, },
"valueChangeOptions": ["transitionDuration"],
"stateful": true, "stateful": true,
"secret": false "secret": false
} }
@ -487,25 +208,27 @@
"endpoint": 0, "endpoint": 0,
"commandClass": 106, "commandClass": 106,
"commandClassName": "Window Covering", "commandClassName": "Window Covering",
"property": "close99", "property": "levelChangeDown",
"propertyKey": 23, "propertyKey": 23,
"propertyName": "close99", "propertyName": "levelChangeDown",
"propertyKeyName": "Horizontal Slats Angle", "propertyKeyName": "Horizontal Slats Angle",
"ccVersion": 0, "ccVersion": 1,
"metadata": { "metadata": {
"type": "boolean", "type": "boolean",
"readable": false, "readable": false,
"writeable": true, "writeable": true,
"label": "Close Down - Horizontal Slats Angle", "label": "Change tilt (up inside) - Horizontal Slats Angle",
"ccSpecific": { "ccSpecific": {
"parameter": 23 "parameter": 23
}, },
"valueChangeOptions": ["transitionDuration"], "valueChangeOptions": ["transitionDuration"],
"states": {
"true": "Start",
"false": "Stop"
},
"stateful": true, "stateful": true,
"secret": false "secret": false
}, }
"nodeId": 12,
"value": true
}, },
{ {
"endpoint": 0, "endpoint": 0,
@ -604,7 +327,7 @@
"allowManualEntry": true, "allowManualEntry": true,
"isFromConfig": true "isFromConfig": true
}, },
"value": 50 "value": 45
}, },
{ {
"endpoint": 0, "endpoint": 0,
@ -656,6 +379,32 @@
}, },
"value": 0 "value": 0
}, },
{
"endpoint": 0,
"commandClass": 112,
"commandClassName": "Configuration",
"property": 11,
"propertyName": "MC",
"ccVersion": 4,
"metadata": {
"type": "number",
"readable": true,
"writeable": true,
"description": "MC",
"label": "MC",
"default": 1,
"min": 0,
"max": 1,
"valueSize": 1,
"format": 0,
"noBulkSupport": true,
"isAdvanced": false,
"requiresReInclusion": false,
"allowManualEntry": true,
"isFromConfig": false
},
"value": 1
},
{ {
"endpoint": 0, "endpoint": 0,
"commandClass": 112, "commandClass": 112,
@ -721,7 +470,9 @@
"format": 0, "format": 0,
"allowManualEntry": true, "allowManualEntry": true,
"isFromConfig": true "isFromConfig": true
} },
"nodeId": 131,
"value": 99
}, },
{ {
"endpoint": 0, "endpoint": 0,
@ -1169,7 +920,9 @@
"max": 255, "max": 255,
"stateful": true, "stateful": true,
"secret": false "secret": false
} },
"nodeId": 131,
"value": 47
}, },
{ {
"endpoint": 0, "endpoint": 0,
@ -1183,54 +936,209 @@
"readable": false, "readable": false,
"writeable": true, "writeable": true,
"label": "Identify", "label": "Identify",
"states": {
"true": "Identify"
},
"stateful": true, "stateful": true,
"secret": false "secret": false
} }
},
{
"endpoint": 0,
"commandClass": 135,
"commandClassName": "Indicator",
"property": "timeout",
"propertyName": "timeout",
"ccVersion": 3,
"metadata": {
"type": "string",
"readable": true,
"writeable": true,
"label": "Timeout",
"stateful": true,
"secret": false
}
},
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "targetValue",
"endpoint": 0,
"metadata": {
"type": "number",
"readable": true,
"writeable": true,
"label": "Target value",
"valueChangeOptions": ["transitionDuration"],
"min": 0,
"max": 99,
"stateful": true,
"secret": false
},
"propertyName": "targetValue",
"nodeId": 131,
"value": 45
},
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "duration",
"endpoint": 0,
"metadata": {
"type": "duration",
"readable": true,
"writeable": false,
"label": "Remaining duration",
"stateful": true,
"secret": false
},
"propertyName": "duration",
"nodeId": 131,
"value": {
"value": 0,
"unit": "seconds"
}
},
{
"commandClassName": "Multilevel Switch",
"commandClass": 38,
"property": "currentValue",
"endpoint": 0,
"metadata": {
"type": "number",
"readable": true,
"writeable": false,
"label": "Current value",
"min": 0,
"max": 99,
"stateful": true,
"secret": false
},
"propertyName": "currentValue",
"nodeId": 131,
"value": 45
} }
], ],
"isFrequentListening": "1000ms", "endpoints": [
"maxDataRate": 100000, {
"supportedDataRates": [40000, 100000], "nodeId": 131,
"protocolVersion": 3, "index": 0,
"supportsBeaming": true, "installerIcon": 6656,
"supportsSecurity": false, "userIcon": 6656,
"nodeType": 1, "deviceClass": {
"zwavePlusNodeType": 0, "basic": {
"zwavePlusRoleType": 7, "key": 4,
"deviceClass": { "label": "Routing Slave"
"basic": { },
"key": 4, "generic": {
"label": "Routing Slave" "key": 17,
}, "label": "Multilevel Switch"
"generic": { },
"key": 17, "specific": {
"label": "Multilevel Switch" "key": 7,
}, "label": "Motor Control Class C"
"specific": { },
"key": 7, "mandatorySupportedCCs": [32, 38, 37, 114, 134],
"label": "Motor Control Class C" "mandatoryControlledCCs": []
}, },
"mandatorySupportedCCs": [32, 38, 37, 114, 134], "commandClasses": [
"mandatoryControlledCCs": [] {
}, "id": 114,
"interviewStage": "Complete", "name": "Manufacturer Specific",
"deviceDatabaseUrl": "https://devices.zwave-js.io/?jumpTo=0x0287:0x0004:0x0072:3.12.1", "version": 2,
"statistics": { "isSecure": false
"commandsTX": 109, },
"commandsRX": 101, {
"commandsDroppedRX": 2, "id": 134,
"commandsDroppedTX": 0, "name": "Version",
"timeoutResponse": 8, "version": 3,
"rtt": 1217.2, "isSecure": false
"rssi": -43, },
"lwr": { {
"protocolDataRate": 2, "id": 94,
"repeaters": [], "name": "Z-Wave Plus Info",
"rssi": -45, "version": 2,
"repeaterRSSI": [] "isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 2,
"isSecure": false
},
{
"id": 89,
"name": "Association Group Information",
"version": 3,
"isSecure": false
},
{
"id": 85,
"name": "Transport Service",
"version": 2,
"isSecure": false
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": false
},
{
"id": 115,
"name": "Powerlevel",
"version": 1,
"isSecure": false
},
{
"id": 159,
"name": "Security 2",
"version": 1,
"isSecure": true
},
{
"id": 108,
"name": "Supervision",
"version": 1,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 5,
"isSecure": false
},
{
"id": 128,
"name": "Battery",
"version": 1,
"isSecure": false
},
{
"id": 112,
"name": "Configuration",
"version": 4,
"isSecure": false
},
{
"id": 135,
"name": "Indicator",
"version": 3,
"isSecure": false
},
{
"id": 142,
"name": "Multi Channel Association",
"version": 3,
"isSecure": false
},
{
"id": 106,
"name": "Window Covering",
"version": 1,
"isSecure": false
}
]
} }
}, ]
"highestSecurityClass": 1,
"isControllerNode": false,
"keepAwake": false
} }

View File

@ -88,140 +88,6 @@
"isControllerNode": false, "isControllerNode": false,
"keepAwake": false, "keepAwake": false,
"lastSeen": "2023-08-09T13:26:05.031Z", "lastSeen": "2023-08-09T13:26:05.031Z",
"endpoints": {
"0": {
"nodeId": 23,
"index": 0,
"installerIcon": 3327,
"userIcon": 3327,
"deviceClass": {
"basic": {
"key": 4,
"label": "Routing Slave"
},
"generic": {
"key": 7,
"label": "Notification Sensor"
},
"specific": {
"key": 1,
"label": "Notification Sensor"
},
"mandatorySupportedCCs": [],
"mandatoryControlledCCs": []
},
"commandClasses": [
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 3,
"isSecure": true
},
{
"id": 142,
"name": "Multi Channel Association",
"version": 4,
"isSecure": true
},
{
"id": 89,
"name": "Association Group Information",
"version": 3,
"isSecure": true
},
{
"id": 49,
"name": "Multilevel Sensor",
"version": 11,
"isSecure": true
},
{
"id": 85,
"name": "Transport Service",
"version": 2,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 3,
"isSecure": true
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": true
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": true
},
{
"id": 115,
"name": "Powerlevel",
"version": 1,
"isSecure": true
},
{
"id": 128,
"name": "Battery",
"version": 3,
"isSecure": true
},
{
"id": 159,
"name": "Security 2",
"version": 1,
"isSecure": true
},
{
"id": 113,
"name": "Notification",
"version": 8,
"isSecure": true
},
{
"id": 135,
"name": "Indicator",
"version": 4,
"isSecure": true
},
{
"id": 112,
"name": "Configuration",
"version": 4,
"isSecure": true
},
{
"id": 132,
"name": "Wake Up",
"version": 1,
"isSecure": true
},
{
"id": 108,
"name": "Supervision",
"version": 2,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 7,
"isSecure": true
}
]
}
},
"values": [ "values": [
{ {
"endpoint": 0, "endpoint": 0,
@ -1326,5 +1192,139 @@
}, },
"value": 0 "value": 0
} }
],
"endpoints": [
{
"nodeId": 23,
"index": 0,
"installerIcon": 3327,
"userIcon": 3327,
"deviceClass": {
"basic": {
"key": 4,
"label": "Routing Slave"
},
"generic": {
"key": 7,
"label": "Notification Sensor"
},
"specific": {
"key": 1,
"label": "Notification Sensor"
},
"mandatorySupportedCCs": [],
"mandatoryControlledCCs": []
},
"commandClasses": [
{
"id": 94,
"name": "Z-Wave Plus Info",
"version": 2,
"isSecure": false
},
{
"id": 133,
"name": "Association",
"version": 3,
"isSecure": true
},
{
"id": 142,
"name": "Multi Channel Association",
"version": 4,
"isSecure": true
},
{
"id": 89,
"name": "Association Group Information",
"version": 3,
"isSecure": true
},
{
"id": 49,
"name": "Multilevel Sensor",
"version": 11,
"isSecure": true
},
{
"id": 85,
"name": "Transport Service",
"version": 2,
"isSecure": false
},
{
"id": 134,
"name": "Version",
"version": 3,
"isSecure": true
},
{
"id": 114,
"name": "Manufacturer Specific",
"version": 2,
"isSecure": true
},
{
"id": 90,
"name": "Device Reset Locally",
"version": 1,
"isSecure": true
},
{
"id": 115,
"name": "Powerlevel",
"version": 1,
"isSecure": true
},
{
"id": 128,
"name": "Battery",
"version": 3,
"isSecure": true
},
{
"id": 159,
"name": "Security 2",
"version": 1,
"isSecure": true
},
{
"id": 113,
"name": "Notification",
"version": 8,
"isSecure": true
},
{
"id": 135,
"name": "Indicator",
"version": 4,
"isSecure": true
},
{
"id": 112,
"name": "Configuration",
"version": 4,
"isSecure": true
},
{
"id": 132,
"name": "Wake Up",
"version": 1,
"isSecure": true
},
{
"id": 108,
"name": "Supervision",
"version": 2,
"isSecure": false
},
{
"id": 122,
"name": "Firmware Update Meta Data",
"version": 7,
"isSecure": true
}
]
}
] ]
} }

View File

@ -36,6 +36,10 @@ def test_fixture_functions() -> None:
old_diagnostics_format_data["data"]["state"]["values"] = list( old_diagnostics_format_data["data"]["state"]["values"] = list(
old_diagnostics_format_data["data"]["state"]["values"].values() old_diagnostics_format_data["data"]["state"]["values"].values()
) )
old_diagnostics_format_data["data"]["state"]["endpoints"] = list(
old_diagnostics_format_data["data"]["state"]["endpoints"].values()
)
assert ( assert (
extract_fixture_data(old_diagnostics_format_data) extract_fixture_data(old_diagnostics_format_data)
== old_diagnostics_format_data["data"]["state"] == old_diagnostics_format_data["data"]["state"]
@ -54,7 +58,6 @@ def test_load_file() -> None:
def test_main(capfd: pytest.CaptureFixture[str]) -> None: def test_main(capfd: pytest.CaptureFixture[str]) -> None:
"""Test main function.""" """Test main function."""
Path(__file__).parents[1] / "fixtures" / "zooz_zse44_state.json"
fixture_str = load_fixture("zwave_js/zooz_zse44_state.json") fixture_str = load_fixture("zwave_js/zooz_zse44_state.json")
fixture_dict = json.loads(fixture_str) fixture_dict = json.loads(fixture_str)

View File

@ -829,7 +829,7 @@ async def test_iblinds_v3_cover(
hass: HomeAssistant, client, iblinds_v3, integration hass: HomeAssistant, client, iblinds_v3, integration
) -> None: ) -> None:
"""Test iBlinds v3 cover which uses Window Covering CC.""" """Test iBlinds v3 cover which uses Window Covering CC."""
entity_id = "cover.window_blind_controller_horizontal_slats_angle" entity_id = "cover.blind_west_bed_1_horizontal_slats_angle"
state = hass.states.get(entity_id) state = hass.states.get(entity_id)
assert state assert state
# This device has no state because there is no position value # This device has no state because there is no position value
@ -854,7 +854,7 @@ async def test_iblinds_v3_cover(
assert len(client.async_send_command.call_args_list) == 1 assert len(client.async_send_command.call_args_list) == 1
args = client.async_send_command.call_args[0][0] args = client.async_send_command.call_args[0][0]
assert args["command"] == "node.set_value" assert args["command"] == "node.set_value"
assert args["nodeId"] == 12 assert args["nodeId"] == 131
assert args["valueId"] == { assert args["valueId"] == {
"endpoint": 0, "endpoint": 0,
"commandClass": 106, "commandClass": 106,
@ -875,7 +875,7 @@ async def test_iblinds_v3_cover(
assert len(client.async_send_command.call_args_list) == 1 assert len(client.async_send_command.call_args_list) == 1
args = client.async_send_command.call_args[0][0] args = client.async_send_command.call_args[0][0]
assert args["command"] == "node.set_value" assert args["command"] == "node.set_value"
assert args["nodeId"] == 12 assert args["nodeId"] == 131
assert args["valueId"] == { assert args["valueId"] == {
"endpoint": 0, "endpoint": 0,
"commandClass": 106, "commandClass": 106,
@ -896,7 +896,7 @@ async def test_iblinds_v3_cover(
assert len(client.async_send_command.call_args_list) == 1 assert len(client.async_send_command.call_args_list) == 1
args = client.async_send_command.call_args[0][0] args = client.async_send_command.call_args[0][0]
assert args["command"] == "node.set_value" assert args["command"] == "node.set_value"
assert args["nodeId"] == 12 assert args["nodeId"] == 131
assert args["valueId"] == { assert args["valueId"] == {
"endpoint": 0, "endpoint": 0,
"commandClass": 106, "commandClass": 106,
@ -917,11 +917,11 @@ async def test_iblinds_v3_cover(
assert len(client.async_send_command.call_args_list) == 1 assert len(client.async_send_command.call_args_list) == 1
args = client.async_send_command.call_args[0][0] args = client.async_send_command.call_args[0][0]
assert args["command"] == "node.set_value" assert args["command"] == "node.set_value"
assert args["nodeId"] == 12 assert args["nodeId"] == 131
assert args["valueId"] == { assert args["valueId"] == {
"endpoint": 0, "endpoint": 0,
"commandClass": 106, "commandClass": 106,
"property": "open", "property": "levelChangeUp",
"propertyKey": 23, "propertyKey": 23,
} }
assert args["value"] is False assert args["value"] is False