SimpliSafe Control API (Unofficial)

I recently bought a fancy thermostat (more on that later) and I wanted to be able to have the thermostat automatically go into ‘away’ mode when I set the house alarm as AWAY. So I looked and I didn’t see any api available for my SimpliSafe security system. I did however stumble upon this article where the author reverse engineered the REST protocol from the phone app. So I’ve taken his specification and implemented it in Java

Get the source or jar.

The usage of the library is pretty simple. First just create a client

SimplisafeClient c = new SimpliSafeClientFactory().create("username", "password");

Then you can iterate through all of the base stations in your account

for(Location l: c.getLocations()) {
   System.out.println(l.getId() + "  " + l.getStreet1() + "  " + l.getSystemState());
}

and you can set the alarm state for any location

c.setAlarmState(l, SYSTEM_STATE.AWAY);