SimpliSafe questions

@bachya I also noticed the same issue. The attributes for the alarm are no longer updating with camera motion detection events. I also ran the test_events script and got more eventCid for you.

eventCid': 1170, 'info': 'Camera Detected Motion',
eventCid': 1400, 'info': 'System Disarmed by PIN'
eventCid': 1407, 'info': 'System Disarmed by Remote
eventCid': 1409, 'info': 'Secret Alert: 
eventCid': 1458, 'info': 'Someone is at your ""' #Doorbell cam ding dong
eventCid': 1602, 'info': 'Automatic Test'
eventCid': 3441, 'info': 'System Armed (Home) 

Hope that helps.

What do you mean by this?

That isn’t the same issue; this is separate and was previously reported. Please see Simplisafe camera motion not updating last_event_* attributes · Issue #32535 · home-assistant/core · GitHub.

Ah got it, thanks!

1 Like

My wording was weird, just meant I double checked I had the entity right from the entity list in HA, and that automation should be right, and pretty sure the word should be triggered

Got it. Unfortunately, I haven’t made any headway on this – the events that seem to represent an alarm trigger are attached correctly; because I face possible penalties for false alarms in my district, I can’t vigorously test like I normally would. :frowning:

So when you trigger alarm, within the 2 minutes, before the phone call, if you had an automation like mine above in your system it works? If you stop it quick no penalties or anything, I haven’t tested except for letting it go off for like 15 seconds or so

Oh wow, I didn’t know that! Thanks for the info. I’ll find a time where it doesn’t impact the family heavily and go from there. :+1:

Yep, the rules by default are it goes off for 2 minutes, then you get a call from Simplisafe, you can even go that far and give your passcode and they will cancel it. If you don’t answer the call that comes at 2 minutes, if you have a backup number, they will try that, it the calls don’t work, then they dispatch the police

The event comes right away with a trigger, just arm home, open door, log some things, enter keypad, and you won’t hear from anyone

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:

  1. The HASS integration receives an event from the SimpliSafe websocket that indicates the alarm has been triggered by my keypad.
  2. HASS changes the state of my alarm_control_panel entity to triggered.
  3. The HASS integration detects that new system notifications exist (namely, a triggered alarm).
  4. Because of #3, a SIMPLISAFE_NOTIFICATION event is fired (again, denoting a triggered alarm).
  5. 4 seconds later, HASS changes the state of my alarm_control_panel entity to unknown.
  6. 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
  7. The HASS integration receives an event from the SimpliSafe websocket that indicates the alarm has been canceled.
  8. HASS changes the state of my alarm_control_panel entity to disarmed.
  9. The HASS integration receives an event from the SimpliSafe websocket that indicates the alarm has been disarmed.
  10. HASS updates the state of my alarm_control_panel, but the actual state value remains disarmed.
  11. The HASS integration detects that new system notifications exist (namely, a canceled alarm).
  12. 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.

And just like that, I’ve got it!

  1. The websocket event denoting a triggered alarm is parsed correctly and the state of the alarm_control_panel is updated correctly.
  2. I recently implemented https://github.com/home-assistant/core/pull/33680, which uses periodic queries of the SimpliSafe REST API to synchronize state information (just in case the websocket should falter for some reason).
  3. simplisafe-python's interaction didn’t previously know about an ALARM state (hence the error in line 6 of my log above).
  4. Because of #3 above, the HASS integration doesn’t know what state is represented by the REST API; therefore, it defaults to unknown.

This should be relatively easy to fix. I will get a patch submitted tomorrow. That said, @dkmcgowan, your original post states that in your testing, your alarm_control_panel never went to triggered, correct? Or does what I’ve written above sound relevant?

Went ahead and submitted a PR to fix the issue I discovered: https://github.com/home-assistant/core/pull/34216

I never had it go to trigger, but maybe I didn’t let alarm go off long enough? Also, I only tested twice, so maybe the socket didn’t work both those times?

I will test again once PR gets merged and in an updated release.

Thanks!

Had to redo my zwave network, unfortunatly this meant stepping back before I had simplisafe integration installed. Now when I add it I cannot programmaticly control simplisafe by HA. added the SS integration with user/pass/HA Pin code… doesn’t seem to remember to pin code. So I can’t have it automatically armed at XX:XX time or disarmed by door code and auto rearmed after X time from door opening when previously armed within the autoarm time.

I am running HA .117.2. When I add the SimpliSafe integration from the HACS, it finds my base station, a keypad and three entry sensors. It fails to find the motion sensor. I am receiving secret alerts from the motion sensor in HA from the SimpliSafe webhooks… The sensor should show as a binary sensor. Anybody have a similar problem/solution?

Just installed this as well, and I’m not seeing any of my sensors. Just the base station, keypad and temp sensor. Missing entry sensors, smoke/co and motion for some reason. Did you ever figure out how to get them to show?

@tobycth3 I’m looking at an issue similar to what you report; please chime in there: https://github.com/home-assistant/core/issues/42814

@slomanl1 As I mentioned in that ticket, please open a separate issue so I can look at your issue directly.

Thanks for the recent updates to add sensors and battery status. This is great!

Two questions:

  1. All the sensor states – and indeed, the main armed/disarmed state as well – briefly go to state “Unavailable” on occasion This seems to happen for me 10-15 times a day. They seem to correspond to clusters of lines like this one in the logfile:
    2020-11-06 23:26:43 WARNING (MainThread) [simplipy] SimpliSafe didn't return data for property: offline
    Is this the Simplisafe servers being flaky? Could the integration attempt to ride out a single failure to fetch status?
  2. Many of my sensors report battery status, but not the keypad, glass-break, or motion sensors. I added these to the SUPPORTED_BATTERY_SENSOR_TYPES array in my copy of binary_sensor.py and the entities do show up. None of their batteries are currently low so I don’t know if this actually works. Were these sensor types left out on purpose, or could they be added to the integration?
1 Like

Exactly: if you look at the log details, SimpliSafe’s cloud will return 5xx response codes, which means their upstream services are hurting in some way. Seems to have gotten worse/more frequent lately.

Appreciate the thinking about riding out a single failure; let me chew on that.

Another community member submitted the initial PR and he must have just forgotten. I will get them added!

1 Like

I’m experiencing the same exact issue. I’m brand new to SimpliSafe so I can’t say if this is an ongoing issue or not. I just noticed that within the last few weeks that i get several periods a day where the integration seems to momentarily lose connection to the servers with all devices reporting as unavailable.

In addition to the info above: SimpliSafe very unreliable as of late

1 Like