"""Device handler for centralite 3300.""" from zigpy.profiles import zha from zigpy.quirks import CustomDevice from zigpy.zcl.clusters.general import Basic, BinaryInput, Identify, Ota, PollControl from zigpy.zcl.clusters.homeautomation import Diagnostic from zigpy.zcl.clusters.measurement import TemperatureMeasurement from zigpy.zcl.clusters.security import IasZone from zhaquirks import PowerConfigurationCluster from zhaquirks.centralite import CENTRALITE from zhaquirks.const import ( DEVICE_TYPE, ENDPOINTS, INPUT_CLUSTERS, MODELS_INFO, OUTPUT_CLUSTERS, PROFILE_ID, ) MANUFACTURER_SPECIFIC_PROFILE_ID = 0xC2DF # decimal = 49887 class CentraLite3300S(CustomDevice): """Custom device representing centralite 3300.""" signature = { # MODELS_INFO: [ (CENTRALITE, "3300"), (CENTRALITE, "3300-S"), (CENTRALITE, "3323-G"), ], ENDPOINTS: { 1: { PROFILE_ID: zha.PROFILE_ID, DEVICE_TYPE: zha.DeviceType.IAS_ZONE, INPUT_CLUSTERS: [ Basic.cluster_id, PowerConfigurationCluster.cluster_id, Identify.cluster_id, PollControl.cluster_id, TemperatureMeasurement.cluster_id, IasZone.cluster_id, Diagnostic.cluster_id, ], OUTPUT_CLUSTERS: [Ota.cluster_id], }, # 2: { PROFILE_ID: MANUFACTURER_SPECIFIC_PROFILE_ID, DEVICE_TYPE: zha.DeviceType.SIMPLE_SENSOR, INPUT_CLUSTERS: [ Basic.cluster_id, PowerConfigurationCluster.cluster_id, Identify.cluster_id, BinaryInput.cluster_id, Diagnostic.cluster_id, ], OUTPUT_CLUSTERS: [Identify.cluster_id], }, }, } replacement = { ENDPOINTS: { 1: { INPUT_CLUSTERS: [ Basic.cluster_id, PowerConfigurationCluster, Identify.cluster_id, PollControl.cluster_id, TemperatureMeasurement.cluster_id, IasZone.cluster_id, Diagnostic.cluster_id, ], OUTPUT_CLUSTERS: [Ota.cluster_id], }, 2: { INPUT_CLUSTERS: [ Basic.cluster_id, Identify.cluster_id, Diagnostic.cluster_id, ], OUTPUT_CLUSTERS: [Identify.cluster_id], }, } }