1 """Support for Abode Security System alarm control panels."""
3 from __future__
import annotations
5 from jaraco.abode.devices.alarm
import Alarm
8 AlarmControlPanelEntity,
9 AlarmControlPanelEntityFeature,
10 AlarmControlPanelState,
16 from .
import AbodeSystem
17 from .const
import DOMAIN
18 from .entity
import AbodeDevice
22 hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
24 """Set up Abode alarm control panel device."""
25 data: AbodeSystem = hass.data[DOMAIN]
27 [
AbodeAlarm(data, await hass.async_add_executor_job(data.abode.get_alarm))]
32 """An alarm_control_panel implementation for Abode."""
35 _attr_code_arm_required =
False
36 _attr_supported_features = (
37 AlarmControlPanelEntityFeature.ARM_HOME
38 | AlarmControlPanelEntityFeature.ARM_AWAY
44 """Return the state of the device."""
45 if self.
_device_device.is_standby:
46 return AlarmControlPanelState.DISARMED
48 return AlarmControlPanelState.ARMED_AWAY
50 return AlarmControlPanelState.ARMED_HOME
54 """Send disarm command."""
55 self.
_device_device.set_standby()
58 """Send arm home command."""
62 """Send arm away command."""
67 """Return the state attributes."""
69 "device_id": self.
_device_device.id,
70 "battery_backup": self.
_device_device.battery,
71 "cellular_backup": self.
_device_device.is_cellular,
None alarm_disarm(self, str|None code=None)
None alarm_arm_away(self, str|None code=None)
dict[str, str] extra_state_attributes(self)
AlarmControlPanelState|None alarm_state(self)
None alarm_arm_home(self, str|None code=None)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)