[OBSOLETE] Integration with HoneyWell TotalConnect Alarm & Monitoring System

I can’t get the TC Contact Tester device to generate events in the log so I can grab the zone and row information that I need to create the contact sensor device. Everything else is working properly with the alarm arming status and arming/disarming.

Do you have to have a certain tier of TotalConnect service that exposes the zone status information for it to show up? I heard that they have different levels that provide less or more detailed information from the alarm. I have a feeling I just have the basic service to arm/disarm. I can log in to the alarmnet site and also on the app and see the status of the zones so you would think this should just work.

If you hold up a few more days I’ll have a more elegant solution… I don’t like that zones are identified via order instead of by zone number in the setup that is out there. Also I’ve found in testing the last few days that getPanelMetaDataAndFullStatus is returning a value for the ZoneStatus but its not right (which is what that is using) and pullling that data from another command returns a completely different ZoneStatus (which happens to be correct).

I’m down to writing the service manager polling method and making some decisions on how to handle certain scenarios. Hoping to finish up today, but it may be early next week. Should allow you to pick all devices from TC 2.0 you want to include, poll them, and send commands with minimal manual entry or work.

Thanks! Looking forward to it.

Increasing the refresh time to 20 seconds fixed it for me. Mine was staying in “Arming” state before.

Here is a first release of a full on service manager & device handlers for TC2.0… It implements a centralized updating process and integrates alarm, zone sensors, and automation devices (really only the garage door handler is fully fleshed out, as that is not a zwave device that can be added to SmartThings). Preferences only really asks for username and password and walks you through the rest (no manual App version, locationId, deviceId, or even zoneIds).

Occasionally preferences fail to load or fail to update (there is alot of stuff going on and sometimes I think it just times out), but if you try again it will work.

There still alot of cleanup and improvements to go. Updates should happen Asynchronously with the new beta async methods, but that requires a reconfiguration of all that code but will solve some of the timeouts caused by TC’s online service being mediocre at best.

Code here (you need the smartapp and the device handlers):

Let me know if anyone else tries it and finds issues/things they would add/change. I only have a few contact sensors and a few motion sensors so I don’t have enough information to code in any other Honeywell sensors (smoke, glassbreak, theft, water, etc), but could if provided data on them.

4 Likes

What you have done is simply amazing!
I installed it this morning and it works like a charm. Allowed me to configure the smart home monitor in the Smartthings mobile app.
Do you have any opinion on the right polling frequency to set?

This is awesome, thanks so much! I just installed, but running into an issue. I enter my username and password, which pulls back the location that I am able to select. But I can’t go on to the next page from there, it tells me that a required input is missing. It looks like it needs a value in “Security Device ID - Do not change” but mine is blank. Am I doing something wrong?

I’d have to see what it’s throwing. Do you get messages in live logging from the IDE? Any chance you can send me what it says? Also what alarm system do you have? Maybe it has a different format than mine…

If you’re not doing zone sensors you need quicker responses you’ll have most reliable results with 1 minute or more (my non zone sensors are set to 1 minute). Those use the runEvery scheduling or cron which is way more dependable than the manual scheduling you have to do under a minute.

Hello,
I was getting your same error.
What i did to get past this was manually type in the same values depicted under the “Do not change section” then for the blank one put in the same value as automation id…

So it fills in the location ID and automation ID, but not the security ID? My guess was you’ll only have an automation ID if you have a zwave card in your panel. Most of this is guessing based on what I see on my panel only since there is almost no documentation from Honeywell on most of this.

Android or iOS?

It could be your panel reports its IDs differently… Would be willing to work with you to see whats going on. On my panel my security ID is 1 less than my automationID. (Ex. automationID 1647347 would be securityID 1647346).

This would be helpful to figure out what I need to change likely for the different panel type (I have a lynx touch so it may report back slightly different data):

  1. Go to: https://rs.alarmnet.com/TC21API/TC2.asmx?op=AuthenticateUserLogin

  2. Enter your userName, password, ApplicationID 14588, and ApplicationVersion 3.0.32

  3. Hit Invoke. It will open a new window. You need the data inside the brackets. Copy it to your clipboard.

  4. Then go to: https://rs.alarmnet.com/TC21API/TC2.asmx?op=GetSessionDetails

  5. Use the SessionID you copied and the same ApplicationID 14588, and ApplicationVersion 3.0.32.

  6. Hit Invoke. This is where all the data comes from…

I’d love to see a copy of this output but there is a ton of sensitive information in it, so don’t do that… Really I think the part we care about for this problem is under .

  • Do you have a SecurityDeviceID here (above )?

  • What DeviceName objects are under ? Mine shows a “Security Panel”, “Automation”, “Front Door” (since my zwave front door lock is a secure device) and thats it. Do you not have “Security Panel” but maybe have something else?

1 Like

Thanks
For looking into this.

I have a tuxedo touch WIFI with Z wave controller built into it.
Yes i have the two zwave device and the GSM Moduel listed.

With the links you provided i was able to find the below … I will input these values manually and see what happens.
DeviceID (same as your automation ID)
SecurityDeviceID ( in my case the GSM MOduel)
LocationID (my location Id)

I’d love to make the fix to make it work. Can you tell me the format that you found? Here is my Locations output for reference:

  1. Did my app pull any of those 3 values for you originally (assuming locationId at least)? Were they correct if so?

  2. Were those values under DeviceList like mine (if so, what was the “DeviceName” filed listed with them)? or only listed above like SecurityDeviceID? mine was listed both as a DeviceID and above (the Security Panel DeviceID and the SecurityDeviceID matched)

Perfect, I have saved to change some code if you want to take it down to be safe.

Done !
Much thanks. for working on this.

While you are working on that portion…is there an easy way to Add the “Armed Stay” to your app? you already have the "Armed stay instant"
I notice a few instances of that in your .groovy file but i have no icon/option on the smartapp.

Updated the SmartApp with tweaks that based on your data and mine will make the automatic detection of DeviceIDs work (using DeviceClassID instead of the name since 1 seems to be the security panel no matter what the name and 3 is the zwave automation device). Update from GitHub

As for Armed Stay Instant, you cannot trigger it at the moment based on another action or with a routine (still trying to figure out how to make that work using standard methods), but you should be able to do it in the device. When its disarmed, hit “Delay” and it will change to instant. Then when you arm stay, it will arm stay - instant. It then resets back to delay on your next arm, but will show “Armed Stay - Instant” as the status.

Not sure about your panel, but mine has both an armed stay instant and an armed night mode which are technically different. I have not implemented the armed night mode, but could… I believe its just adding a UI button, I think the methods are already written in there.

One thought was to make the instant/delay a switch action, but the arming uses that to differentiate between arm stay (switch) and arm away (lock). To easily trigger with actions we’d have to have something normal to use to activate both commands and the opposite to disarm.

Maybe could do a preference for the alarm to default to instant for arm stay?

I’ve got a question…

I’ve got four of the lyric Wi-Fi leak/freeze detectors.

Can this be modified to work with those as well?

Looks like this might be exposed through a different set of APIs (which in your case is a good thing b/c the undocumented stuff in this App is a pain).

https://developer.honeywell.com/api-methods?field_smart_method_tags_tid=All

You’d be better off with someone who has one to attempt this as writing it blind is very unlikely to work out well for me

1 Like