Alrighty, I tested my alarm trigger this evening. Everything worked as expected except for one minor detail – out of a desire to share, I’ll detail my findings here.
Here’s a cross-section of my SimpliSafe-related HASS logs during the test:
2020-04-13 21:13:12 DEBUG (MainThread) [homeassistant.components.simplisafe] New websocket event: WebsocketEvent(info='Alarm: Panic (Keypad) Kitchen', system_id=xxxxxx, timestamp=datetime.datetime(2020, 4, 14, 3, 13, 7, tzinfo=<UTC>), event_type='alarm_triggered', changed_by='', sensor_name='', sensor_serial='002539c1', sensor_type=<EntityTypes.keypad: 1>)
2020-04-13 21:13:12 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=alarm_control_panel.simplisafe, old_state=<state alarm_control_panel.simplisafe=disarmed; code_format=None, changed_by=None, code_arm_required=True, last_event_info=System Disarmed by Remote, last_event_sensor_name=, last_event_sensor_type=0, last_event_timestamp=1586801083, system_id=xxxxxx, alarm_duration=300, alarm_volume=high, battery_backup_power_level=5710, chime_volume=off, entry_delay_away=30, entry_delay_home=30, exit_delay_away=60, exit_delay_home=0, gsm_strength=-67, light=True, rf_jamming=False, voice_prompt_volume=off, wall_power_level=6375, wifi_strength=-59, friendly_name=123 Main Street Alarm Control Panel, supported_features=3 @ 2020-04-13T21:12:13.767037-06:00>, new_state=<state alarm_control_panel.simplisafe=triggered; code_format=None, changed_by=, code_arm_required=True, last_event_info=Alarm: Panic (Keypad) Kitchen, last_event_sensor_name=, last_event_sensor_type=keypad, last_event_timestamp=2020-04-13T21:13:07-06:00, system_id=xxxxxx, alarm_duration=300, alarm_volume=high, battery_backup_power_level=5710, chime_volume=off, entry_delay_away=30, entry_delay_home=30, exit_delay_away=60, exit_delay_home=0, gsm_strength=-67, light=True, rf_jamming=False, voice_prompt_volume=off, wall_power_level=6375, wifi_strength=-59, friendly_name=123 Main Street Alarm Control Panel, supported_features=3 @ 2020-04-13T21:13:12.075157-06:00>>
2020-04-13 21:13:16 DEBUG (MainThread) [homeassistant.components.simplisafe] New system notifications: {SystemNotification(notification_id='978cc8e4-bd9e-41e0-a583-ed2acbdef6dd', text='Keypad Panic "Kitchen" triggered', category='alarm', code='1000', timestamp=datetime.datetime(2020, 4, 14, 3, 13, 7, tzinfo=<UTC>), link='', link_label='')}
2020-04-13 21:13:16 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event SIMPLISAFE_NOTIFICATION[L]: category=alarm, code=1000, message=Keypad Panic "Kitchen" triggered, timestamp=2020-04-13T21:13:07-06:00>
2020-04-13 21:13:16 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=alarm_control_panel.simplisafe, old_state=<state alarm_control_panel.simplisafe=triggered; code_format=None, changed_by=, code_arm_required=True, last_event_info=Alarm: Panic (Keypad) Kitchen, last_event_sensor_name=, last_event_sensor_type=keypad, last_event_timestamp=2020-04-13T21:13:07-06:00, system_id=xxxxxx, alarm_duration=300, alarm_volume=high, battery_backup_power_level=5710, chime_volume=off, entry_delay_away=30, entry_delay_home=30, exit_delay_away=60, exit_delay_home=0, gsm_strength=-67, light=True, rf_jamming=False, voice_prompt_volume=off, wall_power_level=6375, wifi_strength=-59, friendly_name=123 Main Street Alarm Control Panel, supported_features=3 @ 2020-04-13T21:13:12.075157-06:00>, new_state=<state alarm_control_panel.simplisafe=unknown; code_format=None, changed_by=, code_arm_required=True, last_event_info=Alarm: Panic (Keypad) Kitchen, last_event_sensor_name=, last_event_sensor_type=keypad, last_event_timestamp=2020-04-13T21:13:07-06:00, system_id=xxxxxx, alarm_duration=300, alarm_volume=low, battery_backup_power_level=5710, chime_volume=off, entry_delay_away=30, entry_delay_home=30, exit_delay_away=60, exit_delay_home=0, gsm_strength=-67, light=True, rf_jamming=False, voice_prompt_volume=off, wall_power_level=6375, wifi_strength=-59, friendly_name=123 Main Street Alarm Control Panel, supported_features=3 @ 2020-04-13T21:13:16.959320-06:00>>
2020-04-13 21:13:16 ERROR (MainThread) [simplipy.system] Unknown system state: ALARM
2020-04-13 21:13:22 DEBUG (MainThread) [homeassistant.components.simplisafe] New websocket event: WebsocketEvent(info='Alarm Canceled by Master PIN', system_id=xxxxxx, timestamp=datetime.datetime(2020, 4, 14, 3, 13, 18, tzinfo=<UTC>), event_type='alarm_canceled', changed_by='Master PIN', sensor_name='', sensor_serial='002539c1', sensor_type=<EntityTypes.keypad: 1>)
2020-04-13 21:13:22 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=alarm_control_panel.simplisafe, old_state=<state alarm_control_panel.simplisafe=unknown; code_format=None, changed_by=, code_arm_required=True, last_event_info=Alarm: Panic (Keypad) Kitchen, last_event_sensor_name=, last_event_sensor_type=keypad, last_event_timestamp=2020-04-13T21:13:07-06:00, system_id=xxxxxx, alarm_duration=300, alarm_volume=low, battery_backup_power_level=5710, chime_volume=off, entry_delay_away=30, entry_delay_home=30, exit_delay_away=60, exit_delay_home=0, gsm_strength=-67, light=True, rf_jamming=False, voice_prompt_volume=off, wall_power_level=6375, wifi_strength=-59, friendly_name=123 Main Street Alarm Control Panel, supported_features=3 @ 2020-04-13T21:13:16.959320-06:00>, new_state=<state alarm_control_panel.simplisafe=disarmed; code_format=None, changed_by=Master PIN, code_arm_required=True, last_event_info=Alarm Canceled by Master PIN, last_event_sensor_name=, last_event_sensor_type=keypad, last_event_timestamp=2020-04-13T21:13:18-06:00, system_id=xxxxxx, alarm_duration=300, alarm_volume=low, battery_backup_power_level=5710, chime_volume=off, entry_delay_away=30, entry_delay_home=30, exit_delay_away=60, exit_delay_home=0, gsm_strength=-67, light=True, rf_jamming=False, voice_prompt_volume=off, wall_power_level=6375, wifi_strength=-59, friendly_name=123 Main Street Alarm Control Panel, supported_features=3 @ 2020-04-13T21:13:22.825024-06:00>>
2020-04-13 21:13:23 DEBUG (MainThread) [homeassistant.components.simplisafe] New websocket event: WebsocketEvent(info='System Disarmed by Master PIN', system_id=xxxxxx, timestamp=datetime.datetime(2020, 4, 14, 3, 13, 18, tzinfo=<UTC>), event_type='disarmed_by_master_pin', changed_by='Master PIN', sensor_name='', sensor_serial='002539c1', sensor_type=<EntityTypes.keypad: 1>)
2020-04-13 21:13:23 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=alarm_control_panel.simplisafe, old_state=<state alarm_control_panel.simplisafe=disarmed; code_format=None, changed_by=Master PIN, code_arm_required=True, last_event_info=Alarm Canceled by Master PIN, last_event_sensor_name=, last_event_sensor_type=keypad, last_event_timestamp=2020-04-13T21:13:18-06:00, system_id=xxxxxx, alarm_duration=300, alarm_volume=low, battery_backup_power_level=5710, chime_volume=off, entry_delay_away=30, entry_delay_home=30, exit_delay_away=60, exit_delay_home=0, gsm_strength=-67, light=True, rf_jamming=False, voice_prompt_volume=off, wall_power_level=6375, wifi_strength=-59, friendly_name=123 Main Street Alarm Control Panel, supported_features=3 @ 2020-04-13T21:13:22.825024-06:00>, new_state=<state alarm_control_panel.simplisafe=disarmed; code_format=None, changed_by=Master PIN, code_arm_required=True, last_event_info=System Disarmed by Master PIN, last_event_sensor_name=, last_event_sensor_type=keypad, last_event_timestamp=2020-04-13T21:13:18-06:00, system_id=xxxxxx, alarm_duration=300, alarm_volume=low, battery_backup_power_level=5710, chime_volume=off, entry_delay_away=30, entry_delay_home=30, exit_delay_away=60, exit_delay_home=0, gsm_strength=-67, light=True, rf_jamming=False, voice_prompt_volume=off, wall_power_level=6375, wifi_strength=-59, friendly_name=123 Main Street Alarm Control Panel, supported_features=3 @ 2020-04-13T21:13:22.825024-06:00>>
2020-04-13 21:13:45 DEBUG (MainThread) [homeassistant.components.simplisafe] New system notifications: {SystemNotification(notification_id='c17097c3-04b2-4a99-b064-244ae334431b', text='Alarm Cancelled by Master', category='alarm', code='1001', timestamp=datetime.datetime(2020, 4, 14, 3, 13, 18, tzinfo=<UTC>), link='', link_label='')}
2020-04-13 21:13:45 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event SIMPLISAFE_NOTIFICATION[L]: category=alarm, code=1001, message=Alarm Cancelled by Master, timestamp=2020-04-13T21:13:18-06:00>
Here’s what each line indicates:
- The HASS integration receives an event from the SimpliSafe websocket that indicates the alarm has been triggered by my keypad.
- HASS changes the state of my
alarm_control_panel
entity to triggered
.
- The HASS integration detects that new system notifications exist (namely, a triggered alarm).
- Because of #3, a
SIMPLISAFE_NOTIFICATION
event is fired (again, denoting a triggered alarm).
- 4 seconds later, HASS changes the state of my
alarm_control_panel
entity to unknown
.
-
simplisafe-python
notifies me that it has come across an “alarm state text” (i.e., a raw alarm state value from the SimpliSafe cloud) that it doesn’t recognize: ALARM
- The HASS integration receives an event from the SimpliSafe websocket that indicates the alarm has been canceled.
- HASS changes the state of my
alarm_control_panel
entity to disarmed
.
- The HASS integration receives an event from the SimpliSafe websocket that indicates the alarm has been disarmed.
- HASS updates the state of my
alarm_control_panel
, but the actual state value remains disarmed
.
- The HASS integration detects that new system notifications exist (namely, a canceled alarm).
- Because of #3, a
SIMPLISAFE_NOTIFICATION
event is fired (again, denoting a canceled alarm).
So, this means that into socket integration is working and event parsing is happening as expected, but that something (perhaps that Unknown system state: ALARM
log entry) causes the alarm_control_panel
to change from triggered
to unknown
fairly quickly (in my case, after 4 seconds).
This gives me a lead to follow. Will post more as I investigate.