Add Z-Wave discovery schema for ZVIDAR roller shades (#122332)

Add discovery schema for ZVIDAR roller shades
This commit is contained in:
Alexander Schneider 2024-07-21 14:51:10 -07:00 committed by GitHub
parent c98c80ce69
commit 9a3c7111f7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 1155 additions and 0 deletions

View File

@ -579,6 +579,15 @@ DISCOVERY_SCHEMAS = [
),
entity_registry_enabled_default=False,
),
# ZVIDAR Z-CM-V01 (SmartWings/Deyi WM25L/V Z-Wave Motor for Roller Shade)
ZWaveDiscoverySchema(
platform=Platform.COVER,
hint="shade",
manufacturer_id={0x045A},
product_id={0x0507},
product_type={0x0904},
primary_value=SWITCH_MULTILEVEL_CURRENT_VALUE_SCHEMA,
),
# Vision Security ZL7432 In Wall Dual Relay Switch
ZWaveDiscoverySchema(
platform=Platform.SWITCH,

View File

@ -488,6 +488,12 @@ def iblinds_v3_state_fixture():
return json.loads(load_fixture("zwave_js/cover_iblinds_v3_state.json"))
@pytest.fixture(name="zvidar_state", scope="package")
def zvidar_state_fixture():
"""Load the ZVIDAR node state fixture data."""
return json.loads(load_fixture("zwave_js/cover_zvidar_state.json"))
@pytest.fixture(name="qubino_shutter_state", scope="package")
def qubino_shutter_state_fixture():
"""Load the Qubino Shutter node state fixture data."""
@ -1097,6 +1103,14 @@ def iblinds_v3_cover_fixture(client, iblinds_v3_state):
return node
@pytest.fixture(name="zvidar")
def zvidar_cover_fixture(client, zvidar_state):
"""Mock a ZVIDAR window cover node."""
node = Node(client, copy.deepcopy(zvidar_state))
client.driver.controller.nodes[node.node_id] = node
return node
@pytest.fixture(name="qubino_shutter")
def qubino_shutter_cover_fixture(client, qubino_shutter_state):
"""Mock a Qubino flush shutter node."""

File diff suppressed because it is too large Load Diff

View File

@ -49,6 +49,18 @@ async def test_iblinds_v2(hass: HomeAssistant, client, iblinds_v2, integration)
assert state
async def test_zvidar_state(hass: HomeAssistant, client, zvidar, integration) -> None:
"""Test that an ZVIDAR Z-CM-V01 multilevel switch value is discovered as a cover."""
node = zvidar
assert node.device_class.specific.label == "Unused"
state = hass.states.get("light.window_blind_controller")
assert not state
state = hass.states.get("cover.window_blind_controller")
assert state
async def test_ge_12730(hass: HomeAssistant, client, ge_12730, integration) -> None:
"""Test GE 12730 Fan Controller v2.0 multilevel switch is discovered as a fan."""
node = ge_12730