Honeywell home thermostat Binding

I posted an issue on github and I’ll post it here too in case someone else have the same issue:

Hi, I have this error in openhab log after
18:46:45.657 [INFO ] [al.handler.HoneywellThermostatHandler] - Starting Honeywell Thermostat Refresh Task with refresh interval: 20

18:46:45.659 [ERROR] [.honeywellhome.client.HoneywellClient] - Got error while trying to get Thermostats Device
java.lang.InterruptedException: null
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1048) ~[?:?]
        at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:230) ~[?:?]
        at org.eclipse.jetty.client.util.FutureResponseListener.get(FutureResponseListener.java:100) ~[?:?]
        at org.eclipse.jetty.client.HttpRequest.send(HttpRequest.java:732) ~[?:?]
        at org.openhab.binding.honeywellhome.client.HoneywellClient.getThermostatsDevice(HoneywellClient.java:77) ~[?:?]
        at org.openhab.binding.honeywellhome.client.HoneywellClient.getThermostatsDevice(HoneywellClient.java:67) ~[?:?]
        at org.openhab.binding.honeywellhome.internal.handler.HoneywellThermostatHandler.update(HoneywellThermostatHandler.java:137) ~[?:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) ~[?:?]
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) ~[?:?]
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
        at java.lang.Thread.run(Thread.java:833) ~[?:?]

And Things don’t update. I’m using version 4.0.1

I could not get the bridge to come online so I deleted the app in the Honeywell developer site, created another one, got the authorization code, generated the basic authorization token but now the curl command returns a 401 code

Any idea what could be wrong?

Thanks

Hi @clark,
my thermostat stopped to report its status and I figured out that the binding cannot authenticate to honeywellhome api.

After couple of hours I decided to recreate the application but Create a Token from an Authorization Code consistently fails with:

> Authorization: Basic <base64_consumer_key:secret>
> Content-Type: application/x-www-form-urlencoded
> Content-Length: 124
>
< HTTP/1.1 401 Server Error
< Date: Fri, 22 Dec 2023 16:09:01 GMT
< Content-Type: text/plain
< Content-Length: 0
< Connection: keep-alive
< Strict-Transport-Security: max-age=31536000

I was successfully able to retrieve authcode (several times) but not the refresh and access tokens

So did you manage to deal with the issue somehow?

Thanks in advance!

Yes I did. The way the instructions are worded it looks like on step 4, we have to send a curl command, every time I tried that it failed but it worked when I used the honeywell developer site and clicked on APIs and then create a token from an authorization code

https://developer.honeywellhome.com/authorization-oauth2/apis/post/token

That worked for me

Carlos

Thank you for the prompt response, @clark!

I figured out that the callback script, I’m using converts the authcode to lowercase :slightly_frowning_face:

https://<redirect_uri>?code=ZVF1cKsA&scope=
Success! Received authcode zvf1cksa

With the one from the url it works.

Happy holiday season!

Is anyone else struggling to keep the account Thing connected? It works for me for a few days and then I get connection refused errors and I have to regenerate the auth tokens to get it connected again. Note this is the same problem I used to have with my rules based implementation and why I eventually abandoned it.

If it’s just me I can direct my investigations one way. If others maybe something can be done in the binding.

Hey @rlkoshak

it’s not happened to me, it’s working as expected since day one
(I have a rule that works that turns on the heater every morning ).

do you still have this issue?

It turned out to be less reliable than using the Echo Control binding and Alexa integration so I’ve disabled the Thing.

But as of a couple months ago it was still happening.

I saw this exact same behavior when I implemented integration through rules so it might be something off with my account. It seems like sometimes the refresh token just doesn’t work.

Edit: I want to add that all I do with the thermostat is switch between AC and heat modes based on indoor temp and outdoor temp. Sadly this “smart” thermostat won’t do that one simple thing even though it has plenty of information to do that. We can see temp swings of 60-70 °F in the course of a day. It’s not unusual to need heater in the mornind and AC in the evening, especially in spring and fall.

I have the same problem although I only reset it once. After a while, I don’t know how long since I am not really using the items in any rule, the account thing goes offline.

@rlkoshak have you tried using “auto” mode on the thermostat? I use auto mode on the T6 and T10 and it does a pretty good job of switching between heating and cooling during the shoulder seasons where temperatures swing. It may not be enabled by default – if not, you can enable it with the “ISU” settings for your thermostat.

I’ve been though all the settings in the Residio app and all the settings on the device itself and I see nothing that works let me enable an auto mode.

Which thermostat model do you have?

T6 Pro. TH6220WF2006 to be specific. Back when it was installed the API was part of the Lyric line.

Check out ISU# 300 on page 13

Page 11 shows how to get into the ISU menu

Thanks! That did the trick. I can only set a 5 degree hysteresis between the two though. I’ll give it a shot but I might want more and go back to the rules.