From 1e3f7ad9a4ab1cd2de4efd557de768f93ed3e524 Mon Sep 17 00:00:00 2001 From: Tobie Booth Date: Fri, 5 Aug 2016 14:05:43 -0500 Subject: [PATCH] Return to previous alarm state after trigger (#2580) --- homeassistant/components/alarm_control_panel/manual.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/alarm_control_panel/manual.py b/homeassistant/components/alarm_control_panel/manual.py index 3e904601638..a71edb68ebd 100644 --- a/homeassistant/components/alarm_control_panel/manual.py +++ b/homeassistant/components/alarm_control_panel/manual.py @@ -40,7 +40,7 @@ class ManualAlarm(alarm.AlarmControlPanel): When armed, will be pending for 'pending_time', after that armed. When triggered, will be pending for 'trigger_time'. After that will be - triggered for 'trigger_time', after that we return to disarmed. + triggered for 'trigger_time', after that we return to the previous state. """ def __init__(self, hass, name, code, pending_time, trigger_time): @@ -51,6 +51,7 @@ class ManualAlarm(alarm.AlarmControlPanel): self._code = str(code) if code else None self._pending_time = datetime.timedelta(seconds=pending_time) self._trigger_time = datetime.timedelta(seconds=trigger_time) + self._pre_trigger_state = self._state self._state_ts = None @property @@ -77,7 +78,7 @@ class ManualAlarm(alarm.AlarmControlPanel): return STATE_ALARM_PENDING elif (self._state_ts + self._pending_time + self._trigger_time) < dt_util.utcnow(): - return STATE_ALARM_DISARMED + return self._pre_trigger_state return self._state @@ -125,6 +126,7 @@ class ManualAlarm(alarm.AlarmControlPanel): def alarm_trigger(self, code=None): """Send alarm trigger command. No code needed.""" + self._pre_trigger_state = self._state self._state = STATE_ALARM_TRIGGERED self._state_ts = dt_util.utcnow() self.update_ha_state()