Home Assistant Unofficial Reference 2024.12.1
alarm_control_panel.py
Go to the documentation of this file.
1 """Demo platform that has two fake alarm control panels."""
2 
3 from __future__ import annotations
4 
5 import datetime
6 
7 from homeassistant.components.alarm_control_panel import AlarmControlPanelState
9 from homeassistant.config_entries import ConfigEntry
10 from homeassistant.const import CONF_ARMING_TIME, CONF_DELAY_TIME, CONF_TRIGGER_TIME
11 from homeassistant.core import HomeAssistant
12 from homeassistant.helpers.entity_platform import AddEntitiesCallback
13 
14 
16  hass: HomeAssistant,
17  config_entry: ConfigEntry,
18  async_add_entities: AddEntitiesCallback,
19 ) -> None:
20  """Set up the Demo config entry."""
22  [
24  hass,
25  "Security",
26  "demo_alarm_control_panel",
27  "1234",
28  None,
29  True,
30  False,
31  {
32  AlarmControlPanelState.ARMED_AWAY: {
33  CONF_ARMING_TIME: datetime.timedelta(seconds=5),
34  CONF_DELAY_TIME: datetime.timedelta(seconds=0),
35  CONF_TRIGGER_TIME: datetime.timedelta(seconds=10),
36  },
37  AlarmControlPanelState.ARMED_HOME: {
38  CONF_ARMING_TIME: datetime.timedelta(seconds=5),
39  CONF_DELAY_TIME: datetime.timedelta(seconds=0),
40  CONF_TRIGGER_TIME: datetime.timedelta(seconds=10),
41  },
42  AlarmControlPanelState.ARMED_NIGHT: {
43  CONF_ARMING_TIME: datetime.timedelta(seconds=5),
44  CONF_DELAY_TIME: datetime.timedelta(seconds=0),
45  CONF_TRIGGER_TIME: datetime.timedelta(seconds=10),
46  },
47  AlarmControlPanelState.ARMED_VACATION: {
48  CONF_ARMING_TIME: datetime.timedelta(seconds=5),
49  CONF_DELAY_TIME: datetime.timedelta(seconds=0),
50  CONF_TRIGGER_TIME: datetime.timedelta(seconds=10),
51  },
52  AlarmControlPanelState.DISARMED: {
53  CONF_DELAY_TIME: datetime.timedelta(seconds=0),
54  CONF_TRIGGER_TIME: datetime.timedelta(seconds=10),
55  },
56  AlarmControlPanelState.ARMED_CUSTOM_BYPASS: {
57  CONF_ARMING_TIME: datetime.timedelta(seconds=5),
58  CONF_DELAY_TIME: datetime.timedelta(seconds=0),
59  CONF_TRIGGER_TIME: datetime.timedelta(seconds=10),
60  },
61  AlarmControlPanelState.TRIGGERED: {
62  CONF_ARMING_TIME: datetime.timedelta(seconds=5)
63  },
64  },
65  )
66  ]
67  )
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)