Smart Alarm 2.4 Is Available

Current Smart Alarm version is 2.4.2. Please follow this thread for updates:


Continuing the discussion from Smart Alarm is here:

Smart Alarm 2.1.0 is now available.

What’s New:

  • Added voice notifications using devices with ‘Speech Synthesis’ capability. Currently, implemented only in the VLC Thing (Version 1.1.0), as far as I know.
  • New notification options. You can now select notification options for alarm notifications and status change separately.
  • Increased the number for telephone numbers used for SMS notifications from two to four.
  • Fixed broken push notifications.

Smart Alarm source code and installation instructions are available on GitHub:
https://github.com/statusbits/smartalarm

Warning

When upgrading from version 1.x , it is strongly recommended to uninstall Smart Alarm before installing the new version. If you chose to upgrade without uninstalling, please make sure that you remove all sensors from the zones. Failure to unbind sensors from Smart Alarm will prevent you from removing them in the future until you uninstall Smart Alarm.

5 Likes

Curiously, the Sonos Player device does not advertise the “Speech Synthesis” capability, even though it does provide the underlying functionality.

The Sonos Player device provides the following commands for speech synthesis:

    command "playTextAndResume", ["string","number"]
    command "playTextAndRestore", ["string","number"]
    command "playTextAndResume", ["string","json_object","number"]

Providing the speak(string) command for the Speech Synthesis capability should be a trivial addition.

1 Like

@geko
I love this app and all of the improvements!!

I would love to see an option for Flashing Lights like the Smart Security app has? Is this possible? I would try but I have no clue what to do :flushed:

1 Like

Good work on the voice synthesis. I started doing this as a feature on my tablet/alarm panel. I am using tasker to recieve a pushbullet that is sent when the garage door is opened in away mode. The tts tells me to Please Disarm the Alarm. The wife loves it. She thinks it is the best feature of the alarm system and luckily I implemented this before the recent problems so it gave some hope of what the system will be when it actually works.

Ok - I’ve added the SpeechSynthesis device capability to my version of the Ubi device type.

Details can be found here: Getting Ubi Sensor Data the Hard Way... Or how I stopped worrying and learned to love the XMLslurper

Can’t promise, but I’ll see what I can do. :smile:

2 Likes

Awesome work Geko :+1::beers:

maybe I’m missing something, but the code within the IDE says version 1.0? What am I missing?

  • Version: 1.0.0
  • Date: 2014-07-04
    */

There’re multiple Smart Alarm “clones” shared by different people. I’d recommend installing it from the GitHub.

Smart Alarm 2.2.0 is now available.

What’s new:

  • Exit delay is back. Note that the exit delay applies only to the Entrance zones and only when arming in Away mode.
  • Added voice notifications for the state changes (armed/disarmed).
  • If the notification phrase is not entered then a default phrase will be used.
  • Moved voice configuration to the “Notification Options” page.

Smart Alarm source code and installation instructions are available on GitHub:
https://github.com/statusbits/smartalarm

Warning
When upgrading from version 1.x , it’s is strongly recommended to uninstall Smart Alarm before installing the new version. If you chose to upgrade without uninstalling, please make sure that you remove all sensors from the zones. Failure to unbind sensors from Smart Alarm will prevent you from removing them in the future until you uninstall Smart Alarm.

2 Likes

Well Done! Now where is your paypal account.

ST really needs to stand up and look at this app now. It has every feature (and more) as a commercial solution such as ADT.

This is the alarm system for ST!

Excellent work geko, you are one of the greatest assets this community has.

3 Likes

I submitted to for review some time ago. I know it was close to being approved a couple of weeks ago but then platform upgrade happened and some things got broken which prompted me to release new version. So I guess they have to start all over again.

Well Done! Now where is your paypal account.

Thank you. Don’t look too far… It’s geko (at) statusbits.com :wink:

ok this seemed to work at first, but then I disarmed and the panel rearmed itself in 3 minutes even though I was in home mode.
After that I could not get it to set off an alarm:
dc449787-b2ed-45ab-9055-007bbf846cd2 ‎6‎:‎05‎:‎27‎ ‎PM: trace Smart Alarm disarmed

