Yale Smartphone Alarm System integration

Sorry Mark where’s that? Complete noob with POST, only started looking at it after Daniels suggestion! Cheers

i only make it up as i go along.

the device handler passes “headers: [‘Cookie’ : “${token}”]” into the message. Is the token mandated with passwork and username? if so u cant post on post man without the token in the header

Errm I don’t believe so, it looks like an encrypted string, it’s not shown as is, these are the headers i’ve got in post, I have to post to this API first ‘https://www.yalehomesystem.co.uk/homeportal/api/login/check_login’ or I get access denied, then I post the above!


cheers,

Hi All,

Im rally interested in this… you lot are great…

I’ve got ST and Yale Alarm…

Ive created the handler from code above…

then created a smart app…

when i go to SmartThings I can see it , I’ve logged in but getting "unknown "

can any one help??

sorry if this sounds stupid…

Hi All,

Need help Plezzzzzzz…

Im getting this error when using trying to arm/disarm alarm

11:22:13: info AA- Status is: ‘system.panel_offline’ - mode ‘system.panel_offline’,

My password is correct because i can log into the yale smart home app and arm/disarm

any ideas

thanks

From what I got from it mate when I was trying to fix mine it’s dead and gone… Yale discontinued the web interface that the API’s run from, never got mine working again.

I have seen that they have the similar interface on the hub itself that you’d be able to pull the same stuff from but it requires basic auth that Yale won’t give out, myself and someone above tried to have a crack at it multiple times with no luck.

Ok Ash, Thanks for the reply.

Where are you mine still works fine. What smart app did you make?

Hi all, seems like we have some issues going on here with new users of the device handler.

So I don’t have the alarm but I would like to help if I can. First of all those of you who can’t get the device handler to work

  1. What model of alarm do you have is it definitely the easyfit 3 as I know yale have just released a new version with Alexa support etc…

  2. What kind of error are you getting and what error messages. In the same site you created the device handler can you check the live logging when you try to connect.

  3. Screen shot as much as you can and upload it here. The more information I have the easier this will be to resolve. If you don’t want to upload the screenshots to this thread then private message them to me.

I’ll do what I can

Hi Daniel,

Thanks, it’d be very much appreciate, I posted quite thorough diagnostics a bit further up even to the point of trying to call the API through POST chrome app, however please see below:

1: Yes definitely the first gen, mine is not compatible with alexa etc.
2: When following it on live logging I can see the authentication has passed and then get ‘‘Yale Alarm’ AS - Status is: ‘system.panel_offline’ - mode ‘system.panel_offline’’ even though the alarm is online and armable through the app.
3: Here is my screenshot of the logging, weird thing is it always refreshes back to ’ ‘Yale Alarm’ REFRESH - response = ‘[[area:1, mode:disarm]]’ & groovyx.net.http.HttpResponseDecorator@e213f11’ regardless if I’ve just tried to arm the alarm… and it doesn’t get the correct status as even if it’s armed in the app, it still shows that refresh message.

image

Anything further you think may help let me know and I’ll grab it.

Thanks for your help! :slight_smile:

Hi Mark,

in the uk.

i created the device handler and added the user and password in the smartThing app.

