"""Visonic MCT340 device.""" 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, ) OSRAM_DEVICE = 0x0810 # 2064 base 10 OSRAM_CLUSTER = 0xFD00 # 64768 base 10 class CustomPowerConfigurationCluster(PowerConfigurationCluster): """Custom PowerConfigurationCluster.""" MIN_VOLTS = 2.1 MAX_VOLTS = 3.0 class MCT340(CustomDevice): """Visonic MCT340 device.""" signature = { # MODELS_INFO: [("Visonic", "MCT-340 E"), ("Visonic", "MCT-340 SMA")], ENDPOINTS: { 1: { PROFILE_ID: zha.PROFILE_ID, DEVICE_TYPE: zha.DeviceType.IAS_ZONE, INPUT_CLUSTERS: [ Basic.cluster_id, CustomPowerConfigurationCluster.cluster_id, Identify.cluster_id, TemperatureMeasurement.cluster_id, IasZone.cluster_id, PollControl.cluster_id, Diagnostic.cluster_id, ], OUTPUT_CLUSTERS: [Ota.cluster_id], } }, } replacement = { ENDPOINTS: { 1: { PROFILE_ID: zha.PROFILE_ID, INPUT_CLUSTERS: [ Basic.cluster_id, CustomPowerConfigurationCluster, Identify.cluster_id, TemperatureMeasurement.cluster_id, IasZone.cluster_id, PollControl.cluster_id, Diagnostic.cluster_id, ], OUTPUT_CLUSTERS: [Ota.cluster_id], } } }