Echo Speaks Announcement if SHM Alarm is Tripped


Here is a piston I wrote that is triggered if the Smart Home Monitor Alarm goes off. It is currently set up to only fire if the alarm is triggered in Armed/Stay mode, but you could easily add Armed/Away mode if you wanted the potential intruder to hear it even if you are not home.

It announces an intrusion on several Amazon Echo devices and says which sensor was tripped to set off the alarm. It keeps repeating every 15 seconds until the SHM Alarm is disarmed. I thought that if the alarm really ever does go off in unexpectedly in the middle of the night it would be very helpful to know which sensor caused it. It was ‘tested’ accidentally this morning when the dogs were let out which reminded me that I was going to post it here.


5 months later and this is still a damn useful script. Question, I would like to enhance it a bit and update the sensor …

So imagine, someone enters the house via the entrance, and it starts saying Intrusion alert ‘entrance’ has been tripped…

Now imagine someone goes upstairs and trips another sensors in it list, would it be possible for it the update it’s message to say Intrusion alert ‘bedroom’ has also been tripped

So far this only thing I could like of, was setting a global variable that a really simple second piston listened and also immediately announced other sensors as they trigger


Hi, I am very new to WebCore and trying to use this piston. Can you tell what is the part of the script that says “Location” on line 42?



That is just an empty block that does nothing. Probably left over from an older edit.


So I can just remove that line and it won’t affect the function?


It is safe to delete the following “WITH” block:



Hello all. I was enjoying the use of this piston until Echo Speaks was deprecated on the new Smartthings platform. Can this piston be modified to use Voice monkey to announce through selected Echo devices in place of the Echo Speaks devices? I tried my best to substitute the line where Echo Speaks devices are chosen,by making a Get request to Voice Monkey skill, and modifying the announcement portion of the URL generated by voice monkey, but can not get the right code to cause Voice monkey to decode and announce the encoded message variable from the piston. I found a Voice Monkey help that said to precede the announcement brackets with the urlEncode, but I could not get it to work. It would be great if this can be made to work, as it seems Echo Speaks is not coming back. I genuinely appreciate your help, as I have reached my depth of understanding the coding involved with Webcore.