Oh yeah! I got it working!
I modified JTT’s code a bit so that there’s 3 more commands you can send it, and added dummy commands that flip the smartthings tile status without sending any alarm commands, so now it can receive updates correctly via the urls in alarmserver.py
Now i’ve got a single device that shows Arm/StayArm/Disarm status all in one. I needed to change around alarmserver.py as well, but this new setup I’ve got working seems much nicer than the separate devices for stay/away from before! I just tested everything from both directions - receiving updates after activating the alarm myself, as well as pushing the updates correctly. This is probably the nicest i’ve had this working to date…
Now i’m tempted to see if there’s some way to report the “Exit/Entry delay” status without having to make it a button that doesn’t do anything…maybe another tile that just shows exit/entry delay on or off…
I’ve also cleaned up the python code and made it so you don’t need to use URLs like I was mentioning before…the config file looks kinda like this now:
`smartthingsurl=https://graph.api.smartthings.com/api/smartapps/installations/
apptoken=
accesstoken=
alarmtoken=
[zone1]
description=Front
type=contact
token=
[zone2]
description=Garage
type=contact
token=
[zone3]
description=Back
type=contact
token=
[zone4]
description=Front Motion
type=motion
token=
`
On a further note, i went a bit more crazy and I actually just added support for all the following states and the ability to define multiple alarm panel/switch devices in the config file, now you can have individual switches for away/stay, or combined ones, and/or status-only panels that can show way more than I anticipated…now i’ve got all the following working on my status-only panel (which is based on kent halloway DSC single panel’s but i ripped out all the logic and just made it a dumb actuator that only takes rest api calls from alarmserver and now it can do proper away/stay reporting), the alarm server config looks like this for it:
combined stay/away/disarm panel
[alarm1]
token=xxxxx
away=armstatus
stay=staystatus
off=disarmstatus
ready=disarmstatus
single away switch
[alarm2]
token=xxxxxx
away=away
stay=disarm
off=disarm
ready=disarm
single stay switch
[alarm3]
token=xxxxxx
away=disarm
stay=stay
off=disarm
ready=disarm
multi-status panel actuator
[alarm4]
token=xxxxxxxx
type=actuators
away=away
stay=stay
off=disarm
exitdelay=exitdelay
entrydelay=entrydelay
notready=notready
ready=ready
alarm=alarm
As you can see - you can map commands any number of ways. I map ready to disarm because if the alarm is disarmed while alarmserver is activated, it never sends the signal for “Disarm” but it does send the “ready” state. For the dumber panels, I just let it activate disarm. For the multi-status panel, when you actually do disarm, you’ll see it go “disarmed” then “ready” which is kinda cool. That panel has no switches for now - it’s just providing a place for full status. If i learn a little more about how all these tiles work maybe i can figure out how to combine the stay/away/disarm multi-switch into the multi-status panel thing…then you wouldn’t need a separate multi-switch (but you may still want the separate stay/away switches as i’ve realized the simple on/off switches make it way easier to use in routines or whatnot…)
I didn’t expect to be digging that deep into it but i’ve already pretty much modified alarmserver, the alarm integrator, jtt’s switch panel and kent’s status panel, so needless i’ve made a few changes ! I’ll try to polish all this up and get it onto github somewhere…
OK and one last update…I did manage to combine the multi-status panel with the multi-switch, so now you really only need one panel to show all the statuses and let you switch from away/stay/disarm. However you can still have a separate dedicated stay/away switch as well which is still nice for some things…it will update the status of all of them too with my new config format!