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.
InfinitESP announces itself to Home Assistant, sending values for zones, sensors, and settings if it discovers them on the serial bus.
Your thermostat talks to InfinitESP over a wire in your wall. Traffic stays on your network, and it keeps working without an internet connection.
Heat, cool, auto, and off for each zone. Dual heat and cool setpoints, fan speeds, schedules, and hold timers.
Compressor RPM, blower airflow, superheat, subcooling, and coil and outdoor temperatures.
See each zone's damper position on multi-zone systems, and drive relays or motors from damper commands on the serial bus.
Registers through ESPHome automatically. Entities populate shortly after the serial bus comes online.
Open source under the MIT license, free to use and modify. Built by and for the community.
InfinitESP makes entities available in Home Assistant that you can chart, automate, and expose to voice assistants.
Per-zone thermostats with heat/cool/auto/off, setpoints, fan modes, and presets.
Zone temp and humidity, outdoor air, blower RPM, compressor stage, and more.
Per-zone damper position (0 to 100%), with triggers to drive your own hardware.
Bus online status, compressor running, and electric heat active.
System mode and per-zone fan speed, settable from a dropdown.
Zone names, hold state, thermostat network details, and comfort profiles.
InfinitESP is experimental software for hobbyists that connects an ESP32-family device to an HVAC RS-485 serial bus.
What matters is the RS-485 serial protocol these systems share, not the brand badge. InfinitESP targets communicating Carrier, Bryant, and ICP systems.
Communicating Carrier, Bryant, and ICP thermostats on the ABCD bus.
Infinity or Evolution furnace, air handler, or heat pump connected to the same ABCD bus as the thermostat.
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.
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.
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 Carrier Infinity, Bryant Evolution, or ICP system with a communicating ABCD bus. See compatibility below.
InfinitESP connects as a device on the RS-485 serial bus.
Core functionality observes traffic already flowing between the thermostat and HVAC equipment and decodes it into Home Assistant sensors.
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.
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.
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.
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.
Check out the more detailed setup documentation and examples on GitHub.
Grab ESPHome 2026.1 or newer, usually as the Home Assistant add-on, and clone the InfinitESP repo.
git clone github.com/nebulous/infinitespPut your network name and password in secrets.yaml, then trim the example config to your zones.
secrets.yamlInstall 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