mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 13:17:32 +00:00
Test zwave_js GE 12730 fan controller device-specific discovery (#46840)
* Add test for GE 12730 fan controller device-specific discovery * Adjust Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
This commit is contained in:
parent
e70d896e1b
commit
fb32c2e3a8
@ -170,6 +170,12 @@ def iblinds_v2_state_fixture():
|
||||
return json.loads(load_fixture("zwave_js/cover_iblinds_v2_state.json"))
|
||||
|
||||
|
||||
@pytest.fixture(name="ge_12730_state", scope="session")
|
||||
def ge_12730_state_fixture():
|
||||
"""Load the GE 12730 node state fixture data."""
|
||||
return json.loads(load_fixture("zwave_js/fan_ge_12730_state.json"))
|
||||
|
||||
|
||||
@pytest.fixture(name="client")
|
||||
def mock_client_fixture(controller_state, version_state):
|
||||
"""Mock a client."""
|
||||
@ -373,3 +379,11 @@ def iblinds_cover_fixture(client, iblinds_v2_state):
|
||||
node = Node(client, iblinds_v2_state)
|
||||
client.driver.controller.nodes[node.node_id] = node
|
||||
return node
|
||||
|
||||
|
||||
@pytest.fixture(name="ge_12730")
|
||||
def ge_12730_fixture(client, ge_12730_state):
|
||||
"""Mock a GE 12730 fan controller node."""
|
||||
node = Node(client, ge_12730_state)
|
||||
client.driver.controller.nodes[node.node_id] = node
|
||||
return node
|
||||
|
@ -3,7 +3,6 @@
|
||||
|
||||
async def test_iblinds_v2(hass, client, iblinds_v2, integration):
|
||||
"""Test that an iBlinds v2.0 multilevel switch value is discovered as a cover."""
|
||||
|
||||
node = iblinds_v2
|
||||
assert node.device_class.specific == "Unused"
|
||||
|
||||
@ -12,3 +11,15 @@ async def test_iblinds_v2(hass, client, iblinds_v2, integration):
|
||||
|
||||
state = hass.states.get("cover.window_blind_controller")
|
||||
assert state
|
||||
|
||||
|
||||
async def test_ge_12730(hass, client, ge_12730, integration):
|
||||
"""Test GE 12730 Fan Controller v2.0 multilevel switch is discovered as a fan."""
|
||||
node = ge_12730
|
||||
assert node.device_class.specific == "Multilevel Power Switch"
|
||||
|
||||
state = hass.states.get("light.in_wall_smart_fan_control")
|
||||
assert not state
|
||||
|
||||
state = hass.states.get("fan.in_wall_smart_fan_control")
|
||||
assert state
|
||||
|
434
tests/fixtures/zwave_js/fan_ge_12730_state.json
vendored
Normal file
434
tests/fixtures/zwave_js/fan_ge_12730_state.json
vendored
Normal file
@ -0,0 +1,434 @@
|
||||
{
|
||||
"nodeId": 24,
|
||||
"index": 0,
|
||||
"status": 4,
|
||||
"ready": true,
|
||||
"deviceClass": {
|
||||
"basic": "Routing Slave",
|
||||
"generic": "Multilevel Switch",
|
||||
"specific": "Multilevel Power Switch",
|
||||
"mandatorySupportedCCs": [
|
||||
"Basic",
|
||||
"Multilevel Switch",
|
||||
"All Switch"
|
||||
],
|
||||
"mandatoryControlCCs": []
|
||||
},
|
||||
"isListening": true,
|
||||
"isFrequentListening": false,
|
||||
"isRouting": true,
|
||||
"maxBaudRate": 40000,
|
||||
"isSecure": false,
|
||||
"version": 4,
|
||||
"isBeaming": true,
|
||||
"manufacturerId": 99,
|
||||
"productId": 12340,
|
||||
"productType": 18756,
|
||||
"firmwareVersion": "3.10",
|
||||
"deviceConfig": {
|
||||
"manufacturerId": 99,
|
||||
"manufacturer": "GE/Jasco",
|
||||
"label": "12730 / ZW4002",
|
||||
"description": "In-Wall Smart Fan Control",
|
||||
"devices": [
|
||||
{
|
||||
"productType": "0x4944",
|
||||
"productId": "0x3034"
|
||||
}
|
||||
],
|
||||
"firmwareVersion": {
|
||||
"min": "0.0",
|
||||
"max": "255.255"
|
||||
},
|
||||
"paramInformation": {
|
||||
"_map": {}
|
||||
}
|
||||
},
|
||||
"label": "12730 / ZW4002",
|
||||
"neighbors": [
|
||||
1,
|
||||
12
|
||||
],
|
||||
"interviewAttempts": 1,
|
||||
"interviewStage": 7,
|
||||
"endpoints": [
|
||||
{
|
||||
"nodeId": 24,
|
||||
"index": 0
|
||||
}
|
||||
],
|
||||
"values": [
|
||||
{
|
||||
"endpoint": 0,
|
||||
"commandClass": 38,
|
||||
"commandClassName": "Multilevel Switch",
|
||||
"property": "targetValue",
|
||||
"propertyName": "targetValue",
|
||||
"ccVersion": 1,
|
||||
"metadata": {
|
||||
"type": "number",
|
||||
"readable": true,
|
||||
"writeable": true,
|
||||
"min": 0,
|
||||
"max": 99,
|
||||
"label": "Target value"
|
||||
},
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"endpoint": 0,
|
||||
"commandClass": 38,
|
||||
"commandClassName": "Multilevel Switch",
|
||||
"property": "duration",
|
||||
"propertyName": "duration",
|
||||
"ccVersion": 1,
|
||||
"metadata": {
|
||||
"type": "duration",
|
||||
"readable": true,
|
||||
"writeable": true,
|
||||
"label": "Transition duration"
|
||||
}
|
||||
},
|
||||
{
|
||||
"endpoint": 0,
|
||||
"commandClass": 38,
|
||||
"commandClassName": "Multilevel Switch",
|
||||
"property": "currentValue",
|
||||
"propertyName": "currentValue",
|
||||
"ccVersion": 1,
|
||||
"metadata": {
|
||||
"type": "number",
|
||||
"readable": true,
|
||||
"writeable": false,
|
||||
"min": 0,
|
||||
"max": 99,
|
||||
"label": "Current value"
|
||||
},
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"endpoint": 0,
|
||||
"commandClass": 38,
|
||||
"commandClassName": "Multilevel Switch",
|
||||
"property": "Up",
|
||||
"propertyName": "Up",
|
||||
"ccVersion": 1,
|
||||
"metadata": {
|
||||
"type": "boolean",
|
||||
"readable": true,
|
||||
"writeable": true,
|
||||
"label": "Perform a level change (Up)",
|
||||
"ccSpecific": {
|
||||
"switchType": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"endpoint": 0,
|
||||
"commandClass": 38,
|
||||
"commandClassName": "Multilevel Switch",
|
||||
"property": "Down",
|
||||
"propertyName": "Down",
|
||||
"ccVersion": 1,
|
||||
"metadata": {
|
||||
"type": "boolean",
|
||||
"readable": true,
|
||||
"writeable": true,
|
||||
"label": "Perform a level change (Down)",
|
||||
"ccSpecific": {
|
||||
"switchType": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"endpoint": 0,
|
||||
"commandClass": 112,
|
||||
"commandClassName": "Configuration",
|
||||
"property": 3,
|
||||
"propertyName": "LED Light",
|
||||
"ccVersion": 1,
|
||||
"metadata": {
|
||||
"type": "number",
|
||||
"readable": true,
|
||||
"writeable": true,
|
||||
"valueSize": 1,
|
||||
"min": 0,
|
||||
"max": 2,
|
||||
"default": 0,
|
||||
"format": 0,
|
||||
"allowManualEntry": false,
|
||||
"states": {
|
||||
"0": "LED on when light off",
|
||||
"1": "LED on when light on",
|
||||
"2": "LED always off"
|
||||
},
|
||||
"label": "LED Light",
|
||||
"description": "Sets when the LED on the switch is lit.",
|
||||
"isFromConfig": true
|
||||
},
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"endpoint": 0,
|
||||
"commandClass": 112,
|
||||
"commandClassName": "Configuration",
|
||||
"property": 4,
|
||||
"propertyName": "Invert Switch",
|
||||
"ccVersion": 1,
|
||||
"metadata": {
|
||||
"type": "number",
|
||||
"readable": true,
|
||||
"writeable": true,
|
||||
"valueSize": 1,
|
||||
"min": 0,
|
||||
"max": 1,
|
||||
"default": 0,
|
||||
"format": 0,
|
||||
"allowManualEntry": false,
|
||||
"states": {
|
||||
"0": "No",
|
||||
"1": "Yes"
|
||||
},
|
||||
"label": "Invert Switch",
|
||||
"isFromConfig": true
|
||||
},
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"endpoint": 0,
|
||||
"commandClass": 112,
|
||||
"commandClassName": "Configuration",
|
||||
"property": 7,
|
||||
"propertyName": "Dim Rate Steps (Z-Wave Command)",
|
||||
"ccVersion": 1,
|
||||
"metadata": {
|
||||
"type": "number",
|
||||
"readable": true,
|
||||
"writeable": true,
|
||||
"valueSize": 1,
|
||||
"min": 0,
|
||||
"max": 99,
|
||||
"default": 1,
|
||||
"format": 1,
|
||||
"allowManualEntry": true,
|
||||
"label": "Dim Rate Steps (Z-Wave Command)",
|
||||
"description": "Number of steps or levels",
|
||||
"isFromConfig": true
|
||||
},
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"endpoint": 0,
|
||||
"commandClass": 112,
|
||||
"commandClassName": "Configuration",
|
||||
"property": 8,
|
||||
"propertyName": "Dim Rate Timing (Z-Wave)",
|
||||
"ccVersion": 1,
|
||||
"metadata": {
|
||||
"type": "number",
|
||||
"readable": true,
|
||||
"writeable": true,
|
||||
"valueSize": 2,
|
||||
"min": 1,
|
||||
"max": 255,
|
||||
"default": 3,
|
||||
"format": 1,
|
||||
"allowManualEntry": true,
|
||||
"label": "Dim Rate Timing (Z-Wave)",
|
||||
"description": "Timing of steps or levels",
|
||||
"isFromConfig": true
|
||||
},
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"endpoint": 0,
|
||||
"commandClass": 112,
|
||||
"commandClassName": "Configuration",
|
||||
"property": 9,
|
||||
"propertyName": "Dim Rate Steps (Manual)",
|
||||
"ccVersion": 1,
|
||||
"metadata": {
|
||||
"type": "number",
|
||||
"readable": true,
|
||||
"writeable": true,
|
||||
"valueSize": 1,
|
||||
"min": 1,
|
||||
"max": 99,
|
||||
"default": 1,
|
||||
"format": 1,
|
||||
"allowManualEntry": true,
|
||||
"label": "Dim Rate Steps (Manual)",
|
||||
"description": "Number of steps or levels",
|
||||
"isFromConfig": true
|
||||
},
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"endpoint": 0,
|
||||
"commandClass": 112,
|
||||
"commandClassName": "Configuration",
|
||||
"property": 10,
|
||||
"propertyName": "Dim Rate Timing (Manual)",
|
||||
"ccVersion": 1,
|
||||
"metadata": {
|
||||
"type": "number",
|
||||
"readable": true,
|
||||
"writeable": true,
|
||||
"valueSize": 2,
|
||||
"min": 1,
|
||||
"max": 255,
|
||||
"default": 3,
|
||||
"format": 1,
|
||||
"allowManualEntry": true,
|
||||
"label": "Dim Rate Timing (Manual)",
|
||||
"description": "Timing of steps",
|
||||
"isFromConfig": true
|
||||
},
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"endpoint": 0,
|
||||
"commandClass": 112,
|
||||
"commandClassName": "Configuration",
|
||||
"property": 11,
|
||||
"propertyName": "Dim Rate Steps (All-On/All-Off)",
|
||||
"ccVersion": 1,
|
||||
"metadata": {
|
||||
"type": "number",
|
||||
"readable": true,
|
||||
"writeable": true,
|
||||
"valueSize": 1,
|
||||
"min": 1,
|
||||
"max": 99,
|
||||
"default": 1,
|
||||
"format": 1,
|
||||
"allowManualEntry": true,
|
||||
"label": "Dim Rate Steps (All-On/All-Off)",
|
||||
"description": "Number of steps or levels",
|
||||
"isFromConfig": true
|
||||
},
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"endpoint": 0,
|
||||
"commandClass": 112,
|
||||
"commandClassName": "Configuration",
|
||||
"property": 12,
|
||||
"propertyName": "Dim Rate Timing (All-On/All-Off)",
|
||||
"ccVersion": 1,
|
||||
"metadata": {
|
||||
"type": "number",
|
||||
"readable": true,
|
||||
"writeable": true,
|
||||
"valueSize": 2,
|
||||
"min": 1,
|
||||
"max": 255,
|
||||
"default": 3,
|
||||
"format": 1,
|
||||
"allowManualEntry": true,
|
||||
"label": "Dim Rate Timing (All-On/All-Off)",
|
||||
"description": "Timing of steps or levels",
|
||||
"isFromConfig": true
|
||||
},
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"endpoint": 0,
|
||||
"commandClass": 114,
|
||||
"commandClassName": "Manufacturer Specific",
|
||||
"property": "manufacturerId",
|
||||
"propertyName": "manufacturerId",
|
||||
"ccVersion": 1,
|
||||
"metadata": {
|
||||
"type": "number",
|
||||
"readable": true,
|
||||
"writeable": false,
|
||||
"min": 0,
|
||||
"max": 65535,
|
||||
"label": "Manufacturer ID"
|
||||
},
|
||||
"value": 99
|
||||
},
|
||||
{
|
||||
"endpoint": 0,
|
||||
"commandClass": 114,
|
||||
"commandClassName": "Manufacturer Specific",
|
||||
"property": "productType",
|
||||
"propertyName": "productType",
|
||||
"ccVersion": 1,
|
||||
"metadata": {
|
||||
"type": "number",
|
||||
"readable": true,
|
||||
"writeable": false,
|
||||
"min": 0,
|
||||
"max": 65535,
|
||||
"label": "Product type"
|
||||
},
|
||||
"value": 18756
|
||||
},
|
||||
{
|
||||
"endpoint": 0,
|
||||
"commandClass": 114,
|
||||
"commandClassName": "Manufacturer Specific",
|
||||
"property": "productId",
|
||||
"propertyName": "productId",
|
||||
"ccVersion": 1,
|
||||
"metadata": {
|
||||
"type": "number",
|
||||
"readable": true,
|
||||
"writeable": false,
|
||||
"min": 0,
|
||||
"max": 65535,
|
||||
"label": "Product ID"
|
||||
},
|
||||
"value": 12340
|
||||
},
|
||||
{
|
||||
"endpoint": 0,
|
||||
"commandClass": 134,
|
||||
"commandClassName": "Version",
|
||||
"property": "libraryType",
|
||||
"propertyName": "libraryType",
|
||||
"ccVersion": 1,
|
||||
"metadata": {
|
||||
"type": "any",
|
||||
"readable": true,
|
||||
"writeable": false,
|
||||
"label": "Library type"
|
||||
},
|
||||
"value": 6
|
||||
},
|
||||
{
|
||||
"endpoint": 0,
|
||||
"commandClass": 134,
|
||||
"commandClassName": "Version",
|
||||
"property": "protocolVersion",
|
||||
"propertyName": "protocolVersion",
|
||||
"ccVersion": 1,
|
||||
"metadata": {
|
||||
"type": "any",
|
||||
"readable": true,
|
||||
"writeable": false,
|
||||
"label": "Z-Wave protocol version"
|
||||
},
|
||||
"value": "3.67"
|
||||
},
|
||||
{
|
||||
"endpoint": 0,
|
||||
"commandClass": 134,
|
||||
"commandClassName": "Version",
|
||||
"property": "firmwareVersions",
|
||||
"propertyName": "firmwareVersions",
|
||||
"ccVersion": 1,
|
||||
"metadata": {
|
||||
"type": "any",
|
||||
"readable": true,
|
||||
"writeable": false,
|
||||
"label": "Z-Wave chip firmware versions"
|
||||
},
|
||||
"value": [
|
||||
"3.10"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user