Introduction
ESPHome-Econet enables fully local, cloud-free control of Rheem water heaters and HVAC systems using ESP32 and ESP8266 microcontrollers. This already unlocks powerful monitoring and automation, but it still leaves one important question unanswered:
How efficient is the system right now?
Manufacturer COP (Coefficient of Performance) ratings are static values measured under ideal laboratory conditions. In real installations, ambient temperature, usage patterns, and operating modes change constantly. This gap is what motivated me to explore real-time COP calculation using only the telemetry already exposed through ESPHome-Econet and Home Assistant.
The Idea: Measuring COP from Live Telemetry
Instead of relying on published specifications, the goal is to derive a live efficiency metric using actual operating data from the water heater. This requires combining two measurable quantities:
- Electrical input power (W): Reported directly by the Rheem unit
- Thermal output (Q): Inferred from how quickly the tank water temperature increases, given the tank’s volume
The initial exploration, implementation details, and refinements are documented in ESPHome-Econet GitHub Discussion #424, which serves as the technical reference for this post.
The Math: Estimating Thermal Output
The Coefficient of Performance is defined as:
COP = thermal power output ÷ electrical power input
In equation form:
COP = P_output / P_input
Where:
- P_input is the electrical power consumed by the unit (watts)
- P_output is the thermal power delivered to the water (watts)
Because Rheem EcoNet devices do not expose thermal output directly, it must be estimated using basic thermodynamics:
P_output ≈ (m × c × ΔT) ÷ t
Where:
- m (Mass): Mass of water in the tank
Example: 50 gallons ≈ 189 kg - c (Specific Heat of Water): 4186 J/kg°C
- ΔT ÷ t: Rate of temperature increase per second
This calculation yields an estimated thermal power output in watts, which can be directly compared to electrical input to compute COP.
Implementing Real-Time COP in Home Assistant
This approach can be implemented entirely within Home Assistant using template sensors. The logic is straightforward:
- Track tank temperature over time and calculate its rate of change
- Estimate thermal output using tank volume and the specific heat of water
- Divide estimated thermal output by measured electrical input
- Ignore periods where hot water is being drawn, which would otherwise produce misleading or negative COP values
To calculate the temperature rate of change, the Home Assistant Derivative integration is used.
Example Template Sensor (Simplified)
Below is a simplified example illustrating the core idea. Tank size, smoothing intervals, and filtering thresholds should be adjusted to match your installation.
Note: This example assumes a preconfigured derivative sensor named
sensor.water_temp_derivativethat reports temperature change in °C per second.
template:
- sensor:
- name: "Rheem Real-Time COP"
unit_of_measurement: "COP"
state: >
{% set power_in = states('sensor.rheem_power_usage') | float(0) %}
{% set temp_rise_per_sec = states('sensor.water_temp_derivative') | float(0) %}
{# Constants for a 50-gallon tank #}
{% set tank_mass_kg = 189 %}
{% set specific_heat = 4186 %}
{# Estimate thermal output in watts #}
{% set power_out = temp_rise_per_sec * tank_mass_kg * specific_heat %}
{# Filter idle states and water draws #}
{% if power_in > 50 and power_out > 0 %}
{{ (power_out / power_in) | round(2) }}
{% else %}
0
{% endif %}
This example prioritizes clarity over completeness. The GitHub discussion covers additional considerations such as data smoothing, state persistence, startup transients, and handling edge cases.

Why Real-Time COP Is Useful
Adding a real-time COP sensor changes how you interact with your system.
- True efficiency visibility: See how ambient and seasonal temperature changes affect heat pump performance
- Better automation decisions: Automatically switch operating modes when heat pump efficiency drops below resistance heating (COP < 1.0)
- Verification and diagnostics: Confirm expected behavior over time and potentially detect performance degradation early
Rather than relying on theoretical efficiency, this approach measures performance where it actually matters: in your home.
Accuracy and Limitations
This method provides an estimate, not a laboratory-grade measurement.
Sources of error include sensor resolution, temperature stratification in the tank, heat losses to the environment, and assumptions about uniform water temperature. Despite these limitations, the metric is highly useful for relative comparisons, trend analysis, and automation decisions.
Conclusion
ESPHome-Econet exposes enough telemetry to move beyond basic monitoring and into real performance analysis. By combining temperature data with electrical power consumption, it is possible to estimate real-time COP and gain meaningful insight into how a Rheem heat pump water heater behaves under real-world conditions.
For implementation details, refinements, and ongoing discussion, see ESPHome-Econet GitHub Discussion #424, where the original work and updates are documented.