Own your HVAC
Locally

If you already use Home Assistant and have a Carrier, Bryant, or ICP communicating thermostat, InfinitESP may be what you're looking for. It's free firmware that links an ESPHome-compatible device to the HVAC's RS-485 serial bus and exposes zones, sensors, and settings in Home Assistant.

Puts HVAC data into Home Assistant.

InfinitESP announces itself to Home Assistant, sending values for zones, sensors, and settings if it discovers them on the serial bus.

Runs locally

Your thermostat talks to InfinitESP over a wire in your wall. Traffic stays on your network, and it keeps working without an internet connection.

Per-zone climate

Heat, cool, auto, and off for each zone. Dual heat and cool setpoints, fan speeds, schedules, and hold timers.

Diagnostics

Compressor RPM, blower airflow, superheat, subcooling, and coil and outdoor temperatures.

Zone & damper control

See each zone's damper position on multi-zone systems, and drive relays or motors from damper commands on the serial bus.

Home Assistant native

Registers through ESPHome automatically. Entities populate shortly after the serial bus comes online.

Free and open source

Open source under the MIT license, free to use and modify. Built by and for the community.

Sensors, diagnostics, and controls.

InfinitESP makes entities available in Home Assistant that you can chart, automate, and expose to voice assistants.

Climate

Per-zone thermostats with heat/cool/auto/off, setpoints, fan modes, and presets.

Sensors

Zone temp and humidity, outdoor air, blower RPM, compressor stage, and more.

Covers

Per-zone damper position (0 to 100%), with triggers to drive your own hardware.

Binary sensors

Bus online status, compressor running, and electric heat active.

Selects

System mode and per-zone fan speed, settable from a dropdown.

Text sensors

Zone names, hold state, thermostat network details, and comfort profiles.

Requirements

InfinitESP is experimental software for hobbyists that connects an ESP32-family device to an HVAC RS-485 serial bus.

Communicating thermostat
Carrier, Bryant, and ICP "communicating" systems talk to their components over an RS-485 serial bus. InfinitESP is designed to use this protocol. Conventional thermostat systems with simple control wires are not supported.
Home Assistant
A free, open-source home automation platform. InfinitESP surfaces its data and controls there. Home Assistant is free to self-host. Nabu Casa, the foundation's commercial partner, offers an optional paid cloud service.
ESPHome
A system for configuring ESP32-family devices from a text file. ESPHome is part of the Open Home Foundation, the same organization behind Home Assistant. InfinitESP installs through it.
An ESP32 with an RS-485 port
Any Esphome-compatable board with sufficient memory and paired with an RS-485 transceiver could work. Specific hardware is not mandated. Bring your own and let the community know how it works.
Wiring to the HVAC bus
Two data wires and a ground from the ESP32 to the serial bus. RS-485 uses a differential signal which needs to have proper polarity (A to A, B to B). Reversed polarity typically doesn't damage the hardware, so if the serial bus doesn't come up, A and B might be swapped.
Hobbyist expectations
Community project with no support guarantee. Bugs are expected and debugging is part of the experience. The software may need adjustment as equipment and firmware vary. Pull Requests welcome.

Will it work with my system?

What matters is the RS-485 serial protocol these systems share, not the brand badge. InfinitESP targets communicating Carrier, Bryant, and ICP systems.

Thermostats

Communicating Carrier, Bryant, and ICP thermostats on the ABCD bus.

HVAC equipment

Infinity or Evolution furnace, air handler, or heat pump connected to the same ABCD bus as the thermostat.

FurnaceAir handlerHeat pump

Zone controllers

Operates in one of two modes: passively observes a Damper Control Module on your bus, or emulates one. The emulation mode is for systems without a Damper Control Module installed.

emulated
This is reverse-engineered, community-built software, not a Carrier product. It seems to work for the author, but behavior can vary across equipment and firmware. Check the compatibility notes before buying hardware.
Waveshare ESP32-S3-Relay-6CH board
Waveshare ESP32-S3-Relay-6CH is a board the author has used. It's overkill for monitoring and SAM emulation, and its RS-485 interface has some caveats. Any ESP32 with an RS485 port could work. Leave a comment in Github with what you use.View on Amazon

A board, Home Assistant, and your system.

  • Any ESP32 with an RS485 port

    Any ESP32 board paired with an RS485 transceiver could do. The Waveshare board linked here is what the author runs: it has the transceiver onboard, a case, and six relay outputs. It isn't required.

  • Home Assistant

    The free, open-source smart home platform. If you already run it, you're set. InfinitESP registers through ESPHome and needs no extra integration.

  • A compatible HVAC system

    A Carrier Infinity, Bryant Evolution, or ICP system with a communicating ABCD bus. See compatibility below.

See the setup steps

How InfinitESP connects to your system.

InfinitESP connects as a device on the RS-485 serial bus.

Listening

Core functionality observes traffic already flowing between the thermostat and HVAC equipment and decodes it into Home Assistant sensors.

SAM emulation

InfinitESP can control thermostat setpoints by emulating a SAM module. It registers Home Assistant climate entities for each thermostat zone. Optional, and where more direct control begins.

Zone-controller emulation

InfinitESP can additionally emulate a Damper control module. Home Assistant sensors can report to the HVAC system as zone temperatures, and damper commands from the serial bus can trigger Home Assistant actuators. Optional, and the most involved of the three.

The risks

This is experimental software on expensive equipment.

InfinitESP is a volunteer project built by hobbyists reverse-engineering a serial protocol for fun. It is not a Carrier product. Its license provides no warranty, it is not supported, and proper behavior isn't guaranteed.

  • You are wiring a cheap board into a furnace that costs thousands.
  • A bug or a misread register could send a command your equipment was not designed for.
  • It is experimental. The MIT license and the NOTICE file spell out that you use it at your own risk.

If that's more risk than you want to take on, InfinitESP probably isn't the right fit. If local control is worth the trade to you, the rest of this page shows how to get started.

Still want to try?

Check out the more detailed setup documentation and examples on GitHub.

Install ESPHome

Grab ESPHome 2026.1 or newer, usually as the Home Assistant add-on, and clone the InfinitESP repo.

git clone github.com/nebulous/infinitesp

Add your Wi-Fi

Put your network name and password in secrets.yaml, then trim the example config to your zones.

secrets.yaml

Flash & connect

Install to the ESP32 over USB, then wire its RS-485 port to the serial bus. The ESP32 joins Home Assistant to the serial bus.

Click Install in ESPHome