[RELEASE] Beta 1 - version of Honeywell Home Thermostats (Lyric etc...)

FYI I was able to modify the app and driver code to add a new preference to toggle Permanent or Temporary hold types and a command to Remove Hold LCC

Temporary hold will hold the temperature until the next schedule period change, or until you trigger Remove Hold LCC.

This apparently only works with LCC thermostats. I won't really be able to fully test until I can check the cooling code in the spring. I'm also not sure yet if I need to add additional code to play nice with non LCC thermostats. I'll revisit this in the spring and share when it's ready, unless somebody wants to use this as-is and I will share.

My code started with @WindowWasher repo fork which includes a Celsius fix for remote sensors.

1 Like

It just occurred to me there is a huge missing piece to the work I did... how do I expose the action to RemoveHold in the Rule Machine? Do you know about this area at all @WindowWasher ?

@wj72 Hmmm, it's been quite awhile since I dug into this. I thought that if you defined a custom attribute it should just show up. At least that's what I recall about use with WebCore. Maybe it's a Rule Machine thing. Search on "Custom Command". I saw a lot of RM specific results when I did that search.

1 Like

I have a T10 and three remote temp/humidity sensors. I get errors from Honeywell about too frequents. I have the refresh interval set to 55 min (longest available besides off) but it looks like the refresh is happening faster than that.
The LOGS shows a 1699 second sleep time (28+ min) or about 1/2 the refresh interval set.
Am I misinterpreting something or is there a bug somewhere ?
I have attached screen shots of the config and long


the refresh is combining all the therms on your account.. to determine if you are doing it too often. you can try a separate account for each if that helps

I deleted the three remote sensors. They no longer show up as devices in the the Honeywell Home App. I don't see the remote sensor failures in the logs. Even with JUST the thermostat and 55 min refresh, it is failing. Do you see this behavior ?

@kanewolf I'm not sure what is going on here. I have a T9 with 3 remote sensors that is working fine with a token refresh of 30 min. Did you create your own Consumer Key and Consumer Secret? If not, the problem is probably that a number of people are trying to use the same key and the servers are having a fit. Instructions on creating your own key/secret are in the App under "Login Options"

Also, the log entry saying the next scheduled refresh in 1699 sec. indicates that your refresh is set to 30 min.

But the refresh, as you can see in the picture above is set to 55 min. You can also see that there is about a 1 hour delta between "thermostat API" calls. I don't understand what the 1699 second log is from.

I will investigate the keys.

I created a new app and new keys. I set the refresh interval at 55 min. Let's see what happens. The remote sensors are still excluded.

I'll try to reproduce the refresh time issue tomorrow. If generating your own keys fixes your other issue (I think it will), then I'd dial down the refresh time to 30 min. and add the sensors back.

Yeah, I am going to let it run for several days without errors. Then add the sensors back. If that runs clean, then move up the refresh interval.

Keep in mind that it is fairly normal for an occasional error. Networks can be temperamental. I usually get 3 or 4 errors a day with token refresh issues. The app/driver handles these transient errors pretty well, so don't worry about them.

Can the code for this be revisited? I still get these errors pretty regularly. Some better way of handling them?

Hi,

I have been using your driver ever since I installed HA system and it has been working great. I now moved to C8 and Hubitat dashboard tile is unresponsive. I have communicated with tech support and they said that there is an issue with some syntax that breaks the tile. It works fine from device screen but not tile.
They have proposed a fix but I can not find similar stuff in your driver:

Please help!

Thanks,

Alex Vaynberg

These attributes are used by the dashboard to determine which modes to display when you try to change it - thus the name being supportedXXXModes - so they are intended to be a JSON-formatted list.

Hubitat used to tolerate a plain array, but changed a few releases back to enforce consistency:

From the GitHub link, the actual event sending is abstracted, but the fix looks like it should be at Line 634:

value = groovy.json.JsonOutput(lowerCaseValues)
1 Like

ya just looked at the code for both the driver and app.. there is for instance no line that actually sets the attribute supportedThermostatModes in the code, and even though that attribute shows up in the device it is never declared..

the only reference to it all is this in the parent app and i dont see how that sets anything in the child

refreshHelper(reJson, "allowedModes", "supportedThermostatModes", device, null, true, false)

The refreshHelper method invokes the sendEvent call to the device, but currently sends the raw array/list - which gets "stringified". Instead, it needs to output as JSON, which is what my updated line 634 does.

If you change this line in the App as suggested, then invoke a refresh on the Device, it should update the attribute and the dashboard tile should start working.

1 Like

no that line does not send that as if you look there is nothing sent there as the parameters are in quotes.. so you cannot change it there.. i had to change it deaper in the function and look for that specific terms.. That function only queries that info from the device, ie gets the values and sets it.. So I had to change it deeper in where it got the values it was setting.

here is my version to try out..

https://raw.githubusercontent.com/lgkahn/hubitat/master/honeywellhome

this is only the app code.. the driver code has no change.

I am working on installing a T10+ thermostat and remote sensor (C7189R3002). This app seems to be working except for a motion attribute coming from the remote sensor. The remote sensor has an Occupancy attribute that does change state from time to time, not sure it is accurate though.

Is it possible to add the Motion attribute? What info is needed to facilitate this change?

The Honeywell driver/app has to poll the server to get all of the relevant thermostat information. The polling interval to refresh the data is configurable in the app, anywhere from every minute to every hour. It's not like a motion sensor that reports instantly when motion happens. What do you want to do with a motion attribute, given that it will never report motion instantly?