1 """Support for Freebox alarms."""
6 AlarmControlPanelEntity,
7 AlarmControlPanelEntityFeature,
8 AlarmControlPanelState,
14 from .const
import DOMAIN, FreeboxHomeCategory
15 from .entity
import FreeboxHomeEntity
16 from .router
import FreeboxRouter
19 "alarm1_arming": AlarmControlPanelState.ARMING,
20 "alarm2_arming": AlarmControlPanelState.ARMING,
21 "alarm1_armed": AlarmControlPanelState.ARMED_AWAY,
22 "alarm2_armed": AlarmControlPanelState.ARMED_HOME,
23 "alarm1_alert_timer": AlarmControlPanelState.TRIGGERED,
24 "alarm2_alert_timer": AlarmControlPanelState.TRIGGERED,
25 "alert": AlarmControlPanelState.TRIGGERED,
26 "idle": AlarmControlPanelState.DISARMED,
31 hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
33 """Set up alarm panel."""
34 router: FreeboxRouter = hass.data[DOMAIN][entry.unique_id]
39 for node
in router.home_devices.values()
40 if node[
"category"] == FreeboxHomeCategory.ALARM
47 """Representation of a Freebox alarm."""
49 _attr_code_arm_required =
False
52 self, hass: HomeAssistant, router: FreeboxRouter, node: dict[str, Any]
54 """Initialize an alarm."""
59 node[
"type"][
"endpoints"],
"slot",
"trigger"
62 node[
"type"][
"endpoints"],
"slot",
"alarm1"
65 node[
"type"][
"endpoints"],
"slot",
"alarm2"
68 node[
"type"][
"endpoints"],
"slot",
"off"
71 node[
"type"][
"endpoints"],
"signal",
"state"
75 AlarmControlPanelEntityFeature.ARM_AWAY
76 | (AlarmControlPanelEntityFeature.ARM_HOME
if self.
_command_arm_home_command_arm_home
else 0)
77 | AlarmControlPanelEntityFeature.TRIGGER
81 """Send disarm command."""
85 """Send arm away command."""
89 """Send arm home command."""
93 """Send alarm trigger command."""
None async_alarm_disarm(self, str|None code=None)
None async_alarm_arm_away(self, str|None code=None)
None __init__(self, HomeAssistant hass, FreeboxRouter router, dict[str, Any] node)
None async_alarm_trigger(self, str|None code=None)
None async_alarm_arm_home(self, str|None code=None)
Any|None get_home_endpoint_value(self, Any command_id)
int|None get_command_id(self, nodes, str ep_type, str name)
bool set_home_endpoint_value(self, int|None command_id, bool|None value=None)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)