Recently I changed my water heater HA operation from the Rheem EcoNet cloud based control to the ESPHome EcoNet control. That was highly successful and worked flawlessly except in one case. There is an automation in my HA which at a defined time changes the mode and temperature settings of the water heater. This had always worked in the previous setup (not so much when Rheem EcoNet was down) but now it frequently failed to adjust the temperature. Strange as it seems, it never failed when the automation was triggered manually.
I modified the automation with time delays between the mode change and the temperature change in case the serial messages were stepping on each other. That had no effect on the problem. Next I used the ‘repeat-until’ function for the temperature change action and this has ,so far, not failed. For some reason when this was first implemented, I never got a trace. That has not reoccured since recreating the automation from scratch (???). The concern I am having now is weirdness in the trace when the automation exits. There is an ‘unknown’ in the trace on exit and also the automation exits on an ‘abort.’ Perhaps this is normal and it is not affecting the operation. An abort would seem to indicate that there is not a clean exit.
Automation code:
alias: Bedtime_HW_Test
description: ""
trigger:
- platform: time
at: "20:30:00"
condition: []
action:
- service: input_boolean.turn_on
data: {}
target:
entity_id: input_boolean.override
- service: switch.turn_on
data: {}
target:
entity_id: switch.hw_recirc
- service: climate.set_preset_mode
data:
preset_mode: Performance
target:
entity_id: climate.econet_etwh_water_heater
- repeat:
sequence:
- service: climate.set_temperature
data:
temperature: 135
target:
entity_id: climate.econet_etwh_water_heater
- delay:
hours: 0
minutes: 0
seconds: 10
milliseconds: 0
until:
- condition: numeric_state
entity_id: climate.econet_etwh_water_heater
attribute: temperature
above: 130
- condition: state
entity_id: climate.econet_etwh_water_heater
attribute: temperature
state: "135"
for:
hours: 0
minutes: 0
seconds: 5
mode: single
Trace result: