1 """Interfaces with iAlarm control panels."""
3 from __future__
import annotations
6 AlarmControlPanelEntity,
7 AlarmControlPanelEntityFeature,
8 AlarmControlPanelState,
16 from .const
import DATA_COORDINATOR, DOMAIN
17 from .coordinator
import IAlarmDataUpdateCoordinator
21 hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
23 """Set up a iAlarm alarm control panel based on a config entry."""
24 coordinator: IAlarmDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id][
31 CoordinatorEntity[IAlarmDataUpdateCoordinator], AlarmControlPanelEntity
33 """Representation of an iAlarm device."""
35 _attr_has_entity_name =
True
37 _attr_supported_features = (
38 AlarmControlPanelEntityFeature.ARM_HOME
39 | AlarmControlPanelEntityFeature.ARM_AWAY
41 _attr_code_arm_required =
False
43 def __init__(self, coordinator: IAlarmDataUpdateCoordinator) ->
None:
44 """Create the entity with a DataUpdateCoordinator."""
47 identifiers={(DOMAIN, coordinator.mac)},
48 manufacturer=
"Antifurto365 - Meian",
55 """Return the state of the device."""
56 return self.coordinator.state
59 """Send disarm command."""
60 self.coordinator.ialarm.disarm()
63 """Send arm home command."""
64 self.coordinator.ialarm.arm_stay()
67 """Send arm away command."""
68 self.coordinator.ialarm.arm_away()
None __init__(self, IAlarmDataUpdateCoordinator coordinator)
AlarmControlPanelState|None alarm_state(self)
None alarm_arm_away(self, str|None code=None)
None alarm_disarm(self, str|None code=None)
None alarm_arm_home(self, str|None code=None)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)