[RELEASE] Rheem EcoNet Thermostat + Water Heater drivers

[DRIVERS] Rheem EcoNet Thermostat + Water Heater

Want to be clear about something upfront: I'm not a developer. I built this with Claude over several sessions, using it to work through the EcoNet API and write the Groovy — with me as the tester and decision-maker. I'm sharing it because there's no EcoNet thermostat driver for Hubitat. The only existing Rheem integration (klinquist/hubitat-rheem) I found covers water heaters only, and Kris (@klinquist) has moved on to local ESPHome/RS485 integration rather than the cloud API path, which is great for people who have compatible hardware but left me without a thermostat option.

I'd been looking/hoping for a Hubitat driver since we got the new furnace and thermostat installed over a year ago but nothing magically appeared, so I decided to go for it. An imperfect driver seemed better than none.


Installation

Via Hubitat Package Manager (recommended):

Search HPM for "Rheem EcoNet" and install.

Manual:

Hubitat → Drivers Code → New Driver → Import, paste the appropriate URL (below), click Import → Save

Thermostat:
https://raw.githubusercontent.com/brossow/hubitat-drivers/main/rheem-econet/EcoNetThermostat.groovy
Water heater:
https://raw.githubusercontent.com/brossow/hubitat-drivers/main/rheem-econet/EcoNetWaterHeater.groovy


What's included

  • EcoNet Thermostat — partially tested (see below)
  • EcoNet Water Heater — untested; offered as a starting point (see below)

Both use the ClearBlade REST API (same backend as the Rheem app) for polling and command publishing. Cloud-dependent; no local control. Both were inspired by the Home Assistant pyeconet integration.

The thermostat driver goes beyond the HA integration in a few meaningful ways: it enforces the device's own deadband when adjusting setpoints in auto mode (sending both setpoints in a single command), correctly reports thermostatSetpoint in all modes including auto, exposes fan speed as a separate attribute alongside fan mode, and handles token expiry and login retries automatically.

The water heater driver was written with similar care, though I have no compatible unit to test it on. Compared to Kris's cloud driver, it makes a few different choices: modes are read dynamically from the device rather than hardcoded, so it won't break if Rheem adds or renames modes. It handles all three EcoNet control styles (some devices use @MODE, some use @ENABLED, some use both) without any per-device configuration. It resolves the firmware's ELECTRICGAS dual-mode entry by checking the device type at runtime. The Switch capability restores the last active mode when turned on rather than defaulting blindly. The ThermostatMode capability maps water heater modes to heat / auto / emergency heat / off for Rule Machine compatibility. No parent app required. Celsius/Fahrenheit selectable. The caveat is real, though: none of this has been verified against a live device.


What's been tested

Thermostat:

  • :white_check_mark: Auth, polling, reading all state
  • :white_check_mark: Setting heating, cooling, and auto setpoints
  • :white_check_mark: Changing HVAC mode
  • :question: Multi-zone, away mode — implemented but untested

Water Heater:

  • :x: Entirely untested — I don't have a compatible unit

Caveats

  • I can't debug this at a developer's level, and I can't promise sustained maintenance, but I'll do my best.
  • The water heater driver is a best-effort implementation, not a tested release. I included it in case it helped someone else.
  • Bug reports, fixes, and pull requests are very welcome.

Thanks to Kris (@klinquist) for his water heater work and continued presence in this community — I hope this complements rather than steps on anything he's doing.


Links

Feedback and bug reports welcome — either here or as a GitHub issue.

Hope this is useful to someone!

Just a quick update: Been using this for nearly a week with absolutely no problems. Since originally posting just a few days ago, winter has turned into spring and we've had a couple AC days. I've therefore been able to test both cooling mode as well as auto mode, and both work exactly as expected. Updated the original post accordingly.

Would love for anyone else with this thermostat (and/or water heater) to check it out and either confirm it's working for them as well or else suggest fixes or improvements. It's been flawless for me, so I'm not sure where else I could take this.

Update: infrastructure change — one-time action required if you have this installed

I've consolidated all of my Hubitat drivers into a single repo and changed the driver namespace. HPM will handle the code update automatically, but the namespace change requires a manual one-time reassignment on each device.

What changed:

What you need to do (one time, takes about a minute):

  1. In Hubitat, go to HPM → Update — let it update the Rheem EcoNet package
  2. For each EcoNet device (thermostat and/or water heater):
    • Go to the device page
    • Change Type to the appropriate driver (namespace: brossow)
    • Click Save Device

No settings, history, or attributes are affected — just the driver assignment.

New import URLs (if you installed manually rather than via HPM):

Thermostat:   https://raw.githubusercontent.com/brossow/hubitat-drivers/main/rheem-econet/EcoNetThermostat.groovy
Water heater: https://raw.githubusercontent.com/brossow/hubitat-drivers/main/rheem-econet/EcoNetWaterHeater.groovy

Sorry for the one-time churn. Getting the infrastructure sorted before this expands further.