Add Water Content Measurement clusters (#59300)

* Add Water Content Measurement clusters

* Fix typo

* Add device test

Co-authored-by: Alexei Chetroi <lexoid@gmail.com>
pull/59401/head
Piotr Majkrzak 2021-11-08 19:13:35 +01:00 committed by GitHub
parent 2b68b9292c
commit 80f1e8770a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 90 additions and 0 deletions

View File

@ -62,6 +62,30 @@ class RelativeHumidity(ZigbeeChannel):
]
@registries.ZIGBEE_CHANNEL_REGISTRY.register(measurement.SoilMoisture.cluster_id)
class SoilMoisture(ZigbeeChannel):
"""Soil Moisture measurement channel."""
REPORT_CONFIG = [
{
"attr": "measured_value",
"config": (REPORT_CONFIG_MIN_INT, REPORT_CONFIG_MAX_INT, 100),
}
]
@registries.ZIGBEE_CHANNEL_REGISTRY.register(measurement.LeafWetness.cluster_id)
class LeafWetness(ZigbeeChannel):
"""Leaf Wetness measurement channel."""
REPORT_CONFIG = [
{
"attr": "measured_value",
"config": (REPORT_CONFIG_MIN_INT, REPORT_CONFIG_MAX_INT, 100),
}
]
@registries.ZIGBEE_CHANNEL_REGISTRY.register(
measurement.TemperatureMeasurement.cluster_id
)

View File

@ -84,6 +84,8 @@ CHANNEL_ELECTRICAL_MEASUREMENT = "electrical_measurement"
CHANNEL_EVENT_RELAY = "event_relay"
CHANNEL_FAN = "fan"
CHANNEL_HUMIDITY = "humidity"
CHANNEL_SOIL_MOISTURE = "soil_moisture"
CHANNEL_LEAF_WETNESS = "leaf_wetness"
CHANNEL_IAS_ACE = "ias_ace"
CHANNEL_IAS_WD = "ias_wd"
CHANNEL_IDENTIFY = "identify"

View File

@ -82,6 +82,8 @@ SINGLE_INPUT_CLUSTER_DEVICE_CLASS = {
zcl.clusters.measurement.OccupancySensing.cluster_id: BINARY_SENSOR,
zcl.clusters.measurement.PressureMeasurement.cluster_id: SENSOR,
zcl.clusters.measurement.RelativeHumidity.cluster_id: SENSOR,
zcl.clusters.measurement.SoilMoisture.cluster_id: SENSOR,
zcl.clusters.measurement.LeafWetness.cluster_id: SENSOR,
zcl.clusters.measurement.TemperatureMeasurement.cluster_id: SENSOR,
zcl.clusters.security.IasZone.cluster_id: BINARY_SENSOR,
}

View File

@ -61,9 +61,11 @@ from .core.const import (
CHANNEL_ELECTRICAL_MEASUREMENT,
CHANNEL_HUMIDITY,
CHANNEL_ILLUMINANCE,
CHANNEL_LEAF_WETNESS,
CHANNEL_POWER_CONFIGURATION,
CHANNEL_PRESSURE,
CHANNEL_SMARTENERGY_METERING,
CHANNEL_SOIL_MOISTURE,
CHANNEL_TEMPERATURE,
CHANNEL_THERMOSTAT,
DATA_ZHA,
@ -353,6 +355,28 @@ class Humidity(Sensor):
_unit = PERCENTAGE
@STRICT_MATCH(channel_names=CHANNEL_SOIL_MOISTURE)
class SoilMoisture(Sensor):
"""Soil Moisture sensor."""
SENSOR_ATTR = "measured_value"
_device_class = DEVICE_CLASS_HUMIDITY
_divisor = 100
_state_class = STATE_CLASS_MEASUREMENT
_unit = PERCENTAGE
@STRICT_MATCH(channel_names=CHANNEL_LEAF_WETNESS)
class LeafWetness(Sensor):
"""Leaf Wetness sensor."""
SENSOR_ATTR = "measured_value"
_device_class = DEVICE_CLASS_HUMIDITY
_divisor = 100
_state_class = STATE_CLASS_MEASUREMENT
_unit = PERCENTAGE
@STRICT_MATCH(channel_names=CHANNEL_ILLUMINANCE)
class Illuminance(Sensor):
"""Illuminance Sensor."""

View File

@ -3985,4 +3985,42 @@ DEVICES = [
SIG_MODEL: "XBee3",
SIG_NODE_DESC: b"\x01@\x8e\x1e\x10R\xff\x00\x00,\xff\x00\x00",
},
{
DEV_SIG_DEV_NO: 99,
SIG_ENDPOINTS: {
1: {
SIG_EP_TYPE: 0x000C,
DEV_SIG_EP_ID: 1,
SIG_EP_INPUT: [0x0000, 0x0001, 0x0402, 0x0408],
SIG_EP_OUTPUT: [],
SIG_EP_PROFILE: 260,
}
},
DEV_SIG_ENTITIES: [
"sensor.efektalab_ru_efekta_pws_77665544_power",
"sensor.efektalab_ru_efekta_pws_77665544_temperature",
"sensor.efektalab_ru_efekta_pws_77665544_soil_moisture",
],
DEV_SIG_ENT_MAP: {
("sensor", "00:11:22:33:44:55:66:77-1-1"): {
DEV_SIG_CHANNELS: ["power"],
DEV_SIG_ENT_MAP_CLASS: "Battery",
DEV_SIG_ENT_MAP_ID: "sensor.efektalab_ru_efekta_pws_77665544_power",
},
("sensor", "00:11:22:33:44:55:66:77-1-1026"): {
DEV_SIG_CHANNELS: ["temperature"],
DEV_SIG_ENT_MAP_CLASS: "Temperature",
DEV_SIG_ENT_MAP_ID: "sensor.efektalab_ru_efekta_pws_77665544_temperature",
},
("sensor", "00:11:22:33:44:55:66:77-1-1032"): {
DEV_SIG_CHANNELS: ["soil_moisture"],
DEV_SIG_ENT_MAP_CLASS: "SoilMoisture",
DEV_SIG_ENT_MAP_ID: "sensor.efektalab_ru_efekta_pws_77665544_soil_moisture",
},
},
DEV_SIG_EVT_CHANNELS: [],
SIG_MANUFACTURER: "efektalab.ru",
SIG_MODEL: "EFEKTA_PWS",
SIG_NODE_DESC: b"\x02@\x80\x00\x00P\xa0\x00\x00\x00\xa0\x00\x00",
},
]