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
parent
2b68b9292c
commit
80f1e8770a
|
@ -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
|
||||
)
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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,
|
||||
}
|
||||
|
|
|
@ -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."""
|
||||
|
|
|
@ -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",
|
||||
},
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue