1 """Support for Prosegur alarm control panels."""
3 from __future__
import annotations
7 from pyprosegur.auth
import Auth
8 from pyprosegur.installation
import Installation, Status
11 AlarmControlPanelEntity,
12 AlarmControlPanelEntityFeature,
13 AlarmControlPanelState,
22 _LOGGER = logging.getLogger(__name__)
25 Status.DISARMED: AlarmControlPanelState.DISARMED,
26 Status.ARMED: AlarmControlPanelState.ARMED_AWAY,
27 Status.PARTIALLY: AlarmControlPanelState.ARMED_HOME,
28 Status.ERROR_PARTIALLY: AlarmControlPanelState.ARMED_HOME,
33 hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
35 """Set up the Prosegur alarm control panel platform."""
37 [
ProsegurAlarm(entry.data[
"contract"], hass.data[DOMAIN][entry.entry_id])],
38 update_before_add=
True,
43 """Representation of a Prosegur alarm status."""
45 _attr_supported_features = (
46 AlarmControlPanelEntityFeature.ARM_AWAY
47 | AlarmControlPanelEntityFeature.ARM_HOME
49 _attr_has_entity_name =
True
51 _installation: Installation
53 def __init__(self, contract: str, auth: Auth) ->
None:
54 """Initialize the Prosegur alarm panel."""
64 name=f
"Contract {contract}",
65 manufacturer=
"Prosegur",
67 identifiers={(DOMAIN, contract)},
68 configuration_url=
"https://smart.prosegur.com",
72 """Update alarm status."""
76 except ConnectionError
as err:
85 """Send disarm command."""
89 """Send arm away command."""
93 """Send arm away command."""
None async_alarm_arm_home(self, str|None code=None)
None __init__(self, str contract, Auth auth)
None async_alarm_disarm(self, str|None code=None)
None async_alarm_arm_away(self, str|None code=None)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)