dc449787-b2ed-45ab-9055-007bbf846cd2 ‎6‎:‎05‎:‎27‎ ‎PM: debug notifyVoice()

dc449787-b2ed-45ab-9055-007bbf846cd2 ‎6‎:‎05‎:‎27‎ ‎PM: debug notify(Home alarm is Disarmed.)

dc449787-b2ed-45ab-9055-007bbf846cd2 ‎6‎:‎05‎:‎19‎ ‎PM: trace Deleting all scheduled jobs for InstalledSmartApp: dc449787-b2ed-45ab-9055-007bbf846cd2

dc449787-b2ed-45ab-9055-007bbf846cd2 ‎6‎:‎05‎:‎19‎ ‎PM: debug resetPanel()

dc449787-b2ed-45ab-9055-007bbf846cd2 ‎6‎:‎05‎:‎19‎ ‎PM: debug disarm()

dc449787-b2ed-45ab-9055-007bbf846cd2 ‎6‎:‎05‎:‎19‎ ‎PM: debug onLocation(Home)

921a2052-feac-476c-9535-9d854d2ca53a ‎6‎:‎05‎:‎27‎ ‎PM: debug Parse returned [Alarm Siren switch is off, Alarm Siren alarm is off]

921a2052-feac-476c-9535-9d854d2ca53a ‎6‎:‎05‎:‎27‎ ‎PM: debug parse(zw device: 13, command: 2003, payload: 00 )

87619ab3-b859-4991-b583-98f53a6c807d ‎6‎:‎05‎:‎20‎ ‎PM: error groovyx.net.http.ResponseParseException: OK @ line 180

860e1c06-e223-46e9-a0eb-33bcc850e890 ‎6‎:‎05‎:‎19‎ ‎PM: debug Received on from Home Mode

860e1c06-e223-46e9-a0eb-33bcc850e890 ‎6‎:‎05‎:‎20‎ ‎PM: debug Received off from Home Mode

87619ab3-b859-4991-b583-98f53a6c807d ‎6‎:‎05‎:‎20‎ ‎PM: error groovyx.net.http.ResponseParseException: OK @ line 180

9150f14c-f834-4eaa-9149-5a535de1e808 ‎6‎:‎05‎:‎19‎ ‎PM: debug update, request: params: [access_token:3327324a-115f-46bc-944d-226e2adfc162, appId:9150f14c-f834-4eaa-9149-5a535de1e808, param1:switches, param2:1533f358-4fbc-4e33-8cef-c268bc98c6a0, param3:on, action:[GET:executeSmartAppGet, POST:executeSmartAppPost, PUT:executeSmartAppPut, DELETE:executeSmartAppDelete, OPTIONS:executeSmartAppOptions], controller:smartAppApi, id:1533f358-4fbc-4e33-8cef-c268bc98c6a0, command:on], devices: [1533f358-4fbc-4e33-8cef-c268bc98c6a0, c2cd7d04-f699-4bcc-9e0e-03c3a5610149, cd4e6259-9a92-4ca1-882d-dba1ccffc922]

dc449787-b2ed-45ab-9055-007bbf846cd2 ‎6‎:‎05‎:‎01‎ ‎PM: debug armEntranceZones()

87619ab3-b859-4991-b583-98f53a6c807d ‎6‎:‎04‎:‎40‎ ‎PM: error groovyx.net.http.ResponseParseException: OK @ line 180

921a2052-feac-476c-9535-9d854d2ca53a ‎6‎:‎04‎:‎39‎ ‎PM: debug Parse returned [Alarm Siren switch is off, Alarm Siren alarm is off]

