"""Device handler for GreatStar iMagic 1116-S sensor.""" from zigpy.profiles import zha from zigpy.quirks import CustomDevice from zigpy.zcl.clusters.general import Basic, 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.const import ( DEVICE_TYPE, ENDPOINTS, INPUT_CLUSTERS, MODELS_INFO, OUTPUT_CLUSTERS, PROFILE_ID, ) from zhaquirks.imagic import IMAGIC MANUFACTURER_SPECIFIC_CLUSTER_ID = 0xFC01 # decimal = 64513 MANUFACTURER_SPECIFIC_CLUSTER_ID_2 = 0xFC02 # decimal = 64514 class iMagic1116(CustomDevice): """Custom device representing iMagic 1116-S sensor.""" signature = { # MODELS_INFO: [(IMAGIC, "1116-S")], ENDPOINTS: { 1: { PROFILE_ID: zha.PROFILE_ID, DEVICE_TYPE: zha.DeviceType.IAS_ZONE, INPUT_CLUSTERS: [ Basic.cluster_id, PowerConfigurationCluster.cluster_id, Identify.cluster_id, MANUFACTURER_SPECIFIC_CLUSTER_ID, MANUFACTURER_SPECIFIC_CLUSTER_ID_2, PollControl.cluster_id, TemperatureMeasurement.cluster_id, IasZone.cluster_id, Diagnostic.cluster_id, ], OUTPUT_CLUSTERS: [Ota.cluster_id, Identify.cluster_id], }, }, } replacement = { ENDPOINTS: { 1: { INPUT_CLUSTERS: [ Basic.cluster_id, PowerConfigurationCluster, Identify.cluster_id, MANUFACTURER_SPECIFIC_CLUSTER_ID, MANUFACTURER_SPECIFIC_CLUSTER_ID_2, PollControl.cluster_id, TemperatureMeasurement.cluster_id, IasZone.cluster_id, Diagnostic.cluster_id, ], OUTPUT_CLUSTERS: [Ota.cluster_id, Identify.cluster_id], }, } }