drop this in the refresh section, the log.debug bit so we can see the full response
def token = login(token)
def getPanelMetaDataAndFullStatus = [
uri: “https://www.yalehomesystem.co.uk/homeportal/api/panel/get_panel_mode”,
body: [id:settings.userName , password: settings.password],
headers: [‘Cookie’ : “${token}”]
]
try {
httpPost(getPanelMetaDataAndFullStatus) { response ->
YaleAlarmState = response.data.message
log.debug “’$device’ REFRESH - response = ‘$response.data.message’ & $response”
}

Thanks for getting back to me Mark.

I had to edit the above a little as it was expecting a catch, I write a lot of powershell stuff and similar sort of code for that so I added one in, but i’ll post what I amended for my handler incase it’s wrong/doesn’t give you what you need:

try {
httpPost(getPanelMetaDataAndFullStatus) { response ->
YaleAlarmState = response.data.message
log.debug “’$device’ REFRESH - response = ‘$response.data.message’ & $response”
}
} catch (e) {
log.debug(“Caught an exception”, e)
}

Then this was the output after trying to arm it from the debug:

1:34:29 PM: debug sending data to AT
1:34:29 PM: debug locationEventHandler [name:mode, deviceId:0ecdf19f-1f8f-4c63-b1e0-9e68042dfd80, isoDate:2019-01-07T13:34:29.581Z, unit:null, value:Disarmed]
1:34:29 PM: error groovy.lang.MissingMethodException: No signature of method: script_app_6ddd7d5e36d1b47292da49a5e09ef3b7b0e1fc6a4c3034a5efe295c5caf9846e.mode() is applicable for argument types: (physicalgraph.app.EventWrapper) values: [physicalgraph.app.EventWrapper@1c8503c1]
Possible solutions: mode(java.util.Map), now(), page(), image(java.lang.String), image(java.util.Map), main(java.lang.String)
1:34:29 PM: debug updating TS
1:34:29 PM: debug event from: Yale Alarm, value: Disarmed, source: DEVICE, description:
1:34:29 PM: debug Thermostats were not altered. No action taken.
1:34:29 PM: debug Disarmed is not in select modes
1:34:29 PM: debug evt.value: Disarmed
1:34:29 PM: trace timeOk = true
1:34:29 PM: trace daysOk = true
1:34:29 PM: error groovy.lang.MissingMethodException: No signature of method: script_app_72cbf0df8af6d395f6a5c9b8db6ecb25c3e0e1b4cc4481941d87b95bdf5b6151.mode() is applicable for argument types: (physicalgraph.app.EventWrapper) values: [physicalgraph.app.EventWrapper@158ab9f]
Possible solutions: mode(java.util.Map), now(), page(), image(java.lang.String), image(java.util.Map), main(java.lang.String)
1:34:29 PM: debug Thermostats were not altered. No action taken.
1:34:29 PM: debug Disarmed is not in select modes
1:34:29 PM: debug evt.value: Disarmed
1:34:29 PM: trace timeOk = true
1:34:29 PM: trace daysOk = true
1:34:29 PM: info ‘Yale Alarm’ REFRESH - Mode is ‘Disarmed’, Response- ‘[[area:1, mode:disarm]]’ complete
1:34:29 PM: info ‘Yale Alarm’ Logged out
1:34:29 PM: debug ‘Yale Alarm’ REFRESH - response = ‘[[area:1, mode:disarm]]’ & groovyx.net.http.HttpResponseDecorator@5c6b6f7
1:34:29 PM: info ‘Yale Alarm’ Logged in

looking at that line, your conection to yale is ok, because you got the pannel state and not pannel off line.

try this, ive been using it for ages now with no problems, should just drop over your current code

Ah that’s odd… just re-copied it over although I did re-paste the latest code of yours a few weeks ago from github and still got the same but just re-done it, this is the debug this time:

1:51:27 PM: error groovy.lang.MissingMethodException: No signature of method: script_app_6ddd7d5e36d1b47292da49a5e09ef3b7b0e1fc6a4c3034a5efe295c5caf9846e.mode() is applicable for argument types: (physicalgraph.app.EventWrapper) values: [physicalgraph.app.EventWrapper@41b6ad82]
Possible solutions: mode(java.util.Map), now(), page(), image(java.lang.String), image(java.util.Map), main(java.lang.String)
1:51:27 PM: error groovy.lang.MissingMethodException: No signature of method: script_app_72cbf0df8af6d395f6a5c9b8db6ecb25c3e0e1b4cc4481941d87b95bdf5b6151.mode() is applicable for argument types: (physicalgraph.app.EventWrapper) values: [physicalgraph.app.EventWrapper@6d2f41e]
Possible solutions: mode(java.util.Map), now(), page(), image(java.lang.String), image(java.util.Map), main(java.lang.String)
1:51:27 PM: error groovy.lang.MissingMethodException: No signature of method: script_app_72cbf0df8af6d395f6a5c9b8db6ecb25c3e0e1b4cc4481941d87b95bdf5b6151.mode() is applicable for argument types: (physicalgraph.app.EventWrapper) values: [physicalgraph.app.EventWrapper@6d2f41e]
Possible solutions: mode(java.util.Map), now(), page(), image(java.lang.String), image(java.util.Map), main(java.lang.String)
1:51:26 PM: debug sending data to AT
1:51:26 PM: debug locationEventHandler [name:mode, deviceId:0ecdf19f-1f8f-4c63-b1e0-9e68042dfd80, isoDate:2019-01-07T13:51:26.773Z, unit:null, value:system.panel_offline]
1:51:26 PM: debug updating TS
1:51:26 PM: debug event from: Yale Alarm, value: system.panel_offline, source: DEVICE, description:
1:51:26 PM: debug Thermostats were not altered. No action taken.
1:51:26 PM: debug system.panel_offline is not in select modes
1:51:26 PM: debug evt.value: system.panel_offline
1:51:26 PM: trace timeOk = true
1:51:26 PM: trace daysOk = true
1:51:26 PM: debug Thermostats were not altered. No action taken.
1:51:26 PM: debug system.panel_offline is not in select modes
1:51:26 PM: debug evt.value: system.panel_offline
1:51:26 PM: trace timeOk = true
1:51:26 PM: trace daysOk = true
1:51:26 PM: debug Executing ‘Arm Away’

Something else I have noted actually speaking of that line, if I arm it in the app and do a refresh, it still shows that disarmed message, so it’s not getting the correct status :frowning:

can you filter it and just include the alarm debuging

sure, this is just the alarm, although it didn’t give much more, but I was fast at clearing the log, running and capturing so didn’t know if the other events related…

2:11:33 PM: info AA- Status is: ‘system.panel_offline’ - mode ‘system.panel_offline’,
2:11:33 PM: info ‘Yale Alarm’ Logged out
2:11:33 PM: warn Yale Alarm - AA - Status ‘system.panel_offline’
2:11:33 PM: debug AA - response = ‘system.panel_offline’
2:11:33 PM: info ‘Yale Alarm’ Logged in
2:11:32 PM: debug Executing ‘Arm Away’

cheers,

and what does refresh do?