Take a look at the Z-Wave UNO 2. It is an Arduino compatible Z-wave interface where you can connect whatever you want such as GPIO, PWM, Serial UART, SPI, I2C, etc.
It definitely possible.... But, the question I must ask is why? Why not simply buy a new Smart Thermostat that already integrates with Hubitat?
If it is completely for the sake of a hobbyist activity - I completely get that! What kind of budget do you have? Are you into soldering and microelectronics (aka DIY)? Or looking for more of an off-the-shelf solution?
The "why" is because the home has an existing automation system with numerous in-wall touch screens which are used (among other things) to control the thermostats. The system is remaining.
However the existing thermostats (eight of them) are no longer made. Not too long ago three failed (lightening strike) and were replaced with Aprilaire WiFi units which the automation system happened to support. It was a quick and dirty fix.
However the Aprilaire units are most unattractive and have far too many "buttons" for folks to push and mess things up.
I like the Honeywell thermostat but the existing system doesn't support them.
So I was looking to have the existing system communicate with a Hubitat which would "host" the Honeywell thermostats.
The protocol used by the existing system for the original thermostats is quite simple and it should be easy to have a driver in the Hubitat handle the "translation".
The standard disclaimer that directly controlling HVAC equipment via a hub (any hub, not just hubitat) is discouraged would apply.
If the hub crashes/locks up/has a code issue and your heat/AC stays on too long, or doesn't turn on, or accidentally cycles the compressor so much it fries - don't complain here.
That said, have fun, and I hope it works well for you.
You might also consider an eBay CC2530 Zigbee board and use the PTVO firmware. I have a number of them working in my system. They also act as repeaters.
I made a carrier board for the cc2530 boards with a regulator etc. Let me know if your interested in the blank board (I think I have extras)
The current automation system doesn't control the HVAC gear directly but it can change the thermostat settings regards temp, fan, schedule but the thermostat controls the HVAC gear with all of the "protections" that are part of a thermostat.
Yes, it does a lot. It communicates with things like LIFX, Shelley, etc natively. It communicates with Lutron via telnet. We use programs to ping ip's and use that as triggers (such if it pings 8.8.8.8 and it fails 5 times in a row then reboot router, then hub...etc). I have an integration for one of my power bars that uses telnet...
You could use an ESP8266, along with a UART to RS232 module. The ESP8266 (or ESP32 if preferred) has WiFi onboard. You could easily write a small Arduino sketch, that implements a web server and client, to communicate with the Hubitat hub’s MakerAPI RESTful endpoint app. The sketch would then be a bridge between your existing home automation control system (RS232) and Hubitat (http calls). On the Hubitat side, the MakerAPI app would expose your Hubitat compatible thermostats (Z-wave, Zigbee, or Cloud (e.g. Ecobee)). This would mean no need for custom code on the Hubitat side of things.
I am using an Arduino MKR1010 to communicate with a Renogy solar charge controller via RS232. The controller supports Modbus. If a manual is available for the RS232 device it should have the data format and commands. I used GitHub - wrybread/ESP32ArduinoRenogy: Reads data from a Renogy solar charge controller's RS232 port with an ESP32 or Arduino as a starting point, and the TTL-to-RS232 level adjuster mentioned. I wrote a Groovy program to interact with the MKR1010 running its webserver (as ogiewon mentioned above.)
I have the documentation for the protocol used by the automation system to communicate with the existing thermostats.
The curious bit, so far, is the automation system seems to expect certain IP-to-SERIAL devices be used.
I've tried opening a TCP connection to the automation system on the appropriate address/port but I get one thermostat command and the connection closes.
Using one of the supported IP-to-SERIAL devices I can send/recv, over the com port, as needed and it works just fine.
So I decided just to use the IP-to-SERIAL device, since it works, and I set out to communicate with it from the Hubitat.
Though I am going to research using the approach mentioned using REST.