"""Device handler for centralite 3130.""" from zigpy.profiles import zha from zigpy.quirks import CustomDevice from zigpy.zcl.clusters.general import ( Basic, Identify, LevelControl, OnOff, 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 ( COMMAND, COMMAND_MOVE, COMMAND_MOVE_ON_OFF, COMMAND_OFF, COMMAND_ON, DEVICE_TYPE, DIM_DOWN, DIM_UP, ENDPOINTS, INPUT_CLUSTERS, MODELS_INFO, OUTPUT_CLUSTERS, PROFILE_ID, SHORT_PRESS, TURN_OFF, TURN_ON, ) from zhaquirks.osram import OSRAM class CustomPowerConfigurationCluster(PowerConfigurationCluster): """Custom PowerConfigurationCluster.""" MIN_VOLTS = 2.1 MAX_VOLTS = 3.0 class CentraLite3130(CustomDevice): """Custom device representing centralite 3130.""" signature = { # MODELS_INFO: [(OSRAM, "LIGHTIFY Dimming Switch"), (CENTRALITE, "3130")], ENDPOINTS: { 1: { PROFILE_ID: zha.PROFILE_ID, DEVICE_TYPE: zha.DeviceType.LEVEL_CONTROL_SWITCH, INPUT_CLUSTERS: [ Basic.cluster_id, CustomPowerConfigurationCluster.cluster_id, Identify.cluster_id, PollControl.cluster_id, TemperatureMeasurement.cluster_id, Diagnostic.cluster_id, ], OUTPUT_CLUSTERS: [ Identify.cluster_id, OnOff.cluster_id, LevelControl.cluster_id, Ota.cluster_id, ], } }, } replacement = { ENDPOINTS: { 1: { INPUT_CLUSTERS: [ Basic.cluster_id, CustomPowerConfigurationCluster, Identify.cluster_id, PollControl.cluster_id, Diagnostic.cluster_id, ], OUTPUT_CLUSTERS: [ Identify.cluster_id, OnOff.cluster_id, LevelControl.cluster_id, Ota.cluster_id, ], } } } device_automation_triggers = { (SHORT_PRESS, TURN_ON): {COMMAND: COMMAND_ON}, (SHORT_PRESS, TURN_OFF): {COMMAND: COMMAND_OFF}, (SHORT_PRESS, DIM_UP): {COMMAND: COMMAND_MOVE_ON_OFF}, (SHORT_PRESS, DIM_DOWN): {COMMAND: COMMAND_MOVE}, }