[OBSOLETE] Integration with HoneyWell TotalConnect Alarm & Monitoring System

Thank you!!! I’m a novice at this but your instructions helped me figure out what I’ve been trying to do for months!

1 Like

Curious if anyone has been able to get motion sensors or smoke detectors to integrate using the proper sensor classification. My motion and smoke detectors are showing up as contacts instead of a motion sensor or a smoke detector. I would assume this probably could be easily fixed by creating a new device type, but thought I would check before I go create something.

1 Like

I fixed my other problem I posted earlier.

I saw people were talking about getting Alexa to work with this. Has anyone done this yet? I’d just want something simple like… Arm Home or Arm Stay.

Thanks,
Rick

You can sync the “light switch” version of the device with Alexa, but I found you can’t refer to it as “alarm” because Alexa will think you’re asking her to set an alarm with in her system.

Since I had the device named with the word alarm already, I thought of a workaround which was to create a group within the Alexa app, call it “security system”, then add the total connect “light switch” device to the group, and was then be able to say “Alexa, turn on the security system” and it will understand what you mean.

Remember, turning on the “light switch” version of the device turns TotalConnect on to Stay and locking it like a door lock turns it on to Away. However, you won’t want to arm to Away when you’re inside the home so you won’t want to use that one.

Not sure if anyone else has run into an issue with v0.3.1. Basically when I install the smart app on the Android client during the configuration the location list is not populated and there is a message that says it cant be defined. I looked at the code and found the location was not being returned properly from the locationFound function. I changed the following (essentially hard-coding the location) to get it to work (thankfully I only have a single location).

def options = locations.keySet() ?: []

Changed to

def options = locations

Has anyone else experienced this and if so how did you solve it?

I am having the same issue with IOS. it cannot find my location when setting the app up. I have tried your fix and it lets me select my location, but the app is not running right after that. I cant make any changes to the app itself after i get it installed. I have tried uninstalling and reinstalling several times and that does not seem to work. I wish i understood codeing better.

I found this post and it worked for me. New App: Integration with HoneyWell TotalConnect Alarm & Monitoring System

@cdatwood, I followed your directions for getting near-real-time status updates, up to the point of generating tokens. I receive the following after I run the PHP and authorize the app.

http://server-IP/html/smartthings/alarm_sensor_status.php?access_token=<

Save the above URL (access_token) for future reference. Right Click on buttons to copy link address.No sensors found

Any idea where I may have gone wrong or missed a step?

I’d love to see better sensor identification!

I’m trying to think ( been a while since I dredged through this code!) — from a strict code perspective, it didn’t get any contact sensors back from the SmartThings app. When you did the Oauth process, did you select the sensors associated with your Lynx system?

Yes, It was on the next page that I received the “No Sensors Found” message. I was under the assumption that this page would list the token needed for the crontab. Below are the screenshots.

Next page after “Authorize”:

Weird,
@Bryanb963

I just re-authorized it on my system and I got all my sensors to come up. Possibly dumb question: In your query string for “access_token=<” — are you putting the “<” sign there to hide your access code, or is that actually what’s being returned?

That is what is being returned.

Are your TotalConnect devices showing up as “Active” or “Inactive” when viewing them in IDE My Devices?

@Bryanb963 they’re showing up as active.

If the angle bracket/chevron is what’s being returned, I would check that your client ID/secret are correct, because it definitely shouldn’t do that. The other thing that would help w/ the debug is to add a var_dump statement on the $response variable, specifically at line 35. Can you add that statement, run the script and PM me the output? I think with that we’ll get to the bottom of it pretty quickly.

Hey all! Just wanted to say thank you to everyone who is making this possible, i’ve been watching for a few weeks before deciding to jump in and make it happen. I thought i’d post in case someone else was having the same issue as me when adding the sensors into smart things.

I followed the instructions from QCCowBoy here:

When I go into the smart things app and enter all the information ALL the sensors would show up as “faulted”. The ONLY way i was able to fix this was to go to the device, edit them enter the full 7 digit device id. Save, press refresh on teh device, then go back and delete the 7th digit in the device ID. Then it would show up as closed.

I had to do this on each sensor to get it to work.

The other issue i’m having are:

  1. Smart Things cannot send commands to the alarm panel. Smart things is able to read the status of the system (if i manually arm the system, smart things reflects this). However if i attempt to arm/disarm the system from smart things, it does nothing. Hoping there is something simple i’ve left out!
  2. When the sensor is closed, they show up as “closed” but when opened “Faulted”. The “faulted” instead of “opened” prevents any rules from working.

Just a bump in case anyone if anyone is able to help?

Please don’t kill the messenger, but I wanted to give a heads up… Public use of the TotalConnect security APIs (which are different than the T-stat APIs) are not supported by Honeywell and the super high polling rate used in the SmartApp is causing significant demand on our platform (i.e., it was high enough that it merited this post). It is coasting right below the current rate limit so anything yall can do to reduce the polling frequency would be super appreciated.

Hi Aaron, speaking for myself, I have no coding experience so I’m simply using code that someone else created. The links to the code is in a bunch of posts above (some written by me). That said, could you review the code to suggest how/where to adjust it to help? Or perhaps someone else in this thread has experience and can do this for us?

The challenge is that the APIs being used are unsupported by Honeywell. The current integration basically opens up an HTTP portal from the SmartThings cloud and requests an update for each sensor every three seconds (ie 20/minute). Hypothetically, if you had 10 sensors, this would execute 200 poll requests per minute (10 sensors * 20 requests/minute). It would create It coasts under our rate limit, but after more than a couple sensors, it does put a noticeable tax on the SmartThings cloud.

One option - although still unsupported (both because it’s custom code AND these are unsupported Honeywell APIs) - is to figure out if you can create a single request that polls the update from all of the sensors. This would reduce the volume of polls in the above example by 90% (and even more when you have >10 sensors).

This is interesting. I’m getting this:
error groovyx.net.http.HttpResponseException: Internal Server Error @ line 82

Anyone else? I’ve searched this and found nothing. I also have a Tuxedo Touch keypad, which also has an API, if that’s easier to use than the TC API, I’m happy to try it :slight_smile: