SimpliSafe Alarm Integration (cloud to cloud)

dth_security
dth_alerts
project_security

(Toby Cth3) #651

Did you configure your username and password in the preference section? Do you have the $24.99/month online plan?


(Penny Yi) #652

@tobycth3 @ssilence Thank you guys so much for restoring functionality so quickly!

Separately, @tobycth3 if I recall correctly, your updated Device Handler eliminated the need for Pollster right? I still have Pollster running, so just wanted to confirm. Thanks!


#653

@tobycth3. That worked. Things are syncing bidirectionally and working like a charm. Do you have a PayPal account for donations? You deserve something for all the work you and Scott have put into this!


(Toby Cth3) #654

You are correct. The status will be polled every 5 minutes so Pollster shouldn’t be needed anymore.


(Toby Cth3) #655

Donations for beer are always gladly accepted


(Richard Belthoff) #656

Glad to contribute! It all seems to be working well on my SS3 system. No duplicate notifications. Thanks!


(Dhtguru) #657

Yes and Yes


(Scott Silence) #658

You are using the old code still. I just looked in the new Device Handler and doesn’t even have 418 lines of code (mentioned in your logs). You need to make sure to grab the latest Device Handler and SmartApp from the link below.

Once you get those installed you will need to reenter username, password, and a new field of system type (ss1, ss2, ss3) based on the type of system you have.


(Dhtguru) #659

Thank you Sir. I pulled it from the top of your post. Where should I get
it?


(Dhtguru) #660

Nevermind. I see it now. Thanks again


(Dhtguru) #661

Brilliant! Worked like a charm. Thank you.


(Scott Silence) #662

No Problem


(Scott Silence) #663

@tobycth3,

I noticed with the SmartApp that I was getting notifications regardless if I set pushAndPhone to No or Yes. So, I had it set to No (or not set to anything) and I had nothing in the phone field, and I would still get Push Notifications. I did a little rework to better handle things. Let me know your thoughts.

  section("Notifications"){
  	input("recipients", "contact", title: "Send notifications to", required: false) {
    	input "sendPushMessage", "enum", title: "Send a push notification?", options: ["Yes", "No"], required: false
    	input "phone", "phone", title: "Phone Number (for SMS, optional)", required: false
        paragraph "If outside the US please make sure to enter the proper country code"
 	}
  }


private sendMessage(msg) {
	Map options = [:]
    
	if (location.contactBookEnabled && recipients) {
		sendNotificationToContacts(msg, recipients, options)
	} else {
    	if (phone) {
        	options.phone = phone
			if (sendPushMessage && sendPushMessage != 'No') {
				log.debug 'Sending push and SMS'
				options.method = 'both'
			} else {
				log.debug 'Sending SMS'
				options.method = 'phone'
			}
        } else if (sendPushMessage && sendPushMessage != 'No') {
			log.debug 'Sending push'
			options.method = 'push'
		} else {
			log.debug 'Sending nothing'
			options.method = 'none'
		}
		sendNotification(msg, options)        
	}
}

(Toby Cth3) #664

I’m unable to edit the first post due to age of it. I sent a message to @tslagle13 to see if we can get it updated to remove the old code/change logs and replace it with a link to GitHub.


(Toby Cth3) #665

Message alert functionality has been restored, code has been updated in GitHub


(Dj Anu) #666

Is this normal to have this error ?

8b83-5119e587ed70 5:32:09 PM: error java.lang.NullPointerException: Cannot invoke method getAt() on null object @line 205 (doCall)
8b83-5119e587ed70 5:32:09 PM: info Temperature: null
8b83-5119e587ed70 5:32:09 PM: info Alarm State1: off
8b83-5119e587ed70 5:32:08 PM: info Executing polling…
8b83-5119e587ed70 5:32:08 PM: info Checking to see if time has expired…
8b83-5119e587ed70 5:31:58 PM: debug Alarm SET to OFF Error: java.net.SocketTimeoutException: Read timed out


(Scott Silence) #667

Looks like the new messages functionality that @tobycth3 added does not work for SS2. Here is what you can change the entire Poll to to restore functionality (currently the new alarm tile will not work for SS2).

def poll() {
	//Check Auth first
	checkAuth()

    log.info "Executing polling..."
   
	httpGet ([uri: getAPIUrl("refresh"), headers: state.auth.respAuthHeader, contentType: "application/json; charset=utf-8"]) { response ->
        
		//Check alarm state
		sendEvent(name: "alarm", value: response.data.subscription.location.system.alarmState)
		log.info "Alarm State1: $response.data.subscription.location.system.alarmState"
		
		//Check temperature
		sendEvent(name: "temperature", value: response.data.subscription.location.system.temperature)
		log.info "Temperature: $response.data.subscription.location.system.temperature"
		
		//Check messages
       	if (settings.ssversion == "ss3") {
            if (response.data.subscription.location.system.messages[0] != null)
            {
                sendEvent(name: "messages", value: response.data.subscription.location.system.messages[0].text)
                log.info "Messages: ${response.data.subscription.location.system.messages[0].text}"
            }
            else
            {
                sendEvent(name: "messages", value: "none")
                log.info "Messages: ${response.data.subscription.location.system.messages}"
            }
      	}
    }
	
	httpGet ([uri: getAPIUrl("events"), headers: state.auth.respAuthHeader, contentType: "application/json; charset=utf-8"]) { response ->
		
		//Check events
		sendEvent(name: "events", value: response.data.events[0].info)
		log.info "Events: ${response.data.events[0].info}"
    }
	
	
	//Set presence
	def alarm_state = device.currentValue("alarm")
	def alarm_presence = ['OFF':'present', 'HOME':'present', 'AWAY':'not present']
		sendEvent(name: 'presence', value: alarm_presence.getAt(alarm_state))
	

	//Set message alert
    log.info "Messages: ${device.currentValue("messages")}"
	if (device.currentValue("messages") && device.currentValue("messages") != "none")
	{
		sendEvent(name: "message", value: "active")
	}
	else
	{
		sendEvent(name: "message", value: "inactive")
	}
	
	
    //log.info "Alarm State2: $response"
    //apiLogout()
}

(Scott Silence) #668

@tobycth3, looks like you are pulling from messages to see if there has been an alarm? How does that clear?
On the SS2, it looks like there is a flag for isAlarming. I wonder if we could use the same thing. Here is what is inside of my system.

"system": {
    "serial": "AAAAAA",
    "alarmState": "home",
    "alarmStateTimestamp": 1518140396,
    "isAlarming": false,
    "version": 2,
    "temperature": null,
    "cameras": [],
}

(supa) #669

off topic: Is SS3 worth replacing?


(Joe) #670

FWIW. I was still in my 60 day window and my cell connection was horribly spotty or delayed. I was not overly thrilled about the size of the open/close sensors either. I actually called to return my system and was going to start the smart home/alarm search again but they asked me to give the SS3 a try.
So far so good and with the integration back up (thanks @tobycth3 and @ssilence), I am happy with the system, components, and the integrated features.
Price-wise, relatively fair or less expensive compared to the others on my short list but there was no discount on the SS3 so it was a little sticker shock as I got my SS2 under a deep year end discount.