Set zwave_js cover device_class for shutters and blinds (#50643)
* Set device_class for shutters and blinds * Add missing. imports * Add tests for device class setting * Clean up * Avoid storing the node in an unused variable * Fix entity name * Extend qubino shutter discovery Co-authored-by: Martin Hjelmare <marhje52@gmail.com>pull/50713/head
parent
222336a1db
commit
0556c35e24
|
@ -9,7 +9,10 @@ from zwave_js_server.model.value import Value as ZwaveValue
|
||||||
|
|
||||||
from homeassistant.components.cover import (
|
from homeassistant.components.cover import (
|
||||||
ATTR_POSITION,
|
ATTR_POSITION,
|
||||||
|
DEVICE_CLASS_BLIND,
|
||||||
DEVICE_CLASS_GARAGE,
|
DEVICE_CLASS_GARAGE,
|
||||||
|
DEVICE_CLASS_SHUTTER,
|
||||||
|
DEVICE_CLASS_WINDOW,
|
||||||
DOMAIN as COVER_DOMAIN,
|
DOMAIN as COVER_DOMAIN,
|
||||||
SUPPORT_CLOSE,
|
SUPPORT_CLOSE,
|
||||||
SUPPORT_OPEN,
|
SUPPORT_OPEN,
|
||||||
|
@ -76,6 +79,15 @@ def percent_to_zwave_position(value: int) -> int:
|
||||||
class ZWaveCover(ZWaveBaseEntity, CoverEntity):
|
class ZWaveCover(ZWaveBaseEntity, CoverEntity):
|
||||||
"""Representation of a Z-Wave Cover device."""
|
"""Representation of a Z-Wave Cover device."""
|
||||||
|
|
||||||
|
@property
|
||||||
|
def device_class(self) -> str | None:
|
||||||
|
"""Return the class of this device, from component DEVICE_CLASSES."""
|
||||||
|
if self.info.platform_hint == "window_shutter":
|
||||||
|
return DEVICE_CLASS_SHUTTER
|
||||||
|
if self.info.platform_hint == "window_blind":
|
||||||
|
return DEVICE_CLASS_BLIND
|
||||||
|
return DEVICE_CLASS_WINDOW
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_closed(self) -> bool | None:
|
def is_closed(self) -> bool | None:
|
||||||
"""Return true if cover is closed."""
|
"""Return true if cover is closed."""
|
||||||
|
|
|
@ -220,6 +220,7 @@ DISCOVERY_SCHEMAS = [
|
||||||
# Fibaro Shutter Fibaro FGS222
|
# Fibaro Shutter Fibaro FGS222
|
||||||
ZWaveDiscoverySchema(
|
ZWaveDiscoverySchema(
|
||||||
platform="cover",
|
platform="cover",
|
||||||
|
hint="window_shutter",
|
||||||
manufacturer_id={0x010F},
|
manufacturer_id={0x010F},
|
||||||
product_id={0x1000},
|
product_id={0x1000},
|
||||||
product_type={0x0302},
|
product_type={0x0302},
|
||||||
|
@ -228,14 +229,16 @@ DISCOVERY_SCHEMAS = [
|
||||||
# Qubino flush shutter
|
# Qubino flush shutter
|
||||||
ZWaveDiscoverySchema(
|
ZWaveDiscoverySchema(
|
||||||
platform="cover",
|
platform="cover",
|
||||||
|
hint="window_shutter",
|
||||||
manufacturer_id={0x0159},
|
manufacturer_id={0x0159},
|
||||||
product_id={0x0052},
|
product_id={0x0052, 0x0053},
|
||||||
product_type={0x0003},
|
product_type={0x0003},
|
||||||
primary_value=SWITCH_MULTILEVEL_CURRENT_VALUE_SCHEMA,
|
primary_value=SWITCH_MULTILEVEL_CURRENT_VALUE_SCHEMA,
|
||||||
),
|
),
|
||||||
# Graber/Bali/Spring Fashion Covers
|
# Graber/Bali/Spring Fashion Covers
|
||||||
ZWaveDiscoverySchema(
|
ZWaveDiscoverySchema(
|
||||||
platform="cover",
|
platform="cover",
|
||||||
|
hint="window_blind",
|
||||||
manufacturer_id={0x026E},
|
manufacturer_id={0x026E},
|
||||||
product_id={0x5A31},
|
product_id={0x5A31},
|
||||||
product_type={0x4353},
|
product_type={0x4353},
|
||||||
|
@ -244,6 +247,7 @@ DISCOVERY_SCHEMAS = [
|
||||||
# iBlinds v2 window blind motor
|
# iBlinds v2 window blind motor
|
||||||
ZWaveDiscoverySchema(
|
ZWaveDiscoverySchema(
|
||||||
platform="cover",
|
platform="cover",
|
||||||
|
hint="window_blind",
|
||||||
manufacturer_id={0x0287},
|
manufacturer_id={0x0287},
|
||||||
product_id={0x000D},
|
product_id={0x000D},
|
||||||
product_type={0x0003},
|
product_type={0x0003},
|
||||||
|
|
|
@ -282,6 +282,12 @@ def iblinds_v2_state_fixture():
|
||||||
return json.loads(load_fixture("zwave_js/cover_iblinds_v2_state.json"))
|
return json.loads(load_fixture("zwave_js/cover_iblinds_v2_state.json"))
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(name="qubino_shutter_state", scope="session")
|
||||||
|
def qubino_shutter_state_fixture():
|
||||||
|
"""Load the Qubino Shutter node state fixture data."""
|
||||||
|
return json.loads(load_fixture("zwave_js/cover_qubino_shutter_state.json"))
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(name="aeon_smart_switch_6_state", scope="session")
|
@pytest.fixture(name="aeon_smart_switch_6_state", scope="session")
|
||||||
def aeon_smart_switch_6_state_fixture():
|
def aeon_smart_switch_6_state_fixture():
|
||||||
"""Load the AEON Labs (ZW096) Smart Switch 6 node state fixture data."""
|
"""Load the AEON Labs (ZW096) Smart Switch 6 node state fixture data."""
|
||||||
|
@ -603,6 +609,14 @@ def iblinds_cover_fixture(client, iblinds_v2_state):
|
||||||
return node
|
return node
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(name="qubino_shutter")
|
||||||
|
def qubino_shutter_cover_fixture(client, qubino_shutter_state):
|
||||||
|
"""Mock a Qubino flush shutter node."""
|
||||||
|
node = Node(client, copy.deepcopy(qubino_shutter_state))
|
||||||
|
client.driver.controller.nodes[node.node_id] = node
|
||||||
|
return node
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(name="aeon_smart_switch_6")
|
@pytest.fixture(name="aeon_smart_switch_6")
|
||||||
def aeon_smart_switch_6_fixture(client, aeon_smart_switch_6_state):
|
def aeon_smart_switch_6_fixture(client, aeon_smart_switch_6_state):
|
||||||
"""Mock an AEON Labs (ZW096) Smart Switch 6 node."""
|
"""Mock an AEON Labs (ZW096) Smart Switch 6 node."""
|
||||||
|
|
|
@ -3,7 +3,10 @@ from zwave_js_server.event import Event
|
||||||
|
|
||||||
from homeassistant.components.cover import (
|
from homeassistant.components.cover import (
|
||||||
ATTR_CURRENT_POSITION,
|
ATTR_CURRENT_POSITION,
|
||||||
|
DEVICE_CLASS_BLIND,
|
||||||
DEVICE_CLASS_GARAGE,
|
DEVICE_CLASS_GARAGE,
|
||||||
|
DEVICE_CLASS_SHUTTER,
|
||||||
|
DEVICE_CLASS_WINDOW,
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
SERVICE_CLOSE_COVER,
|
SERVICE_CLOSE_COVER,
|
||||||
SERVICE_OPEN_COVER,
|
SERVICE_OPEN_COVER,
|
||||||
|
@ -19,6 +22,8 @@ from homeassistant.const import (
|
||||||
|
|
||||||
WINDOW_COVER_ENTITY = "cover.zws_12"
|
WINDOW_COVER_ENTITY = "cover.zws_12"
|
||||||
GDC_COVER_ENTITY = "cover.aeon_labs_garage_door_controller_gen5"
|
GDC_COVER_ENTITY = "cover.aeon_labs_garage_door_controller_gen5"
|
||||||
|
BLIND_COVER_ENTITY = "cover.window_blind_controller"
|
||||||
|
SHUTTER_COVER_ENTITY = "cover.flush_shutter_dc"
|
||||||
|
|
||||||
|
|
||||||
async def test_window_cover(hass, client, chain_actuator_zws12, integration):
|
async def test_window_cover(hass, client, chain_actuator_zws12, integration):
|
||||||
|
@ -27,6 +32,8 @@ async def test_window_cover(hass, client, chain_actuator_zws12, integration):
|
||||||
state = hass.states.get(WINDOW_COVER_ENTITY)
|
state = hass.states.get(WINDOW_COVER_ENTITY)
|
||||||
|
|
||||||
assert state
|
assert state
|
||||||
|
assert state.attributes[ATTR_DEVICE_CLASS] == DEVICE_CLASS_WINDOW
|
||||||
|
|
||||||
assert state.state == "closed"
|
assert state.state == "closed"
|
||||||
assert state.attributes[ATTR_CURRENT_POSITION] == 0
|
assert state.attributes[ATTR_CURRENT_POSITION] == 0
|
||||||
|
|
||||||
|
@ -299,6 +306,22 @@ async def test_window_cover(hass, client, chain_actuator_zws12, integration):
|
||||||
assert state.state == "closed"
|
assert state.state == "closed"
|
||||||
|
|
||||||
|
|
||||||
|
async def test_blind_cover(hass, client, iblinds_v2, integration):
|
||||||
|
"""Test a blind cover entity."""
|
||||||
|
state = hass.states.get(BLIND_COVER_ENTITY)
|
||||||
|
|
||||||
|
assert state
|
||||||
|
assert state.attributes[ATTR_DEVICE_CLASS] == DEVICE_CLASS_BLIND
|
||||||
|
|
||||||
|
|
||||||
|
async def test_shutter_cover(hass, client, qubino_shutter, integration):
|
||||||
|
"""Test a shutter cover entity."""
|
||||||
|
state = hass.states.get(SHUTTER_COVER_ENTITY)
|
||||||
|
|
||||||
|
assert state
|
||||||
|
assert state.attributes[ATTR_DEVICE_CLASS] == DEVICE_CLASS_SHUTTER
|
||||||
|
|
||||||
|
|
||||||
async def test_motor_barrier_cover(hass, client, gdc_zw062, integration):
|
async def test_motor_barrier_cover(hass, client, gdc_zw062, integration):
|
||||||
"""Test the cover entity."""
|
"""Test the cover entity."""
|
||||||
node = gdc_zw062
|
node = gdc_zw062
|
||||||
|
|
|
@ -0,0 +1,765 @@
|
||||||
|
{
|
||||||
|
"nodeId": 5,
|
||||||
|
"index": 0,
|
||||||
|
"installerIcon": 6656,
|
||||||
|
"userIcon": 6656,
|
||||||
|
"status": 4,
|
||||||
|
"ready": true,
|
||||||
|
"deviceClass": {
|
||||||
|
"basic": { "key": 4, "label": "Routing Slave" },
|
||||||
|
"generic": { "key": 17, "label": "Routing Slave" },
|
||||||
|
"specific": { "key": 7, "label": "Routing Slave" },
|
||||||
|
"mandatorySupportedCCs": [],
|
||||||
|
"mandatoryControlCCs": []
|
||||||
|
},
|
||||||
|
"isListening": true,
|
||||||
|
"isFrequentListening": false,
|
||||||
|
"isRouting": true,
|
||||||
|
"maxBaudRate": 40000,
|
||||||
|
"isSecure": false,
|
||||||
|
"version": 4,
|
||||||
|
"isBeaming": true,
|
||||||
|
"manufacturerId": 345,
|
||||||
|
"productId": 83,
|
||||||
|
"productType": 3,
|
||||||
|
"firmwareVersion": "7.2",
|
||||||
|
"zwavePlusVersion": 1,
|
||||||
|
"nodeType": 0,
|
||||||
|
"roleType": 5,
|
||||||
|
"deviceConfig": {
|
||||||
|
"manufacturerId": 345,
|
||||||
|
"manufacturer": "Qubino",
|
||||||
|
"label": "ZMNHOD",
|
||||||
|
"description": "Flush Shutter DC",
|
||||||
|
"devices": [{ "productType": "0x0003", "productId": "0x0053" }],
|
||||||
|
"firmwareVersion": { "min": "0.0", "max": "255.255" },
|
||||||
|
"paramInformation": { "_map": {} }
|
||||||
|
},
|
||||||
|
"label": "ZMNHOD",
|
||||||
|
"neighbors": [1, 2],
|
||||||
|
"interviewAttempts": 1,
|
||||||
|
"endpoints": [
|
||||||
|
{ "nodeId": 5, "index": 0, "installerIcon": 6656, "userIcon": 6656 }
|
||||||
|
],
|
||||||
|
"commandClasses": [],
|
||||||
|
"values": [
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 38,
|
||||||
|
"commandClassName": "Multilevel Switch",
|
||||||
|
"property": "targetValue",
|
||||||
|
"propertyName": "targetValue",
|
||||||
|
"ccVersion": 3,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": true,
|
||||||
|
"min": 0,
|
||||||
|
"max": 99,
|
||||||
|
"label": "Target value"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 38,
|
||||||
|
"commandClassName": "Multilevel Switch",
|
||||||
|
"property": "duration",
|
||||||
|
"propertyName": "duration",
|
||||||
|
"ccVersion": 3,
|
||||||
|
"metadata": {
|
||||||
|
"type": "duration",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": true,
|
||||||
|
"label": "Transition duration"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 38,
|
||||||
|
"commandClassName": "Multilevel Switch",
|
||||||
|
"property": "currentValue",
|
||||||
|
"propertyName": "currentValue",
|
||||||
|
"ccVersion": 3,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": false,
|
||||||
|
"min": 0,
|
||||||
|
"max": 99,
|
||||||
|
"label": "Current value"
|
||||||
|
},
|
||||||
|
"value": "unknown"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 38,
|
||||||
|
"commandClassName": "Multilevel Switch",
|
||||||
|
"property": "Up",
|
||||||
|
"propertyName": "Up",
|
||||||
|
"ccVersion": 3,
|
||||||
|
"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": 3,
|
||||||
|
"metadata": {
|
||||||
|
"type": "boolean",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": true,
|
||||||
|
"label": "Perform a level change (Down)",
|
||||||
|
"ccSpecific": { "switchType": 2 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 37,
|
||||||
|
"commandClassName": "Binary Switch",
|
||||||
|
"property": "currentValue",
|
||||||
|
"propertyName": "currentValue",
|
||||||
|
"ccVersion": 1,
|
||||||
|
"metadata": {
|
||||||
|
"type": "boolean",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": false,
|
||||||
|
"label": "Current value"
|
||||||
|
},
|
||||||
|
"value": "unknown"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 37,
|
||||||
|
"commandClassName": "Binary Switch",
|
||||||
|
"property": "targetValue",
|
||||||
|
"propertyName": "targetValue",
|
||||||
|
"ccVersion": 1,
|
||||||
|
"metadata": {
|
||||||
|
"type": "boolean",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": true,
|
||||||
|
"label": "Target value"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 114,
|
||||||
|
"commandClassName": "Manufacturer Specific",
|
||||||
|
"property": "manufacturerId",
|
||||||
|
"propertyName": "manufacturerId",
|
||||||
|
"ccVersion": 2,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": false,
|
||||||
|
"min": 0,
|
||||||
|
"max": 65535,
|
||||||
|
"label": "Manufacturer ID"
|
||||||
|
},
|
||||||
|
"value": 345
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 114,
|
||||||
|
"commandClassName": "Manufacturer Specific",
|
||||||
|
"property": "productType",
|
||||||
|
"propertyName": "productType",
|
||||||
|
"ccVersion": 2,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": false,
|
||||||
|
"min": 0,
|
||||||
|
"max": 65535,
|
||||||
|
"label": "Product type"
|
||||||
|
},
|
||||||
|
"value": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 114,
|
||||||
|
"commandClassName": "Manufacturer Specific",
|
||||||
|
"property": "productId",
|
||||||
|
"propertyName": "productId",
|
||||||
|
"ccVersion": 2,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": false,
|
||||||
|
"min": 0,
|
||||||
|
"max": 65535,
|
||||||
|
"label": "Product ID"
|
||||||
|
},
|
||||||
|
"value": 83
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 134,
|
||||||
|
"commandClassName": "Version",
|
||||||
|
"property": "libraryType",
|
||||||
|
"propertyName": "libraryType",
|
||||||
|
"ccVersion": 2,
|
||||||
|
"metadata": {
|
||||||
|
"type": "any",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": false,
|
||||||
|
"label": "Library type"
|
||||||
|
},
|
||||||
|
"value": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 134,
|
||||||
|
"commandClassName": "Version",
|
||||||
|
"property": "protocolVersion",
|
||||||
|
"propertyName": "protocolVersion",
|
||||||
|
"ccVersion": 2,
|
||||||
|
"metadata": {
|
||||||
|
"type": "any",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": false,
|
||||||
|
"label": "Z-Wave protocol version"
|
||||||
|
},
|
||||||
|
"value": "4.38"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 134,
|
||||||
|
"commandClassName": "Version",
|
||||||
|
"property": "firmwareVersions",
|
||||||
|
"propertyName": "firmwareVersions",
|
||||||
|
"ccVersion": 2,
|
||||||
|
"metadata": {
|
||||||
|
"type": "any",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": false,
|
||||||
|
"label": "Z-Wave chip firmware versions"
|
||||||
|
},
|
||||||
|
"value": ["7.2"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 134,
|
||||||
|
"commandClassName": "Version",
|
||||||
|
"property": "hardwareVersion",
|
||||||
|
"propertyName": "hardwareVersion",
|
||||||
|
"ccVersion": 2,
|
||||||
|
"metadata": {
|
||||||
|
"type": "any",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": false,
|
||||||
|
"label": "Z-Wave chip hardware version"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 50,
|
||||||
|
"commandClassName": "Meter",
|
||||||
|
"property": "value",
|
||||||
|
"propertyKey": 65537,
|
||||||
|
"propertyName": "value",
|
||||||
|
"propertyKeyName": "Electric_kWh_Consumed",
|
||||||
|
"ccVersion": 4,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": false,
|
||||||
|
"label": "Electric Consumed [kWh]",
|
||||||
|
"unit": "kWh",
|
||||||
|
"ccSpecific": { "meterType": 1, "rateType": 1, "scale": 0 }
|
||||||
|
},
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 50,
|
||||||
|
"commandClassName": "Meter",
|
||||||
|
"property": "deltaTime",
|
||||||
|
"propertyKey": 65537,
|
||||||
|
"propertyName": "deltaTime",
|
||||||
|
"propertyKeyName": "Electric_kWh_Consumed",
|
||||||
|
"ccVersion": 4,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": false,
|
||||||
|
"label": "Electric Consumed [kWh] (prev. time delta)",
|
||||||
|
"unit": "s",
|
||||||
|
"ccSpecific": { "meterType": 1, "rateType": 1, "scale": 0 }
|
||||||
|
},
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 50,
|
||||||
|
"commandClassName": "Meter",
|
||||||
|
"property": "value",
|
||||||
|
"propertyKey": 66049,
|
||||||
|
"propertyName": "value",
|
||||||
|
"propertyKeyName": "Electric_W_Consumed",
|
||||||
|
"ccVersion": 4,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": false,
|
||||||
|
"label": "Electric Consumed [W]",
|
||||||
|
"unit": "W",
|
||||||
|
"ccSpecific": { "meterType": 1, "rateType": 1, "scale": 2 }
|
||||||
|
},
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 50,
|
||||||
|
"commandClassName": "Meter",
|
||||||
|
"property": "deltaTime",
|
||||||
|
"propertyKey": 66049,
|
||||||
|
"propertyName": "deltaTime",
|
||||||
|
"propertyKeyName": "Electric_W_Consumed",
|
||||||
|
"ccVersion": 4,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": false,
|
||||||
|
"label": "Electric Consumed [W] (prev. time delta)",
|
||||||
|
"unit": "s",
|
||||||
|
"ccSpecific": { "meterType": 1, "rateType": 1, "scale": 2 }
|
||||||
|
},
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 50,
|
||||||
|
"commandClassName": "Meter",
|
||||||
|
"property": "reset",
|
||||||
|
"propertyName": "reset",
|
||||||
|
"ccVersion": 4,
|
||||||
|
"metadata": {
|
||||||
|
"type": "boolean",
|
||||||
|
"readable": false,
|
||||||
|
"writeable": true,
|
||||||
|
"label": "Reset accumulated values"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 50,
|
||||||
|
"commandClassName": "Meter",
|
||||||
|
"property": "previousValue",
|
||||||
|
"propertyKey": 65537,
|
||||||
|
"propertyName": "previousValue",
|
||||||
|
"propertyKeyName": "Electric_kWh_Consumed",
|
||||||
|
"ccVersion": 4,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": false,
|
||||||
|
"label": "Electric Consumed [kWh] (prev. value)",
|
||||||
|
"unit": "kWh",
|
||||||
|
"ccSpecific": { "meterType": 1, "rateType": 1, "scale": 0 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 50,
|
||||||
|
"commandClassName": "Meter",
|
||||||
|
"property": "previousValue",
|
||||||
|
"propertyKey": 66049,
|
||||||
|
"propertyName": "previousValue",
|
||||||
|
"propertyKeyName": "Electric_W_Consumed",
|
||||||
|
"ccVersion": 4,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": false,
|
||||||
|
"label": "Electric Consumed [W] (prev. value)",
|
||||||
|
"unit": "W",
|
||||||
|
"ccSpecific": { "meterType": 1, "rateType": 1, "scale": 2 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 113,
|
||||||
|
"commandClassName": "Notification",
|
||||||
|
"property": "alarmType",
|
||||||
|
"propertyName": "alarmType",
|
||||||
|
"ccVersion": 5,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": false,
|
||||||
|
"min": 0,
|
||||||
|
"max": 255,
|
||||||
|
"label": "Alarm Type"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 113,
|
||||||
|
"commandClassName": "Notification",
|
||||||
|
"property": "alarmLevel",
|
||||||
|
"propertyName": "alarmLevel",
|
||||||
|
"ccVersion": 5,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": false,
|
||||||
|
"min": 0,
|
||||||
|
"max": 255,
|
||||||
|
"label": "Alarm Level"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 113,
|
||||||
|
"commandClassName": "Notification",
|
||||||
|
"property": "Power Management",
|
||||||
|
"propertyKey": "Over-load status",
|
||||||
|
"propertyName": "Power Management",
|
||||||
|
"propertyKeyName": "Over-load status",
|
||||||
|
"ccVersion": 5,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": false,
|
||||||
|
"min": 0,
|
||||||
|
"max": 255,
|
||||||
|
"label": "Over-load status",
|
||||||
|
"states": { "0": "idle", "8": "Over-load detected" },
|
||||||
|
"ccSpecific": { "notificationType": 8 }
|
||||||
|
},
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 112,
|
||||||
|
"commandClassName": "Configuration",
|
||||||
|
"property": 10,
|
||||||
|
"propertyName": "Activate/deactivate functions ALL ON / ALL OFF",
|
||||||
|
"ccVersion": 1,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": true,
|
||||||
|
"valueSize": 2,
|
||||||
|
"min": 0,
|
||||||
|
"max": 65535,
|
||||||
|
"default": 255,
|
||||||
|
"format": 1,
|
||||||
|
"allowManualEntry": false,
|
||||||
|
"states": {
|
||||||
|
"0": "ALL ON is not active, ALL OFF is not active",
|
||||||
|
"1": "ALL ON is not active ALL OFF active",
|
||||||
|
"2": "ALL ON is not active ALL OFF is not active",
|
||||||
|
"255": "ALL ON active, ALL OFF active"
|
||||||
|
},
|
||||||
|
"label": "Activate/deactivate functions ALL ON / ALL OFF",
|
||||||
|
"isFromConfig": true
|
||||||
|
},
|
||||||
|
"value": 255
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 112,
|
||||||
|
"commandClassName": "Configuration",
|
||||||
|
"property": 40,
|
||||||
|
"propertyName": "Power report (Watts) on power change for Q1 or Q2",
|
||||||
|
"ccVersion": 1,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": true,
|
||||||
|
"valueSize": 1,
|
||||||
|
"min": 0,
|
||||||
|
"max": 100,
|
||||||
|
"default": 1,
|
||||||
|
"format": 0,
|
||||||
|
"allowManualEntry": true,
|
||||||
|
"label": "Power report (Watts) on power change for Q1 or Q2",
|
||||||
|
"isFromConfig": true
|
||||||
|
},
|
||||||
|
"value": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 112,
|
||||||
|
"commandClassName": "Configuration",
|
||||||
|
"property": 42,
|
||||||
|
"propertyName": "Power report (Watts) by time interval for Q1 or Q2",
|
||||||
|
"ccVersion": 1,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": true,
|
||||||
|
"valueSize": 2,
|
||||||
|
"min": 0,
|
||||||
|
"max": 32767,
|
||||||
|
"default": 300,
|
||||||
|
"format": 0,
|
||||||
|
"allowManualEntry": true,
|
||||||
|
"label": "Power report (Watts) by time interval for Q1 or Q2",
|
||||||
|
"isFromConfig": true
|
||||||
|
},
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 112,
|
||||||
|
"commandClassName": "Configuration",
|
||||||
|
"property": 71,
|
||||||
|
"propertyName": "Operating modes",
|
||||||
|
"ccVersion": 1,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": true,
|
||||||
|
"valueSize": 1,
|
||||||
|
"min": 0,
|
||||||
|
"max": 255,
|
||||||
|
"default": 0,
|
||||||
|
"format": 1,
|
||||||
|
"allowManualEntry": false,
|
||||||
|
"states": {
|
||||||
|
"0": "Shutter mode.",
|
||||||
|
"1": "Venetian mode (up/down and slate rotation)"
|
||||||
|
},
|
||||||
|
"label": "Operating modes",
|
||||||
|
"isFromConfig": true
|
||||||
|
},
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 112,
|
||||||
|
"commandClassName": "Configuration",
|
||||||
|
"property": 72,
|
||||||
|
"propertyName": "Slats tilting full turn time",
|
||||||
|
"ccVersion": 1,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": true,
|
||||||
|
"valueSize": 2,
|
||||||
|
"min": 0,
|
||||||
|
"max": 32767,
|
||||||
|
"default": 150,
|
||||||
|
"format": 0,
|
||||||
|
"allowManualEntry": true,
|
||||||
|
"label": "Slats tilting full turn time",
|
||||||
|
"isFromConfig": true
|
||||||
|
},
|
||||||
|
"value": 630
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 112,
|
||||||
|
"commandClassName": "Configuration",
|
||||||
|
"property": 73,
|
||||||
|
"propertyName": "Slats position",
|
||||||
|
"ccVersion": 1,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": true,
|
||||||
|
"valueSize": 1,
|
||||||
|
"min": 0,
|
||||||
|
"max": 255,
|
||||||
|
"default": 1,
|
||||||
|
"format": 1,
|
||||||
|
"allowManualEntry": false,
|
||||||
|
"states": {
|
||||||
|
"0": "Return to previous position only with Z-wave",
|
||||||
|
"1": "Return to previous position with Z-wave or button"
|
||||||
|
},
|
||||||
|
"label": "Slats position",
|
||||||
|
"isFromConfig": true
|
||||||
|
},
|
||||||
|
"value": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 112,
|
||||||
|
"commandClassName": "Configuration",
|
||||||
|
"property": 74,
|
||||||
|
"propertyName": "Motor moving up/down time",
|
||||||
|
"ccVersion": 1,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": true,
|
||||||
|
"valueSize": 2,
|
||||||
|
"min": 0,
|
||||||
|
"max": 32767,
|
||||||
|
"default": 0,
|
||||||
|
"format": 0,
|
||||||
|
"allowManualEntry": true,
|
||||||
|
"label": "Motor moving up/down time",
|
||||||
|
"isFromConfig": true
|
||||||
|
},
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 112,
|
||||||
|
"commandClassName": "Configuration",
|
||||||
|
"property": 76,
|
||||||
|
"propertyName": "Motor operation detection",
|
||||||
|
"ccVersion": 1,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": true,
|
||||||
|
"valueSize": 1,
|
||||||
|
"min": 0,
|
||||||
|
"max": 100,
|
||||||
|
"default": 6,
|
||||||
|
"format": 0,
|
||||||
|
"allowManualEntry": true,
|
||||||
|
"label": "Motor operation detection",
|
||||||
|
"isFromConfig": true
|
||||||
|
},
|
||||||
|
"value": 10
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 112,
|
||||||
|
"commandClassName": "Configuration",
|
||||||
|
"property": 78,
|
||||||
|
"propertyName": "Forced Shutter DC calibration",
|
||||||
|
"ccVersion": 1,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": true,
|
||||||
|
"valueSize": 1,
|
||||||
|
"min": 0,
|
||||||
|
"max": 255,
|
||||||
|
"default": 0,
|
||||||
|
"format": 1,
|
||||||
|
"allowManualEntry": false,
|
||||||
|
"states": { "0": "Default", "1": "Start calibration process." },
|
||||||
|
"label": "Forced Shutter DC calibration",
|
||||||
|
"isFromConfig": true
|
||||||
|
},
|
||||||
|
"value": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 112,
|
||||||
|
"commandClassName": "Configuration",
|
||||||
|
"property": 85,
|
||||||
|
"propertyName": "Power consumption max delay time",
|
||||||
|
"ccVersion": 1,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": true,
|
||||||
|
"valueSize": 1,
|
||||||
|
"min": 3,
|
||||||
|
"max": 50,
|
||||||
|
"default": 8,
|
||||||
|
"format": 0,
|
||||||
|
"allowManualEntry": true,
|
||||||
|
"label": "Power consumption max delay time",
|
||||||
|
"isFromConfig": true
|
||||||
|
},
|
||||||
|
"value": 8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 112,
|
||||||
|
"commandClassName": "Configuration",
|
||||||
|
"property": 86,
|
||||||
|
"propertyName": "Power consumption at limit switch delay time",
|
||||||
|
"ccVersion": 1,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": true,
|
||||||
|
"valueSize": 1,
|
||||||
|
"min": 3,
|
||||||
|
"max": 50,
|
||||||
|
"default": 8,
|
||||||
|
"format": 0,
|
||||||
|
"allowManualEntry": true,
|
||||||
|
"label": "Power consumption at limit switch delay time",
|
||||||
|
"isFromConfig": true
|
||||||
|
},
|
||||||
|
"value": 8
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 112,
|
||||||
|
"commandClassName": "Configuration",
|
||||||
|
"property": 90,
|
||||||
|
"propertyName": "Time delay for next motor movement",
|
||||||
|
"ccVersion": 1,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": true,
|
||||||
|
"valueSize": 1,
|
||||||
|
"min": 1,
|
||||||
|
"max": 30,
|
||||||
|
"default": 5,
|
||||||
|
"format": 0,
|
||||||
|
"allowManualEntry": true,
|
||||||
|
"label": "Time delay for next motor movement",
|
||||||
|
"isFromConfig": true
|
||||||
|
},
|
||||||
|
"value": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 112,
|
||||||
|
"commandClassName": "Configuration",
|
||||||
|
"property": 110,
|
||||||
|
"propertyName": "Temperature sensor offset settings",
|
||||||
|
"ccVersion": 1,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": true,
|
||||||
|
"valueSize": 2,
|
||||||
|
"min": 1,
|
||||||
|
"max": 32536,
|
||||||
|
"default": 32536,
|
||||||
|
"format": 0,
|
||||||
|
"allowManualEntry": true,
|
||||||
|
"label": "Temperature sensor offset settings",
|
||||||
|
"isFromConfig": true
|
||||||
|
},
|
||||||
|
"value": 32536
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"endpoint": 0,
|
||||||
|
"commandClass": 112,
|
||||||
|
"commandClassName": "Configuration",
|
||||||
|
"property": 120,
|
||||||
|
"propertyName": "Digital temperature sensor reporting",
|
||||||
|
"ccVersion": 1,
|
||||||
|
"metadata": {
|
||||||
|
"type": "number",
|
||||||
|
"readable": true,
|
||||||
|
"writeable": true,
|
||||||
|
"valueSize": 1,
|
||||||
|
"min": 0,
|
||||||
|
"max": 127,
|
||||||
|
"default": 5,
|
||||||
|
"format": 0,
|
||||||
|
"allowManualEntry": true,
|
||||||
|
"label": "Digital temperature sensor reporting",
|
||||||
|
"isFromConfig": true
|
||||||
|
},
|
||||||
|
"value": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Loading…
Reference in New Issue