Carrier Infinity integration

Below are the pics of my setup. The rs-485 adapter came with the db9 to bare wire converter.

It’s a pretty simple install. Remove the main cover on the HVAC unit then there’s a panel cover on the left-hand side you’ll need to unscrew and remove to see the board. There’s a safety trigger at the top right behind that cover that will kill power to the unit when the cover is removed. I think you can see it in one of the pics. When you replace the cover just make sure that trigger is pressed in. It’s almost impossible to put back on improperly but I managed to miss it once and you’ll get a ominous feeling in the pit of your stomach when you turn power on and nothing happens. On the Carrier board, A and B are for serial communication. C and D handle power for the thermostat so don’t plug your serial connections in those. The thermostat has a connection to ABCD and I just plugged the serial adapter into AB along side it. Once you’ve got everything put back together fire up infinitive and see what you get. There’s messages on the bus constantly so you should start seeing logs immediately. My little pi zero has been running through a 95-100 degree summer and below freezing winter and handled it like a champ.

Obligatory disclaimer:
Obviously you’re working with something that carries a lot of power so take all the necessary precautions and be safe. It’s technically not necessary to kill power to the unit but I definitely recommend it. Done safely you’ve got nothing to worry about.

One thing I forgot to mention. I didn’t get the new version uploaded to github so if you’re running 0.88 you’ll get warnings but everything should still work. I’ll try to get it uploaded in the next day or so.

This is perfect, thank you so much! I actually thought this was supposed to connect to the thermostat itself so this helps a lot knowing it’s to the attic unit.

Glad it helps. Let me know how it goes.

Will do. I ordered all of the equipment last night and it should arrive on Wednesday.

Somehow this discussion flew under my radar…

I have a couple of software-only solutions that allow HA to control my Infinity thermostat, which I’ve been using for close to year.

I went a down a couple of paths in this journey:

Using Infinitude as a proxy.

I wrapped the Infinitude proxy server in a docker container, and wrote a custom climate component that used its web API. But during the development, a firmware update broke Infinitude, and there was not an active response to resolve the issue. As a result, I ended up writing my own proxy (read more below). Long story short, development eventually resumed on Infinitude, and everything seems to work again. I was already considering a cleanup of my custom component, which I could then release to the public. This thread is probably the push I need to get that done.

Using my InfinityTouch proxy

As mentioned above, when Infinitude broke, I decided to write my own custom proxy entirely in Python. This is the solution I am currently using at home, and it exposes a more robust REST API than Infinitude. It can read & write every available option on the thermostat. The only gap in functionality is that it does not support the “passthrough” mode of Infinitude, in which the proxy will sync back to the Carrier cloud, allowing you to continue using the Carrier web/app controls in addition to HomeAssistant. At this point, I don’t think I’m going to release that feature - too many quirks to work out, and I have other areas of HA that I’d like to focus my time on. But the core proxy works great - I just need to provide some basic “How to Use” instructions, and package up the corresponding custom HA component.

Anyway, just wanted to raise some awareness to other working options. I’ll try to release the missing code shortly.

1 Like

That’s awesome!

What’s required for the proxy to function? Outside of the pi zero I have, there’s no way I know of to talk to the hvac unit. I’ve only got an old “non smart” thermostat. I can’t recall the model at the moment but I can get that this evening when I’m home.

Everything is setup and working. Thank you! I’m going to add it to my other two units, are you able to confirm that it works for multiple units as long as each has its own Pi with its own IP?

Also - I would love to help with the dev on this if needed. I have a relatively successful development company so I know development but I have a lot to learn with Python and HA development.

Just wanted to confirm that I added a second unit and HA supports it so that’s great. I’m adding my third unit tomorrow - just waited because I have a friend that wants to see the process but just confirming that multiple units do work.

Thanks again for your work on this, this is WAY better than what I thought I was going to have to do in order to get these working.

@Tj_Davis, You mention that you have two of them in HA, so what exactly did you do to get this working? What thermostat model do you have right now on your system? Did you actually have to use additional hardware to tie into the HVAC unit, or another solution?

If you can share the details of your journey to getting this to work in HA I would definitely appreciate it!

That’s fantastic! I honestly wasn’t sure about how multiple devices would be handled as I’ve only got one to test with. I don’t see a reason why it wouldn’t work but couldn’t test. Thanks for the update! I never got a notice that this thread was updated. Not sure why.

Also, sorry about the wait but I just pushed the commit for the 0.88 changes to my ha_customcomponents repo. It’s working just fine for me but I definitely would like others to try it out and let me know how it goes.

I’ll take all the help I can get on the dev side. I’m a network admin by day(and whatever other time duty calls) but I dabble in a little python in my spare time. If you see anything that looks like it could be done better I’m open to suggestions.

I’m more than happy to share - this solution was perfect, I thought I was going to have to spend a lot of money on the Carrier Infinity Touch thermostats to get it to work and it still wasn’t going to be optimal.

@mww012 does have a lot of info here, so I would recommend giving that a read as well.

I have the non-smart version of the Carrier Infinity thermostats (image attached). With the help of two pieces of open source software (Infinitive and mww012’s HA component) and a Raspberry Pi, I was able to connect my HVAC to Home Assistant and can now access it from my touch panels (image attached)

