Communicating with Honeywell Wi-Fi Thermostat

Hey, y'all -- I'd like to build an Arduino project that can control my Honeywell RTH6580WF Wi-Fi thermostat.

I've just gotten into Arduino, but I know if I can imagine a project, and if it's possible, somebody's already done it. :slight_smile: Anyone know where I could find some useful info regarding the necessary hardware and method? Thanks!

Start digging up info about the Honeywell RTH6580WF Wi-Fi thermostat and present it here.

Railroader:
Start digging up info about the Honeywell RTH6580WF Wi-Fi thermostat and present it here.

I don't have a lot of info to post. This is the thermostat:

https://www.amazon.com/Honeywell-Programmable-Thermostat-RTH6580WF-Requires/dp/B00Y6M2OUC

I've also found Honeywell's Home Developer site, with information about their APIs...

https://developer.honeywellhome.com/api-methods?field_smart_method_tags_tid=39

...but I'm an Arduino noob, and I don't know what's involved in connecting the Arduino to a network and having it exchange GET and POST data with another device on the network.

Those links are sails peoples info. You need to dig deaper and find out what commands are used etc.
Running Wifi from an Arduino is the next task.

Your idea is surely doable.

Railroader:
Those links are sails peoples info. You need to dig deaper and find out what commands are used etc.
Running Wifi from an Arduino is the next task.

Your idea is surely doable.

Sorry, I inadvertently posted the product URL where the Honeywell API URL was supposed to go. I edited the post. Thanks for pointing that out!

Okey, such things happend.
However, You need to go deaper and find the needed information. Sorry but I don't use my time to do that.

Railroader:
Okey, such things happend.
However, You need to go deaper and find the needed information. Sorry but I don't use my time to do that.

Okay, thanks.

To be clear, I didn't actually expect anyone to research this for me. My hope was simply that someone would know of a project like the one I have in mind and would be able to link to it or give me some tips on finding it, so I could see how someone else did what I'm interested in doing. My own efforts have not turned up anything yet.

For example, if someone asked for information on how to make a robotic clock that tells time by moving refrigerator magnets, I'd be able to say "I remember seeing something like that" and post a link to it. :slight_smile:

[0clock%2C%20it%20is...%20More%20]https://www.instructables.com/id/Refrigerator-Magnet-Clock/#:~:text=%20Refrigerator%20Magnet%20Clock%20%201%20Step%201%3A,backside%20of%20the%2]0clock%2C%20it%20is...%20More%20](https://www.instructables.com/id/Refrigerator-Magnet-Clock/#:~:text=%20Refrigerator%20Magnet%20Clock%20%201%20Step%201%3A,backside%20of%20the%2)

You're almost searching for a needle in the haystack.
Interfacing undocumented equipment is often more ir less hopeless. It takes a lot if reverse engineering. A transmitter can be traced but how figure out what to send to a receiver? Mission impossible most of the time.

It's not undocumented. In fact the Honeywell site has a lot of API documentation. I have an older version of the same thermostat and would like to use the APIs myself. But there's a problem in the instructions where you are directed to get an OAuth2 Bearer Token, but the link to the page to get the token is broken.

When you create a new app on the developer page, you are given a "Consumer Key" that looks like this: "noxA9XXXXXXXXXXhlB8ZXbXEJNmEClEE" (Of course I changed a lot of characters from mine).

But, is that an API key?

That is about as far as I've gotten and I am already in over my head.

I haven't really looked at the API key process yet; I've just been looking at the API documentation and trying to visualize how they'd work as part of a program.

I'm wondering if the first step might be to first bash together a web app to control a thermostat, so I'm working in (slightly) more familiar territory. Kind of a proof of concept, for lack of a better term, before trying to build an Arduino project to control the thermostat.

That would also have the benefit of letting me find out if the API even supports my thermostat before I put any effort into the Arduino side. It's kind of unclear which thermostats the API works with. Some of the documentation mentions the Round thermostat; elsewhere it mentions T-series thermostats; and in other places, it just refers to thermostats and doesn't mention a specific model or line.

refriedwhiskey:
I'm wondering if the first step might be to first bash together a web app to control a thermostat, so I'm working in (slightly) more familiar territory. Kind of a proof of concept, for lack of a better term, before trying to build an Arduino project to control the thermostat.

Sounds like a very good idea. If you're messing with oAuth tokens and API calls, it'll be a lot easier to get it working with the debugging tools on a PC. It might even be worth leaving those functions on the PC and have it provide a simpler interface for the Arduino to use.

It's annoying that there doesn't seem to be a way to talk to the thermostat without using Honeywell's cloud services.

And here we are with all the power of the Arduino universe...
What does our smart thermostat do that we can't with an 8266 board and a DS18B20?

wildbill:
It might even be worth leaving those functions on the PC and have it provide a simpler interface for the Arduino to use.

Yes, I'm starting to think that's how I'll end up doing it. It would mean leaving the host computer running at all times, but I tend to do that anyway.

I wish Honeywell had a software emulator for testing calls to the API. I know I can't blow up my actual thermostat with bad code, but it'd be nice to be able to develop everything in a virtual scenario so I know any problems are not the result of a hidden fault in my particular thermostat. An emulator would remove that unlikely but potential X factor.

SteveMann:
And here we are with all the power of the Arduino universe...
What does our smart thermostat do that we can't with an 8266 board and a DS18B20?

Arduino's amazingly versatile, for sure. In my search for information on controlling my Honeywell thermostat via an Arduino project, I've come across projects where people built their own smart, wireless thermostats around Arduino.

There's actually one on this site: Arduino Project Hub

It's a possible way to go. Build a project like the above and chuck my Honeywell. The Honeywell's just so much more attractive than what I think I could build myself. :slight_smile:

If you're talking about the enclosure, I recall watching a YouTube video of someone breaking a Honeywell thermostat down and identifying the internal components. IIRC, there was enough info to let you keep the buttons and display and replace the brains.

Alternatively, a 3D printing service would be able to make you whatever enclosure you fancy.

I don't know how good Honeywell is at keeping their cloud services running, but I would expect to get at least 25 years out of a thermostat and I have my doubts that the service and API would remain unchanged over such a period: "Oh sorry, we had to upgrade our oAuth server, it's not backward compatible". :wink:

Good points, wildbill! Thanks.