921a2052-feac-476c-9535-9d854d2ca53a ‎6‎:‎04‎:‎39‎ ‎PM: debug parse(zw device: 13, command: 2003, payload: 00 )

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎39‎ ‎PM: trace TURNING OFF

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎39‎ ‎PM: info OPEN CLOSE HANDLER evt.value: ‘closed’, turnOffOnClose: ‘true’

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎39‎ ‎PM: trace timeOk = true

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎39‎ ‎PM: trace daysOk = true

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎39‎ ‎PM: trace modeOk = true

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎39‎ ‎PM: info SUMMARY EVENT data: [[icon:indicator-dot-green, iconColor:#49a201, default:true, value:Everything is OK]]

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎39‎ ‎PM: debug data: [water:dry, icon:null, backgroundColor:#57C446, name:water, value:dry, devices:[[id:3dedf81e-f9f5-477d-978b-66642a78f740, value:dry]]]

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎38‎ ‎PM: debug data: [smokeAndCO:clear of Smoke/CO, backgroundColor:#57C446]

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎38‎ ‎PM: debug data: [backgroundColor:#57C446, unwantedAccess:OK]

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎38‎ ‎PM: debug Updating Dangers solution summary

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎38‎ ‎PM: trace STATE EVENT: ‘Garage Door is OK’, data:[unwantedAccess:OK]

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎38‎ ‎PM: trace updateSolutionSummary()

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎38‎ ‎PM: trace setSolutionState()

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎38‎ ‎PM: info openCloseHandler(Garage Interior Door, contact:closed)

87619ab3-b859-4991-b583-98f53a6c807d ‎6‎:‎04‎:‎38‎ ‎PM: error groovyx.net.http.ResponseParseException: OK @ line 180

cdf52d3f-10dd-43d0-8c5c-6dc021c3b2cb ‎6‎:‎04‎:‎38‎ ‎PM: debug Parse returned [[descriptionText:Unhandled: Garage Interior Door: NotificationReport(event: 2, eventParameter: [], eventParametersLength: 0, notificationStatus: 255, notificationType: 7, reserved61: 0, sequence: false, v1AlarmLevel: 0, v1AlarmType: 7, zensorNetSourceNodeId: 0), displayed:false, isStateChange:false, linkText:Garage Interior Door]]

cdf52d3f-10dd-43d0-8c5c-6dc021c3b2cb ‎6‎:‎04‎:‎38‎ ‎PM: debug Parse returned [[name:contact, value:closed, descriptionText:Garage Interior Door is closed, isStateChange:true, displayed:true, linkText:Garage Interior Door]]

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎35‎ ‎PM: debug Alarm strobe activated

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎35‎ ‎PM: trace timeOk = true

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎35‎ ‎PM: trace daysOk = true

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎35‎ ‎PM: trace modeOk = true

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎35‎ ‎PM: info OPEN CLOSE HANDLER evt.value: ‘open’, turnOffOnClose: ‘true’

87619ab3-b859-4991-b583-98f53a6c807d ‎6‎:‎04‎:‎36‎ ‎PM: error groovyx.net.http.ResponseParseException: OK @ line 180

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎34‎ ‎PM: debug Alert: ‘Garage Door was opened’, push:false, phone:null

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎34‎ ‎PM: trace timeOk = true

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎34‎ ‎PM: trace daysOk = true

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎34‎ ‎PM: trace modeOk = true

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎34‎ ‎PM: trace timeOk = true

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎34‎ ‎PM: trace daysOk = true

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎34‎ ‎PM: trace modeOk = true

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎34‎ ‎PM: info SUMMARY EVENT data: [[icon:indicator-dot-orange, iconColor:#ffa81e, default:true, value:Garage Door is open]]

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎34‎ ‎PM: debug data: [water:dry, icon:null, backgroundColor:#57C446, name:water, value:dry, devices:[[id:3dedf81e-f9f5-477d-978b-66642a78f740, value:dry]]]

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎34‎ ‎PM: debug data: [smokeAndCO:clear of Smoke/CO, backgroundColor:#57C446]

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎34‎ ‎PM: debug data: [backgroundColor:#FFA639, unwantedAccess:open]

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎34‎ ‎PM: debug Updating Dangers solution summary

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎34‎ ‎PM: trace STATE EVENT: ‘Garage Door is open’, data:[unwantedAccess:open]

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎34‎ ‎PM: trace updateSolutionSummary()

921a2052-feac-476c-9535-9d854d2ca53a ‎6‎:‎04‎:‎35‎ ‎PM: debug Parse returned [Alarm Siren switch is on, Alarm Siren alarm is strobe]

921a2052-feac-476c-9535-9d854d2ca53a ‎6‎:‎04‎:‎35‎ ‎PM: debug parse(zw device: 13, command: 2003, payload: 21 )

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎34‎ ‎PM: trace setSolutionState()

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎34‎ ‎PM: info openCloseHandler(Garage Interior Door, contact:open)

87619ab3-b859-4991-b583-98f53a6c807d ‎6‎:‎04‎:‎34‎ ‎PM: error groovyx.net.http.ResponseParseException: OK @ line 180

dc449787-b2ed-45ab-9055-007bbf846cd2 ‎6‎:‎04‎:‎34‎ ‎PM: debug onZoneEvent(Garage Interior Door, contact)

cdf52d3f-10dd-43d0-8c5c-6dc021c3b2cb ‎6‎:‎04‎:‎33‎ ‎PM: debug Parse returned [[descriptionText:Unhandled: Garage Interior Door: NotificationReport(event: 2, eventParameter: [], eventParametersLength: 0, notificationStatus: 255, notificationType: 7, reserved61: 0, sequence: false, v1AlarmLevel: 255, v1AlarmType: 7, zensorNetSourceNodeId: 0), displayed:false, isStateChange:false, linkText:Garage Interior Door]]

cdf52d3f-10dd-43d0-8c5c-6dc021c3b2cb ‎6‎:‎04‎:‎33‎ ‎PM: debug Parse returned [[name:contact, value:open, descriptionText:Garage Interior Door is open, isStateChange:true, displayed:true, linkText:Garage Interior Door]]

dc449787-b2ed-45ab-9055-007bbf846cd2 ‎6‎:‎04‎:‎18‎ ‎PM: trace Smart Alarm armed in ‘Away’ mode

dc449787-b2ed-45ab-9055-007bbf846cd2 ‎6‎:‎04‎:‎18‎ ‎PM: debug notifyVoice()

dc449787-b2ed-45ab-9055-007bbf846cd2 ‎6‎:‎04‎:‎17‎ ‎PM: debug notify(Home alarm is Armed Away.)

Let me know any thoughts.

There’s no evidence in the logs of Smart Alarm re-arming itself. Here’s what happened, in chronological order:

6:04:18 - Smart Alarm is armed Away (Exit delay is started)

dc449787-b2ed-45ab-9055-007bbf846cd2 ‎6‎:‎04‎:‎18‎ ‎PM: trace Smart Alarm armed in ‘Away’ mode

6:04:33 - You opened Garage Interior Door

cdf52d3f-10dd-43d0-8c5c-6dc021c3b2cb ‎6‎:‎04‎:‎33‎ ‎PM: debug Parse returned [[descriptionText:Unhandled: Garage Interior Door: NotificationReport(event: 2, eventParameter: , eventParametersLength: 0, notificationStatus: 255, notificationType: 7, reserved61: 0, sequence: false, v1AlarmLevel: 255, v1AlarmType: 7, zensorNetSourceNodeId: 0), displayed:false, isStateChange:false, linkText:Garage Interior Door]]

6:04:34 - Smart Alarm handles event, but because it’s an Entrance zone, alarm is not triggered.

dc449787-b2ed-45ab-9055-007bbf846cd2 ‎6‎:‎04‎:‎34‎ ‎PM: debug onZoneEvent(Garage Interior Door, contact)

6:04:34 - Some other app (Damage and Danger?) handles ‘door open’ event

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎34‎ ‎PM: info openCloseHandler(Garage Interior Door, contact:open)

6:04:35 - The other app turns on a siren

921a2052-feac-476c-9535-9d854d2ca53a ‎6‎:‎04‎:‎35‎ ‎PM: debug Parse returned [Alarm Siren switch is on, Alarm Siren alarm is strobe]
43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎35‎ ‎PM: debug Alarm strobe activated

6:04:38 - You closed Garage Interior Door

cdf52d3f-10dd-43d0-8c5c-6dc021c3b2cb ‎6‎:‎04‎:‎38‎ ‎PM: debug Parse returned [[name:contact, value:closed, descriptionText:Garage Interior Door is closed, isStateChange:true, displayed:true, linkText:Garage Interior Door]]

6:04:38 - Some other app (Damage and Danger?) handles ‘door closed’ event

43863bb4-39f4-4e33-857a-235ff3a94459 ‎6‎:‎04‎:‎38‎ ‎PM: info openCloseHandler(Garage Interior Door, contact:closed)

6:04:39 - The other app turns off a siren

921a2052-feac-476c-9535-9d854d2ca53a ‎6‎:‎04‎:‎39‎ ‎PM: debug Parse returned [Alarm Siren switch is off, Alarm Siren alarm is off]

6:05:01 - Smart Alarm Exit delay expires (45 seconds after arming), all zones are now armed.

dc449787-b2ed-45ab-9055-007bbf846cd2 ‎6‎:‎05‎:‎01‎ ‎PM: debug armEntranceZones()

6:05:19 - You switch the mode to ‘Home’, Smart Alarm is disarmed

dc449787-b2ed-45ab-9055-007bbf846cd2 ‎6‎:‎05‎:‎19‎ ‎PM: debug onLocation(Home)
dc449787-b2ed-45ab-9055-007bbf846cd2 ‎6‎:‎05‎:‎19‎ ‎PM: debug disarm()
dc449787-b2ed-45ab-9055-007bbf846cd2 ‎6‎:‎05‎:‎19‎ ‎PM: debug resetPanel()
dc449787-b2ed-45ab-9055-007bbf846cd2 ‎6‎:‎05‎:‎27‎ ‎PM: debug notify(Home alarm is Disarmed.)
dc449787-b2ed-45ab-9055-007bbf846cd2 ‎6‎:‎05‎:‎27‎ ‎PM: debug notifyVoice()
dc449787-b2ed-45ab-9055-007bbf846cd2 ‎6‎:‎05‎:‎27‎ ‎PM: trace Smart Alarm disarmed

Sorry about the confusing post yes I did not capture the log on the rearm, I will try to do that tonight.

This is concerning though:

921a2052-feac-476c-9535-9d854d2ca53a ‎6‎:‎04‎:‎39‎ ‎PM: debug Parse returned [Alarm Siren switch is off, Alarm Siren alarm is off]

6:05:01 - Smart Alarm Exit delay expires (45 seconds after arming), all zones are now armed.

I had the exit delay set to 15 seconds. So why was it giving me 45? That explains why it didn’t go off though.

ok I was giving this a second shot to capture logs and I got this:

‎5‎:‎15‎:‎58‎ ‎PM: error groovy.lang.GroovyRuntimeException: Could not find matching constructor for: java.util.Date(java.lang.Double) @ line 1344

37d4447c-5d9f-4265-83a3-e6db103f32d5 ‎5‎:‎15‎:‎58‎ ‎PM: debug myRunIn(15.0)

Its not recognizing Date as a utility?

I’m not seeing this error. Here’s my log.

3:22:52 PM PST: debug myRunIn(15)
3:22:52 PM PST: trace Deleting scheduled job ‘armEntranceZones’ for InstalledSmartApp:
3:22:52 PM PST: trace Scheduling ‘armEntranceZones’ for InstalledSmartApp:
3:22:52 PM PST: debug runOnce() scheduled for Thu Nov 06 23:23:07 UTC 2014
3:22:52 PM PST: debug notify(Home alarm is Armed Away.)

3:23:16 PM PST: debug armEntranceZones()

I see in your log, myRunIn is called with ‘15.0’ instead of ‘15’. That’s odd.

Alright so I completely uninstalled and then reinstalled and all is good.

1 Like

@geko

I would like Smart Alarm to go into alarm state when armed and an alarm occurs.

I created a new mode called ALARM and a Hello, Home rule to change to mode to ALARM.

Smart Alarm will call this rule when an alarm occurs.

Is this the right approach?

@geko I am getting the following error when completing the preference settings:

java.util.concurrent.TimeoutException: Execution time exceeded 20 app execution seconds @ line 927 

The timeout seems to occur here:

// Reset zones
state.zones.each() { *code* }