Honeywell thermostat binding

Hey, I created a very basic Honeywell binding using Honeywell public API.
You can find the JAR and more info in my openhab-honeywellhome repo
read the readme.md file for more info and how to integrate.

  • This is beta beta beta version (working on my Openhab for one week without any problem) and very basic for now. I will keep working to improve it and add more support
1 Like

You should post this to the marketplace. That will make it so users can install it just like official bindings if they have the marketplace enabled.

And for how to handle the OAuth2 stuff a little more seamlessly you can look at the Amazon Echo Control binding.

Good point…
I will post it once I will add some more channels and improve it a little bit more.
(or do you think it’s ok to put it there at this point?)

I think it’s OK to post something now. Just make it clear in the description that it’s a work in progress. If you keep up with the change log in the post it also makes it easier for testers to see when it’s been updated and what changed.

Way back when I messed with the API there was the ability to independently control the fan. Is that still the case? It’s my primary use case really.

ok.,.
I was able to control the fan (auto/circulate/on) via curl commands.
I will add that next to the addon.

1 Like

Can’t wait to test it out. I have been using the Somecomfort_homie python approach. It works well for one device, but my home is zoned and I have 4 devices. I could send commands to any device just fine but only the first device would update the values in openHAB. I also used the Alexa skill, but it has limited functionality and at times (not now) , the AmazonEchoControl binding has been lees than fully reliable. I will report back once I test it.

I agree that using the Marketplace makes it easier for people to help you test it.

Hey,
I create a new version with Fan support and you can find it here

I will add it to the marketplace soon, I have to fix my GitHub pipeline/versions first.

@BigGeorgeTx be aware about the rate limiter section in the readme file.
If you have 4 devices your refresh interval should be ~60 sec.
I reach out to the Honeywellhome dev team asking for some info - the rate limiter does not make any sense and does not align with their rate limiter document

1 Like

Thanks. I saw that I would need to adjust the refresh interval.

I appreciate the detailed authentication instructions. It was clear to me what I would need to do until I got to the 2nd paragraph of Step 4. I’m sure the problem is my lack of expertise, but would appreciate any additional hints you may have.

Are you referring to

you will need to create a basic auth token with your Consumer Key and Consumer Secret, you can use [this]([https://developer.honeywellhome.com/api-methods](https://mixedanalytics.com/tools/basic-authentication-generator/)) for that (Consumer Key:Consumer Secret), and add to the following parameters as application/x-www-form-urlencoded` grant_type = authorization_code code = {the code you got from step number 3} redirect_uri = {your app redirect_uri} (don’t know y they need it)

If so, you need to take your Consumer Key and Consumer Secret which you should have seen in step 4. These are kind of like a username and password to authenticate that very first request for the auth token. It needs to be base64 encoded so go to Basic Authentication Generator (Encode Credentials to Base 64) | API Connector, paste in <Consumer Key>:<Consumer Secret> into the form and copy the text generated after click the “Base64” button.

Use that Base64 string in place of {YOUR_BASIC_AUTH TOKEN} in the curl request.

1 Like

I made it through the authentication but ran into trouble logging in with my Honeywell credentials. It is then that I realized that my older thermostat (RTH 9250) uses the Honeywell Total Connect Comfort app and not the newer Honeywell Home app. Hopefully at some point Honeywell will merge them.

I went through all the steps installing the binding and adding a T5 thermostat.
Both the Honeywell account thing and the thermostat thing show ONLINE

None of my linked items get updated

This is an example of the log when I added a new item

2023-07-09 12:51:54.010 [INFO ] [l.handler.HoneywellThermostatHandler] - Starting Honeywell Thermostat Refresh Task with refresh interval: 20
2023-07-09 12:51:54.336 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception: 
java.lang.NoSuchMethodError: 'void org.openhab.core.library.types.DecimalType.<init>(long)'
	at org.openhab.binding.honeywellhome.internal.handler.HoneywellThermostatHandler.update(HoneywellThermostatHandler.java:140) ~[?:?]
	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) ~[?:?]

Seems to be related to the type of number

Here is the item definition

label: T5 Cool Set Point
type: Number:Temperature
category: ""
groupNames: []
groupType: None
function: null
tags:
  - Point

I’m on 4.0.0.Snapshot Build 3530

Thanks

I try it only on OH 3
I will try on OH 4 and see what is going on
seems like the same issue as this one.

I will try to get into it today.

This new 3.0.3 version should fix it
(I was not able work with OH 4 in my local dev env, but I guess my changes should fix it)

(if you still getting any issues please post them in this thread)