From 7ba234a7addf0fd9e91ebdaa598e35828b522364 Mon Sep 17 00:00:00 2001 From: Aaron Bach Date: Mon, 28 Nov 2022 02:51:30 -0700 Subject: [PATCH] Add missing SimpliSafe alarm states (#82813) --- .../components/simplisafe/alarm_control_panel.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/simplisafe/alarm_control_panel.py b/homeassistant/components/simplisafe/alarm_control_panel.py index dc670393f18..ef3e09bc70f 100644 --- a/homeassistant/components/simplisafe/alarm_control_panel.py +++ b/homeassistant/components/simplisafe/alarm_control_panel.py @@ -15,7 +15,10 @@ from simplipy.websocket import ( EVENT_AWAY_EXIT_DELAY_BY_REMOTE, EVENT_DISARMED_BY_MASTER_PIN, EVENT_DISARMED_BY_REMOTE, + EVENT_ENTRY_DELAY, EVENT_HOME_EXIT_DELAY, + EVENT_SECRET_ALERT_TRIGGERED, + EVENT_USER_INITIATED_TEST, WebsocketEvent, ) @@ -66,9 +69,12 @@ STATE_MAP_FROM_REST_API = { SystemStates.ALARM_COUNT: STATE_ALARM_PENDING, SystemStates.AWAY: STATE_ALARM_ARMED_AWAY, SystemStates.AWAY_COUNT: STATE_ALARM_ARMING, + SystemStates.ENTRY_DELAY: STATE_ALARM_PENDING, SystemStates.EXIT_DELAY: STATE_ALARM_ARMING, SystemStates.HOME: STATE_ALARM_ARMED_HOME, + SystemStates.HOME_COUNT: STATE_ALARM_ARMING, SystemStates.OFF: STATE_ALARM_DISARMED, + SystemStates.TEST: STATE_ALARM_DISARMED, } STATE_MAP_FROM_WEBSOCKET_EVENT = { @@ -82,7 +88,10 @@ STATE_MAP_FROM_WEBSOCKET_EVENT = { EVENT_AWAY_EXIT_DELAY_BY_REMOTE: STATE_ALARM_ARMING, EVENT_DISARMED_BY_MASTER_PIN: STATE_ALARM_DISARMED, EVENT_DISARMED_BY_REMOTE: STATE_ALARM_DISARMED, + EVENT_ENTRY_DELAY: STATE_ALARM_PENDING, 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 = ( @@ -156,13 +165,11 @@ class SimpliSafeAlarm(SimpliSafeEntity, AlarmControlPanelEntity): """Set the state based on the latest REST API data.""" if self._system.alarm_going_off: 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): self._attr_state = state self.async_reset_error_count() 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() async def async_alarm_disarm(self, code: str | None = None) -> None: