"""Xiaomi aqara weather sensor device.""" from zigpy.profiles import zha from zigpy.zcl.clusters.general import Groups, Identify from zigpy.zcl.clusters.measurement import PressureMeasurement from zhaquirks.const import ( DEVICE_TYPE, ENDPOINTS, INPUT_CLUSTERS, MODELS_INFO, NODE_DESCRIPTOR, OUTPUT_CLUSTERS, PROFILE_ID, SKIP_CONFIGURATION, ) from zhaquirks.xiaomi import ( LUMI, XIAOMI_NODE_DESC, BasicCluster, PressureMeasurementCluster, RelativeHumidityCluster, TemperatureMeasurementCluster, XiaomiPowerConfiguration, XiaomiQuickInitDevice, ) TEMPERATURE_HUMIDITY_DEVICE_TYPE = 0x5F01 XIAOMI_CLUSTER_ID = 0xFFFF class Weather(XiaomiQuickInitDevice): """Xiaomi weather sensor device.""" signature = { # MODELS_INFO: [(LUMI, "lumi.weather")], NODE_DESCRIPTOR: XIAOMI_NODE_DESC, ENDPOINTS: { 1: { PROFILE_ID: zha.PROFILE_ID, DEVICE_TYPE: TEMPERATURE_HUMIDITY_DEVICE_TYPE, INPUT_CLUSTERS: [ BasicCluster.cluster_id, Identify.cluster_id, XIAOMI_CLUSTER_ID, TemperatureMeasurementCluster.cluster_id, PressureMeasurement.cluster_id, RelativeHumidityCluster.cluster_id, ], OUTPUT_CLUSTERS: [ BasicCluster.cluster_id, Groups.cluster_id, XIAOMI_CLUSTER_ID, ], } }, } replacement = { SKIP_CONFIGURATION: True, ENDPOINTS: { 1: { INPUT_CLUSTERS: [ BasicCluster, XiaomiPowerConfiguration, Identify.cluster_id, TemperatureMeasurementCluster, PressureMeasurementCluster, RelativeHumidityCluster, XIAOMI_CLUSTER_ID, ], OUTPUT_CLUSTERS: [ BasicCluster.cluster_id, Groups.cluster_id, XIAOMI_CLUSTER_ID, ], } }, } class Weather2(Weather): """New Xiaomi weather sensor device.""" signature = { # MODELS_INFO: [(LUMI, "lumi.weather")], NODE_DESCRIPTOR: XIAOMI_NODE_DESC, ENDPOINTS: { 1: { PROFILE_ID: zha.PROFILE_ID, DEVICE_TYPE: zha.DeviceType.TEMPERATURE_SENSOR, INPUT_CLUSTERS: [ BasicCluster.cluster_id, Identify.cluster_id, TemperatureMeasurementCluster.cluster_id, PressureMeasurement.cluster_id, RelativeHumidityCluster.cluster_id, XIAOMI_CLUSTER_ID, ], OUTPUT_CLUSTERS: [ BasicCluster.cluster_id, Groups.cluster_id, XIAOMI_CLUSTER_ID, ], } }, }