"""Centralite 3321S quirk.""" # pylint disable=C0103 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.centralite import CENTRALITE, CentraLiteAccelCluster from zhaquirks.const import ( DEVICE_TYPE, ENDPOINTS, INPUT_CLUSTERS, MODELS_INFO, OUTPUT_CLUSTERS, PROFILE_ID, ) from zhaquirks.samjin import SAMJIN MANUFACTURER_SPECIFIC_CLUSTER_ID = 0xFC0F # decimal = 64527 MANUFACTURER_SPECIFIC_PROFILE_ID = 0xC2DF # decimal = 49887 class CentraLite3321S(CustomDevice): """CentraLite3321S custom device implementation.""" signature = { # MODELS_INFO: [ (CENTRALITE, "3320"), (CENTRALITE, "3321-S"), (CENTRALITE, "3321"), (SAMJIN, "multi"), ], 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, CentraLiteAccelCluster.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, Diagnostic.cluster_id, MANUFACTURER_SPECIFIC_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, CentraLiteAccelCluster, ], OUTPUT_CLUSTERS: [Ota.cluster_id], }, 2: { INPUT_CLUSTERS: [ Basic.cluster_id, Identify.cluster_id, Diagnostic.cluster_id, MANUFACTURER_SPECIFIC_CLUSTER_ID, ], OUTPUT_CLUSTERS: [Identify.cluster_id], }, } }