diff --git a/zhaquirks/tuya/tuya_smoke.py b/zhaquirks/tuya/tuya_smoke.py index 9818e04af7..89b9da0262 100644 --- a/zhaquirks/tuya/tuya_smoke.py +++ b/zhaquirks/tuya/tuya_smoke.py @@ -1,6 +1,6 @@ """Smoke Sensor.""" -from zigpy.quirks.v2 import EntityType, QuirkBuilder +from zigpy.quirks.v2 import EntityPlatform, EntityType, QuirkBuilder from zigpy.quirks.v2.homeassistant.binary_sensor import BinarySensorDeviceClass import zigpy.types as t from zigpy.zcl.clusters.general import OnOff, Time @@ -17,6 +17,22 @@ from zhaquirks.tuya.builder import TuyaIasFire, TuyaQuirkBuilder +class TuyaBatteryState(t.enum8): + """Tuya battery state enum.""" + + Low = 0x00 + Medium = 0x01 + High = 0x02 + + +class TuyaSelfCheckResult(t.enum8): + """Tuya self check result enum.""" + + Checking = 0x00 + CheckSuccess = 0x01 + CheckFailure = 0x02 + + class TuyaSensitivityMode(t.enum8): """Tuya sensitivity mode enum.""" @@ -168,3 +184,40 @@ def _update_attribute(self, attrid, value): .skip_configuration() .add_to_registry() ) + + +# MOES HS2SA-1 Photoelectric Smoke Alarm + +( + TuyaQuirkBuilder("_TZE284_vawy74yh", "TS0601") + .applies_to("_TZE200_ai4rqhky", "TS0601") # From z2m + .applies_to("_TZE284_ai4rqhky", "TS0601") # From z2m + .tuya_smoke(dp_id=1) + .tuya_enum( + dp_id=9, + attribute_name="self_test", + enum_class=TuyaSelfCheckResult, + entity_platform=EntityPlatform.SENSOR, + entity_type=EntityType.DIAGNOSTIC, + translation_key="self_test", + fallback_name="Self test result", + ) + .tuya_enum( + dp_id=14, + attribute_name="battery_state", + enum_class=TuyaBatteryState, + entity_platform=EntityPlatform.SENSOR, + entity_type=EntityType.DIAGNOSTIC, + translation_key="battery_state", + fallback_name="Battery state", + ) + .tuya_battery(dp_id=15, battery_type=BatterySize.CR123A, battery_qty=1) + .tuya_switch( + dp_id=16, + attribute_name="silence_alarm", + translation_key="silence_alarm", + fallback_name="Silence alarm", + ) + .skip_configuration() + .add_to_registry() +)