Rheem water heater with Econet

While “sensor.electric_water_heater_power_usage_today” is an available entity in the Econet integration, it returns “unknown.” The Econet interface is an addon and not a built in device in this case. It may well be that in this configuration that _usage_today is not supported.
I figured I could calculate that desired power usage given the accumulating on time and knowing the specified power rating. The entity “binary_sensor.electric_water_heater_running” does present a graphical representation of on/off cycles over time but I have no idea if or how to access the data behind the graph. Any ideas?

Same question.
There are a couple of entities that would be nice to have: Power Usage Today and Water Usage Today.
Primarily the first one.

@w1ll1am23 Do you know if this is possible with the straight electric water heater?

I am not sure those entities are available on every model. That is what my initial inquiry was.
The way I track usage is by tracking the daily and monthly ‘on time’ by creating a couple history template sensors. The power usage, in my case, can only be computed by using the nameplate power value. This will not be an actual measurement of power but what I wanted was to be able to see the relative power consumption over time. At least I can see if more or less power is being used month to month. Another sensor allows me to see the actual daily and monthly cost by applying the utility’s published rate.

Hey Dave - I am hoping w1ll1am23 has come across it in his travels and will know if it’s possible with the electric model. I believe some features changed with the api switch awhile back and we may have lost this if we ever had it.
I like your template approach to handle the on/off.
Would you be able to share those 3 sensors?

Additionally, I see that the Running State is either ‘Running’ or blank. How would one turn blank into “Not Running” without creating another sensor?

Another request: a way to clear the water leak alert sensor without going to the official app and performing that action

The first sensor collects the accumulated ‘on’ duration for the current day. The entity ID is that provided by the integration. The second sensor collects the same data for the previous month.

  - platform: history_stats
    name: HW_OnTime
    entity_id: binary_sensor.electric_water_heater_running
    state: "on"
    type: time
    
    start: "{{ now().replace(hour=0, minute=0, second=0) }}"
    end: "{{ now() }}"

 - platform: history_stats
   name: HW_Ontime_Month
   entity_id: binary_sensor.electric_water_heater_running
   state: "on"
   type: time
 
   start: 
     "{{ now().replace(month = ((now().month  | int ) -1), day=1, hour=0, minute=0,second=0) }}"

   end: 
    "{{now().replace(day=1,hour=0,minute=0,second=0) }}"

Now, there is a problem with the monthly sensor that I am trying to resolve. In Jan. the month result is zero, which is not permitted. I believe this could be resolved by a function not currently available in HA.

Update:
I have created this new monthly sensor to fix the January problem. It functions correctly in HA/Developer Tools/Template. I cannot get it to work so far within the sensor folder of HA. It may be that the history_stats template does not accept embedded extraneous templates. Still working on it. The neater solution would be the ‘dateutil’ function but as I said, that is not supported in HA.

  - platform: history_stats
    name: HW_Ontime_Month
    
    {% set curmonth = now().month %}
    {% if( curmonth ==1) %}
      {% set curmonth = 12 %}
    {% else %}
      {% set curmonth = (curmonth -1 | int) %}
    {% endif %}

    entity_id: binary_sensor.electric_water_heater_running
    state: "on"
    type: time
    

    start: "{{ now().replace(month = curmonth, day=1, hour=0, minute=0,second=0) }}"

    end: "{{now().replace(day=1,hour=0,minute=0,second=0) }}" 

1 Like

What about creating a sensor to hold the month value?

- platform: template
  sensors:
   current_month_numeric_value:
      value_template: >
            {% if( now().month ==1) %}
              12
            {% else %}
              (now().month -1 | int)
            {% endif %}
      friendly_name: "Current Month Numeric Value"
      
      
- platform: history_stats
  name: Water Heater Monthly Runtime
  entity_id: binary_sensor.water_heater_status
  state: "on"
  type: time
  start: "{{ now().replace(month = sensor.current_month_numeric_value, day=1, hour=0, minute=0,second=0) }}"
  end: "{{now().replace(day=1,hour=0,minute=0,second=0) }}"

The month sensor is correctly 12 though the history_stats is ‘unknown’ so still something isn’t right.

Yes, that occurred to me. I might take a look at the variables integration to create a global variable. Actually there is something missing from my posting. I need to extract a value for the year as well. January is becoming a pain in so many ways.

That is the part I forgot to include. You need to also create a sensor to adjust the year.

prev_year = (now().year -1 | int)

Otherwise you are retrieving future data, which of course does not exist.

Thanks. Will try that. Did you get the history_stats to work? Mine is throwing an error in the log about the “sensor.” part for the month parameter not being valid.

Yes, I am working on that now but I have to leave it for today.

1 Like

Okay, up against a brick wall again.
Using the two sensors to adjust the month and year, I used a script to assign their state values to two variables I set up using the var integration. That all worked correctly and the variables were listed in the HA entities and they had the correct values. The variables were inserted into the original monthly usage sensor and HA restarted. Now the log indicates that ‘var’ is undefined even though the variables are existing in the entities list.
I am thinking that perhaps the var integration has not initialized when the sensor is evaluated. The thing that belies that is that reloading only the customizations, which to my understanding would reload the sensors defined in the configuration file, does not fix this.
Perhaps going to a Python code solution is the only way to fix this.

I’m not sure if anyone else is having difficulties with this Integration. It seems that this only pulls info form my water heater and I’m unable to make any changes to wither the heating temp or the water heater operations. I have the “thermostat” card for this and it does display the set temp but If I were to change the temp up, down or change the heating mode in Home Assistant it does not change anything on the water heater or with in the Econet app.

I am using an entities card for this, not a thermostat card.

        type: entities
        entities:
          - type: custom:slider-entity-row
            entity: water_heater.electric_water_heater
            min: 110
            max: 130
            step: 1
            hide_state: false
            full_row: true
            default: 120
            name: Temp
          - type: attribute
            entity: water_heater.electric_water_heater
            attribute: operation_mode
            name: Mode
          - entity: binary_sensor.electric_water_heater_running
            name: Power

This is all well and good, but my question is are you able to change the temp and operation mode of your water heater using home assistant?

Yes, otherwise I would not have posted it.

For anyone else with the electric only version are you still getting on/off status changes? Mine is no longer reflecting whether it’s on or off. Have removed the integration and re-added but no change.

I am using Node Red to control a Gen 5 Ruud heat pump water heater and I am able to read the current mode, state of the compressor and send mode change messages. Something strange is that {“operation_mode”:“off”} disables the unit vs setting the off mode. On the phone app (Android) there is an enable/disable control and a mode change control. I don’t know what the difference between disabled and off is, it will recover to eco mode when I send an eco state change message.

I have a few related questions:

  • Anybody know the difference between disabled and off?
  • Can the unit be switched off vs. disabled? I know you need to send “eco” to get the “Energy Saver” mode so maybe it is called something else?
  • Can the unit be switched to Vacation (from logs: [homeassistant.components.econet.water_heater] Invalid operation mode: vacation)
  • Is there a way to resume a schedule programmed in the app?

I have a new Rheem water heater - just installed this integration. It find the heater, creates a bunch of entities but apparently gets no data from the heater. So far, this integration looks like more dead code. Does anyone know if it’s maintained?

[update] Some time later it began acquiring data. So the integration works to that extent.