[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:
Auth, polling, reading all state
Setting heating, cooling, and auto setpoints
Changing HVAC mode
Multi-zone, away mode — implemented but untested
Water Heater:
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
- GitHub: hubitat-drivers/rheem-econet at main · brossow/hubitat-drivers · GitHub
- HPM: search "Rheem EcoNet"
- Import URL:
https://raw.githubusercontent.com/brossow/hubitat-drivers/main/rheem-econet/EcoNetThermostat.groovyand/orhttps://raw.githubusercontent.com/brossow/hubitat-drivers/main/rheem-econet/EcoNetWaterHeater.groovy
Feedback and bug reports welcome — either here or as a GitHub issue.
Hope this is useful to someone!