86 lines
2.6 KiB
Python
86 lines
2.6 KiB
Python
"""
|
|
Measurement channels module for Zigbee Home Automation.
|
|
|
|
For more details about this component, please refer to the documentation at
|
|
https://home-assistant.io/integrations/zha/
|
|
"""
|
|
import logging
|
|
|
|
import zigpy.zcl.clusters.measurement as measurement
|
|
|
|
from . import AttributeListeningChannel
|
|
from .. import registries
|
|
from ..const import (
|
|
REPORT_CONFIG_DEFAULT,
|
|
REPORT_CONFIG_IMMEDIATE,
|
|
REPORT_CONFIG_MAX_INT,
|
|
REPORT_CONFIG_MIN_INT,
|
|
)
|
|
|
|
_LOGGER = logging.getLogger(__name__)
|
|
|
|
|
|
@registries.ZIGBEE_CHANNEL_REGISTRY.register(measurement.FlowMeasurement.cluster_id)
|
|
class FlowMeasurement(AttributeListeningChannel):
|
|
"""Flow Measurement channel."""
|
|
|
|
REPORT_CONFIG = [{"attr": "measured_value", "config": REPORT_CONFIG_DEFAULT}]
|
|
|
|
|
|
@registries.ZIGBEE_CHANNEL_REGISTRY.register(
|
|
measurement.IlluminanceLevelSensing.cluster_id
|
|
)
|
|
class IlluminanceLevelSensing(AttributeListeningChannel):
|
|
"""Illuminance Level Sensing channel."""
|
|
|
|
REPORT_CONFIG = [{"attr": "level_status", "config": REPORT_CONFIG_DEFAULT}]
|
|
|
|
|
|
@registries.ZIGBEE_CHANNEL_REGISTRY.register(
|
|
measurement.IlluminanceMeasurement.cluster_id
|
|
)
|
|
class IlluminanceMeasurement(AttributeListeningChannel):
|
|
"""Illuminance Measurement channel."""
|
|
|
|
REPORT_CONFIG = [{"attr": "measured_value", "config": REPORT_CONFIG_DEFAULT}]
|
|
|
|
|
|
@registries.BINARY_SENSOR_CLUSTERS.register(measurement.OccupancySensing.cluster_id)
|
|
@registries.ZIGBEE_CHANNEL_REGISTRY.register(measurement.OccupancySensing.cluster_id)
|
|
class OccupancySensing(AttributeListeningChannel):
|
|
"""Occupancy Sensing channel."""
|
|
|
|
REPORT_CONFIG = [{"attr": "occupancy", "config": REPORT_CONFIG_IMMEDIATE}]
|
|
|
|
|
|
@registries.ZIGBEE_CHANNEL_REGISTRY.register(measurement.PressureMeasurement.cluster_id)
|
|
class PressureMeasurement(AttributeListeningChannel):
|
|
"""Pressure measurement channel."""
|
|
|
|
REPORT_CONFIG = [{"attr": "measured_value", "config": REPORT_CONFIG_DEFAULT}]
|
|
|
|
|
|
@registries.ZIGBEE_CHANNEL_REGISTRY.register(measurement.RelativeHumidity.cluster_id)
|
|
class RelativeHumidity(AttributeListeningChannel):
|
|
"""Relative Humidity measurement channel."""
|
|
|
|
REPORT_CONFIG = [
|
|
{
|
|
"attr": "measured_value",
|
|
"config": (REPORT_CONFIG_MIN_INT, REPORT_CONFIG_MAX_INT, 50),
|
|
}
|
|
]
|
|
|
|
|
|
@registries.ZIGBEE_CHANNEL_REGISTRY.register(
|
|
measurement.TemperatureMeasurement.cluster_id
|
|
)
|
|
class TemperatureMeasurement(AttributeListeningChannel):
|
|
"""Temperature measurement channel."""
|
|
|
|
REPORT_CONFIG = [
|
|
{
|
|
"attr": "measured_value",
|
|
"config": (REPORT_CONFIG_MIN_INT, REPORT_CONFIG_MAX_INT, 50),
|
|
}
|
|
]
|