Here are the steps that I took to get it going:

  1. Bought a Raspberry Pi (Don’t forget to get a micro SD card for it)
  2. Bought a RS-485 USB adapter for the Raspberry Pi
  3. Bought some Thermostat Wire
  4. Once everything came in, I flashed the latest version of Raspbian Stretch Lite and wrote it to the SD card with Etcher
  5. Setup Raspbian install to have a fixed IP on my network
  6. Ran “apt-get install git”
  7. Ran “apt-get install golang-go”
  8. Ran “export GOPATH = /root/go”
  9. Ran “go get github.com/Will1604/infinitive
  10. Ran “go build github.com/Will1604/infinitive
  11. Placed this file at /etc/systemd/system/infinitive.service
    [Unit]
    Description=Infinitive Service
    After=network.target
    StartLimitIntervalSec=0
    [Service]
    Type=simple
    Restart=always
    RestartSec=1
    User=root
    ExecStart=/root/go/bin/infinitive -httpport=8080 -serial=/dev/ttyUSB0
    [Install]
    WantedBy=multi-user.target
  12. Ran “systemctl enable infinitive”
  13. Ran “systemctl start infinitive”
  14. Using the thermostat wire, I connected one end to the RS-485 adapter as in mww012’s pictures above.
  15. I connected the other end of the thermostat wire to the logic board in my attic unit. You will need to remove the cover from the unit and match up the green and yellow, killing power to the unit while you do it. mww012 explains this in more detail above.
  16. Download mww012’s custom climate component
  17. Copy the climate directory to [root HA directory]/config/custom components
  18. Add this to your configuration.yaml and restart:
climate:
  - platform: infinitive
    host: [Raspberry Pi IP]
    port: 8080
  1. Your HVAC unit should show up with entity_id climate.infinitive_thermostat

I typed all of this from memory so it’s subject to some typos or minor missed steps, feel free to message back and tag me if you find anything.

Carrier Thermostat:

Added to my touch panel thanks to Infinitive and the custom component by mww012:

1 Like

@mww012 Awesome, it’s working great on all 3 units now but I’ll update the component for the latest version, do you remember what was corrected in the latest version? I couldn’t be happier with it - I thought I was going to have to jump through a lot more hoops to get my thermostats connected and that it still wasn’t going to work well. This is working perfectly - thanks so much for your efforts on this, you saved the day. :slight_smile:

I did study your custom component and the pyinfinitive files and it all makes sense to me, the main thing that I think I could offer is help with documentation and publishing to get this in the standard HA release if you need that help and if that’s an option. What I don’t want to do is be the one to do all of that then get the credit for the actual components because I will have just done the “last mile.” So just let me know what, if anything, you want my help with on that.

I do have a question on the custom component, it is mostly a pretty generic climate interface with the exception of importing pyinfinitive. Did you create that from scratch or copy it from somewhere? I’m assuming it’s SOP how you did it but also assuming there are some templates somewhere to keep from having to re-invent the will when creating a component since most of the work i.e. things that make it unique to Carrier Infinity] seem to be in pyinfinitive files.

@Tj_Davis I need to get some real info in the readme for that repo. Do you mind if a use your steps above as part of it?

@mww012 - I don’t mind at all. I don’t want to be too vain - but I don’t get to contribute to open source software too often so if you don’t mind to mention me for credit I would appreciate it - but I’m ecstatic to be able to contribute in any way that I can.

Thanks for the info. I just upgraded my older thermostat to the SYSTXCCITC01-B smart thermostat that I got used of eBay for a fraction of the price of a dealer. If I would have realized there is actually a solution out there that didn’t require the upgrade to this smart thermostat, I probably wouldn’t have upgraded from old and ugly SYSTXCCUID01-B (looks like you have the same unit by looking at the pictures) :slight_smile:. But at least now I can control it with Alexa with the new unit.

I’ll likely be trying this out. My thermostat wires actually have wire nuts on them outside the unit from where the original thermostat wires connect to the furnace, so it should be pretty easy to tap into data feed of the wires. My HA setup is about 10 feet away from my furnace, so I may even bypass the raspberry Pi idea, and instead connect it directly to my ESXi physical host and spin up a vm and give it a go.

Cool - the third unit that I had actually had wire nuts outside of the unit so I didn’t even power it down before connecting. If my unit was close to the host, I would have done the same thing so I agree with you on that.

I do have the SYSTXCCUID01-B thermostat. Maybe I will cover them with some wall art…LOL.

@mww012 - Don’t worry about giving credit. It’s just a readme file, LOL. :slight_smile:

@Tj_Davis Yeah, there’s a bit of work to be done before it’s ready for a PR so I don’t think you’ll be taking credit for handling the “last mile”. I haven’t created unit tests, I know HA uses tox for code testing, and they’ve got this quality scale that I’d like to at least hit silver on at some point. For tox and unit tests I don’t know much more about them besides the fact that they exist. Just haven’t had the time to dig into it.

No worries on credit for the readme. It’s your work, you deserve your name in it.

Cool - I have read a little on the HA code testing requirements. I will take some time and run the code through some of their recommended tests and see what kind of progress I can make on getting it to silver.

Thanks again - this is awesome and has saved me a ton of time and money.