Rheem EcoNet
Cloud integration with Rheem / Ruud EcoNet Wi-Fi thermostats, hybrid heat-pump water
heaters, tank and tankless water heaters, and water softeners via the EcoNet cloud
REST API (rheem.clearblade.com). One GEM device row authenticates against a single
EcoNet account; each unit enrolled on that account becomes a GEM zone keyed by the
EcoNet equipment id.
Prerequisites
- A Rheem EcoNet account with at least one unit enrolled and reachable in the EcoNet mobile app.
- Account credentials (email + password).
- Outbound HTTPS from the GEM server to
rheem.clearblade.com(port 443).
The EcoNet cloud uses the ClearBlade platform behind the scenes. If your network
inspects TLS or blocks unknown Amazon regions you may need to whitelist
rheem.clearblade.com and the *.clearblade.com CDN paths it redirects to.
Setup
- Sign in to the EcoNet mobile app and confirm every unit you want to control is online. If a unit shows "offline" in the app it will also fail here — fix Wi-Fi coverage or repair the unit before adding it in GEM.
- In GEM admin, open System → Devices → Add, pick driver
rheem_econet, and set:- EcoNet Account Email — the email address you use in the app.
- EcoNet Account Password — the password you use in the app. Stored
encrypted via GEM's
secure_attributemechanism.
- Save the device. On first connect the driver logs in and caches a userToken (~1 h TTL). It silently re-authenticates when the token expires or a request comes back with a 401.
- Run the
get_equipmentcommand from the Script Console (or via the AI assistant) to list the units on the account. Each row includes anidfield — that is the zone address. - For each unit, create a GEM zone under the appropriate subsystem (
climatefor thermostats,waterfor water heaters and softeners) with the driver device selected andzone.addressset to the EcoNet equipment id.
Attributes
Device
| Attribute | Type | Required | Notes |
|---|---|---|---|
email | string | yes | EcoNet account email. |
password | string (secure) | yes | EcoNet account password. Encrypted at rest. |
status_interval | int (ms) | no, default 60000 | Poll interval for equipment status. Minimum 30 000 ms; the EcoNet cloud does not publish rate limits, so keep this above 30 s. |
Zone
| Attribute | Type | Notes |
|---|---|---|
address | string | Numeric EcoNet equipment id from get_equipment. |
State attributes surfaced by the driver each poll:
| Attribute | Type | Notes |
|---|---|---|
state | string | on or off — derived from mode or @ENABLED. off when mode contains "off" or "vacation". |
mode | string | Raw EcoNet operating mode (e.g. Energy Saver, Heat Pump, Electric, High Demand, Vacation, Off, or thermostat heat / cool / auto / off). |
setpoint | float | Target temperature. Units follow the EcoNet account configuration (F or C); GEM does not convert. |
temperature | float | Current tank / room temperature, same units as setpoint. |
Commands
| Command | Args | What it does |
|---|---|---|
on | address | Clears Off / Vacation mode. Restores prior operating mode. |
off | address | Sets Off (or Vacation for water heaters without a discrete off). |
setpoint | address, setpoint | Writes the target temperature. Must match the account unit (F or C). |
set_mode | address, mode | Writes the operating mode string (see mode list above). |
set_fan_mode | address, mode | Thermostat fan mode: auto or on. |
get_equipment | — | Lists every unit on the account. Use this to discover zone addresses. |
get_status | address | Returns the last full status payload for one zone (useful for debugging or exposing extra telemetry). |
Zone Address Format
A plain numeric string as returned by get_equipment — for example "12345678".
Do not include the location name or unit name. If your account has more than one
unit with the same nickname, get_equipment will still return distinct ids.
Known Limitations
- The driver does not yet parse hybrid water heater alerts, filter status, or
vacation-mode date ranges.
get_statusreturns the raw payload if you need them via a script. - Water heater setpoints are written directly with no min/max clamp on the
client side — the EcoNet cloud will reject values outside the unit's
supported range (
400 Bad Request) but the driver does not pre-validate. - Multi-zone thermostats (rare on Rheem) are treated as a single zone. The first setpoint / mode is what gets read and written.
- The API's rate limits are undocumented. Polling every 60 s is what the EcoNet mobile app appears to do; going below 30 s risks getting throttled.
Troubleshooting
auth returns 401. Verify the email and password work in the EcoNet mobile
app itself. The cloud does not use a separate developer credential — the app's
credential is the API credential.
get_equipment returns an empty array. Open the EcoNet app and confirm at
least one unit shows online. Newly paired units can take several minutes to
publish to the cloud after first setup. If the app also shows the unit as
offline, fix that before retrying here.
setpoint command reports not yet implemented or 400. Some tankless
water heaters do not expose a numeric setpoint (they run at a fixed factory
temperature). Use set_mode / on / off for those units.
Mode string rejected. Water heater modes are case-sensitive strings on the
EcoNet cloud (Energy Saver, not energy_saver). Copy the mode string from
get_status if in doubt.
Rapid disconnect / reconnect churn. If the userToken renews faster than
expected the driver logs login did not return user_token and marks itself
offline. Confirm the account is not being used in multiple mobile apps at once
— EcoNet sometimes invalidates older tokens when a new app session logs in.