"""Device handler for smartthings motionV4 sensors.""" from zigpy.profiles import zha from zigpy.quirks import CustomDevice from zigpy.zcl.clusters.general import Basic, BinaryInput, Identify, Ota, PollControl 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.smartthings import SMART_THINGS class SmartThingsMotion(CustomDevice): """SmartThingsMotionV4 or V5.""" signature = { # MODELS_INFO: [(SMART_THINGS, "motionv4"), (SMART_THINGS, "motionv5")], ENDPOINTS: { 1: { PROFILE_ID: zha.PROFILE_ID, DEVICE_TYPE: zha.DeviceType.IAS_ZONE, INPUT_CLUSTERS: [ Basic.cluster_id, PowerConfigurationCluster.cluster_id, Identify.cluster_id, BinaryInput.cluster_id, PollControl.cluster_id, TemperatureMeasurement.cluster_id, IasZone.cluster_id, ], OUTPUT_CLUSTERS: [Ota.cluster_id], } }, } replacement = { ENDPOINTS: { 1: { INPUT_CLUSTERS: [ Basic.cluster_id, PowerConfigurationCluster, Identify.cluster_id, BinaryInput.cluster_id, PollControl.cluster_id, TemperatureMeasurement.cluster_id, IasZone.cluster_id, ], OUTPUT_CLUSTERS: [Ota.cluster_id], } } }