"""Device handler for centralite 3460L.""" # pylint disable=C0103 from zigpy.profiles import zha from zigpy.quirks import CustomDevice from zigpy.zcl.clusters.general import ( Basic, Identify, OnOff, OnOffConfiguration, Ota, PollControl, ) from zigpy.zcl.clusters.homeautomation import Diagnostic from zigpy.zcl.clusters.measurement import TemperatureMeasurement from zhaquirks import PowerConfigurationCluster from zhaquirks.centralite import CENTRALITE from zhaquirks.const import ( BUTTON_1, COMMAND, COMMAND_OFF, COMMAND_ON, DEVICE_TYPE, ENDPOINTS, INPUT_CLUSTERS, MODELS_INFO, OUTPUT_CLUSTERS, PROFILE_ID, SHORT_PRESS, SHORT_RELEASE, ) class CustomPowerConfigurationCluster(PowerConfigurationCluster): """Custom PowerConfigurationCluster.""" MIN_VOLTS = 2.1 MAX_VOLTS = 3.0 class CentraLite3460L(CustomDevice): """Custom device representing centralite 3460L.""" signature = { # MODELS_INFO: [(CENTRALITE, "3460-L")], ENDPOINTS: { 1: { PROFILE_ID: zha.PROFILE_ID, DEVICE_TYPE: zha.DeviceType.REMOTE_CONTROL, INPUT_CLUSTERS: [ Basic.cluster_id, CustomPowerConfigurationCluster.cluster_id, Identify.cluster_id, OnOffConfiguration.cluster_id, PollControl.cluster_id, TemperatureMeasurement.cluster_id, Diagnostic.cluster_id, ], OUTPUT_CLUSTERS: [ Identify.cluster_id, OnOff.cluster_id, Ota.cluster_id, ], } }, } replacement = { ENDPOINTS: { 1: { INPUT_CLUSTERS: [ Basic.cluster_id, CustomPowerConfigurationCluster, Identify.cluster_id, OnOffConfiguration.cluster_id, PollControl.cluster_id, TemperatureMeasurement.cluster_id, Diagnostic.cluster_id, ], OUTPUT_CLUSTERS: [ Identify.cluster_id, OnOff.cluster_id, Ota.cluster_id, ], } } } device_automation_triggers = { (SHORT_PRESS, BUTTON_1): {COMMAND: COMMAND_ON}, (SHORT_RELEASE, BUTTON_1): {COMMAND: COMMAND_OFF}, }