mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 13:17:32 +00:00
Add Water Content Measurement clusters (#59300)
* Add Water Content Measurement clusters * Fix typo * Add device test Co-authored-by: Alexei Chetroi <lexoid@gmail.com>
This commit is contained in:
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(
|
@registries.ZIGBEE_CHANNEL_REGISTRY.register(
|
||||||
measurement.TemperatureMeasurement.cluster_id
|
measurement.TemperatureMeasurement.cluster_id
|
||||||
)
|
)
|
||||||
|
@ -84,6 +84,8 @@ CHANNEL_ELECTRICAL_MEASUREMENT = "electrical_measurement"
|
|||||||
CHANNEL_EVENT_RELAY = "event_relay"
|
CHANNEL_EVENT_RELAY = "event_relay"
|
||||||
CHANNEL_FAN = "fan"
|
CHANNEL_FAN = "fan"
|
||||||
CHANNEL_HUMIDITY = "humidity"
|
CHANNEL_HUMIDITY = "humidity"
|
||||||
|
CHANNEL_SOIL_MOISTURE = "soil_moisture"
|
||||||
|
CHANNEL_LEAF_WETNESS = "leaf_wetness"
|
||||||
CHANNEL_IAS_ACE = "ias_ace"
|
CHANNEL_IAS_ACE = "ias_ace"
|
||||||
CHANNEL_IAS_WD = "ias_wd"
|
CHANNEL_IAS_WD = "ias_wd"
|
||||||
CHANNEL_IDENTIFY = "identify"
|
CHANNEL_IDENTIFY = "identify"
|
||||||
|
@ -82,6 +82,8 @@ SINGLE_INPUT_CLUSTER_DEVICE_CLASS = {
|
|||||||
zcl.clusters.measurement.OccupancySensing.cluster_id: BINARY_SENSOR,
|
zcl.clusters.measurement.OccupancySensing.cluster_id: BINARY_SENSOR,
|
||||||
zcl.clusters.measurement.PressureMeasurement.cluster_id: SENSOR,
|
zcl.clusters.measurement.PressureMeasurement.cluster_id: SENSOR,
|
||||||
zcl.clusters.measurement.RelativeHumidity.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.measurement.TemperatureMeasurement.cluster_id: SENSOR,
|
||||||
zcl.clusters.security.IasZone.cluster_id: BINARY_SENSOR,
|
zcl.clusters.security.IasZone.cluster_id: BINARY_SENSOR,
|
||||||
}
|
}
|
||||||
|
@ -61,9 +61,11 @@ from .core.const import (
|
|||||||
CHANNEL_ELECTRICAL_MEASUREMENT,
|
CHANNEL_ELECTRICAL_MEASUREMENT,
|
||||||
CHANNEL_HUMIDITY,
|
CHANNEL_HUMIDITY,
|
||||||
CHANNEL_ILLUMINANCE,
|
CHANNEL_ILLUMINANCE,
|
||||||
|
CHANNEL_LEAF_WETNESS,
|
||||||
CHANNEL_POWER_CONFIGURATION,
|
CHANNEL_POWER_CONFIGURATION,
|
||||||
CHANNEL_PRESSURE,
|
CHANNEL_PRESSURE,
|
||||||
CHANNEL_SMARTENERGY_METERING,
|
CHANNEL_SMARTENERGY_METERING,
|
||||||
|
CHANNEL_SOIL_MOISTURE,
|
||||||
CHANNEL_TEMPERATURE,
|
CHANNEL_TEMPERATURE,
|
||||||
CHANNEL_THERMOSTAT,
|
CHANNEL_THERMOSTAT,
|
||||||
DATA_ZHA,
|
DATA_ZHA,
|
||||||
@ -353,6 +355,28 @@ class Humidity(Sensor):
|
|||||||
_unit = PERCENTAGE
|
_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)
|
@STRICT_MATCH(channel_names=CHANNEL_ILLUMINANCE)
|
||||||
class Illuminance(Sensor):
|
class Illuminance(Sensor):
|
||||||
"""Illuminance Sensor."""
|
"""Illuminance Sensor."""
|
||||||
|
@ -3985,4 +3985,42 @@ DEVICES = [
|
|||||||
SIG_MODEL: "XBee3",
|
SIG_MODEL: "XBee3",
|
||||||
SIG_NODE_DESC: b"\x01@\x8e\x1e\x10R\xff\x00\x00,\xff\x00\x00",
|
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…
x
Reference in New Issue
Block a user