From e7837c2ef0c3e8dff6907792e60b2eb05a2bda52 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Wed, 1 Apr 2026 11:06:54 +0000 Subject: [PATCH] More platforms --- .../components/tuya/alarm_control_panel.py | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/homeassistant/components/tuya/alarm_control_panel.py b/homeassistant/components/tuya/alarm_control_panel.py index 72b6121a0f2..235806b178e 100644 --- a/homeassistant/components/tuya/alarm_control_panel.py +++ b/homeassistant/components/tuya/alarm_control_panel.py @@ -2,6 +2,7 @@ from __future__ import annotations +from tuya_device_handlers import TUYA_QUIRKS_REGISTRY from tuya_device_handlers.definition.alarm_control_panel import ( TuyaAlarmControlPanelDefinition, get_default_definition, @@ -51,6 +52,25 @@ _TUYA_TO_HA_STATE_MAPPINGS = { } +def _get_quirk_entities( + manager: Manager, device: CustomerDevice +) -> list[TuyaAlarmEntity] | None: + if (quirk := TUYA_QUIRKS_REGISTRY.get_quirk_for_device(device)) is None or ( + entity_quirks := quirk.alarm_control_panel_quirks + ) is None: + return None + return [ + TuyaAlarmEntity( + device, + manager, + AlarmControlPanelEntityDescription(key=entity_quirk.key), + definition, + ) + for entity_quirk in entity_quirks + if (definition := entity_quirk.definition_fn(device)) + ] + + async def async_setup_entry( hass: HomeAssistant, entry: TuyaConfigEntry, @@ -65,6 +85,9 @@ async def async_setup_entry( entities: list[TuyaAlarmEntity] = [] for device_id in device_ids: device = manager.device_map[device_id] + if (quirk_entities := _get_quirk_entities(manager, device)) is not None: + entities.extend(quirk_entities) + continue if (description := ALARM.get(device.category)) and ( definition := get_default_definition(device) ):