mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 11:17:21 +00:00
Add missing SimpliSafe alarm states (#82813)
This commit is contained in:
parent
78ba1cbb32
commit
688b643ed6
@ -15,7 +15,10 @@ from simplipy.websocket import (
|
|||||||
EVENT_AWAY_EXIT_DELAY_BY_REMOTE,
|
EVENT_AWAY_EXIT_DELAY_BY_REMOTE,
|
||||||
EVENT_DISARMED_BY_MASTER_PIN,
|
EVENT_DISARMED_BY_MASTER_PIN,
|
||||||
EVENT_DISARMED_BY_REMOTE,
|
EVENT_DISARMED_BY_REMOTE,
|
||||||
|
EVENT_ENTRY_DELAY,
|
||||||
EVENT_HOME_EXIT_DELAY,
|
EVENT_HOME_EXIT_DELAY,
|
||||||
|
EVENT_SECRET_ALERT_TRIGGERED,
|
||||||
|
EVENT_USER_INITIATED_TEST,
|
||||||
WebsocketEvent,
|
WebsocketEvent,
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -66,9 +69,12 @@ STATE_MAP_FROM_REST_API = {
|
|||||||
SystemStates.ALARM_COUNT: STATE_ALARM_PENDING,
|
SystemStates.ALARM_COUNT: STATE_ALARM_PENDING,
|
||||||
SystemStates.AWAY: STATE_ALARM_ARMED_AWAY,
|
SystemStates.AWAY: STATE_ALARM_ARMED_AWAY,
|
||||||
SystemStates.AWAY_COUNT: STATE_ALARM_ARMING,
|
SystemStates.AWAY_COUNT: STATE_ALARM_ARMING,
|
||||||
|
SystemStates.ENTRY_DELAY: STATE_ALARM_PENDING,
|
||||||
SystemStates.EXIT_DELAY: STATE_ALARM_ARMING,
|
SystemStates.EXIT_DELAY: STATE_ALARM_ARMING,
|
||||||
SystemStates.HOME: STATE_ALARM_ARMED_HOME,
|
SystemStates.HOME: STATE_ALARM_ARMED_HOME,
|
||||||
|
SystemStates.HOME_COUNT: STATE_ALARM_ARMING,
|
||||||
SystemStates.OFF: STATE_ALARM_DISARMED,
|
SystemStates.OFF: STATE_ALARM_DISARMED,
|
||||||
|
SystemStates.TEST: STATE_ALARM_DISARMED,
|
||||||
}
|
}
|
||||||
|
|
||||||
STATE_MAP_FROM_WEBSOCKET_EVENT = {
|
STATE_MAP_FROM_WEBSOCKET_EVENT = {
|
||||||
@ -82,7 +88,10 @@ STATE_MAP_FROM_WEBSOCKET_EVENT = {
|
|||||||
EVENT_AWAY_EXIT_DELAY_BY_REMOTE: STATE_ALARM_ARMING,
|
EVENT_AWAY_EXIT_DELAY_BY_REMOTE: STATE_ALARM_ARMING,
|
||||||
EVENT_DISARMED_BY_MASTER_PIN: STATE_ALARM_DISARMED,
|
EVENT_DISARMED_BY_MASTER_PIN: STATE_ALARM_DISARMED,
|
||||||
EVENT_DISARMED_BY_REMOTE: STATE_ALARM_DISARMED,
|
EVENT_DISARMED_BY_REMOTE: STATE_ALARM_DISARMED,
|
||||||
|
EVENT_ENTRY_DELAY: STATE_ALARM_PENDING,
|
||||||
EVENT_HOME_EXIT_DELAY: STATE_ALARM_ARMING,
|
EVENT_HOME_EXIT_DELAY: STATE_ALARM_ARMING,
|
||||||
|
EVENT_SECRET_ALERT_TRIGGERED: STATE_ALARM_TRIGGERED,
|
||||||
|
EVENT_USER_INITIATED_TEST: STATE_ALARM_DISARMED,
|
||||||
}
|
}
|
||||||
|
|
||||||
WEBSOCKET_EVENTS_TO_LISTEN_FOR = (
|
WEBSOCKET_EVENTS_TO_LISTEN_FOR = (
|
||||||
@ -156,13 +165,11 @@ class SimpliSafeAlarm(SimpliSafeEntity, AlarmControlPanelEntity):
|
|||||||
"""Set the state based on the latest REST API data."""
|
"""Set the state based on the latest REST API data."""
|
||||||
if self._system.alarm_going_off:
|
if self._system.alarm_going_off:
|
||||||
self._attr_state = STATE_ALARM_TRIGGERED
|
self._attr_state = STATE_ALARM_TRIGGERED
|
||||||
elif self._system.state == SystemStates.ERROR:
|
|
||||||
self.async_increment_error_count()
|
|
||||||
elif state := STATE_MAP_FROM_REST_API.get(self._system.state):
|
elif state := STATE_MAP_FROM_REST_API.get(self._system.state):
|
||||||
self._attr_state = state
|
self._attr_state = state
|
||||||
self.async_reset_error_count()
|
self.async_reset_error_count()
|
||||||
else:
|
else:
|
||||||
LOGGER.error("Unknown system state (REST API): %s", self._system.state)
|
LOGGER.warning("Unexpected system state (REST API): %s", self._system.state)
|
||||||
self.async_increment_error_count()
|
self.async_increment_error_count()
|
||||||
|
|
||||||
async def async_alarm_disarm(self, code: str | None = None) -> None:
|
async def async_alarm_disarm(self, code: str | None = None) -> None:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user