Ordinarily, this should be pretty simple, as follows:
trigger:
entity_id: switch.homeseer_switch_mba_fan
platform: state
to: 'on'
for:
minutes: 2
But what happens if HA is rebooted while the fan was on?
Ordinarily, this should be pretty simple, as follows:
trigger:
entity_id: switch.homeseer_switch_mba_fan
platform: state
to: 'on'
for:
minutes: 2
But what happens if HA is rebooted while the fan was on?
switch.homeseer_switch_mba_fan last_changed and switch.homeseer_switch_mba_fan last_updated should be reset when home assistant starts. So it should trigger 2 minutes after HA starts.
Unfortunately, that’s not happening for me. What is the syntax for reading last_changed and last_updated?
states.entity_id.last_changed
And I see why my advice was wrong. Here’s how I actually stop my dehumidifier:
- id: lounge_dehumidifier_max_runtime_stop
alias: 'Lounge Dehumidifier Max Runtime Stop'
initial_state: true
trigger:
platform: template
value_template: "{{ (as_timestamp(strptime(states('sensor.date_time'),'%Y-%m-%d, %H:%M')) - as_timestamp(states.switch.lounge_dehumidifier.last_changed) ) / 3600 > states('input_number.lounge_dehumidifier_run_time') | float }}"
This will stop at the run time specified in the input_number (in hours), either after it has been on that long or that long after a HA restart.
I’m going to improve it according to this advice, so that restarts don’t affect the run time:
This:
for:
minutes: 2
behaves as a timer. According to your trigger, switch.homeseer_switch_mba_fan
must change to on
and remain in that state for at least 2 minutes for the trigger to occur. The key here is that the 2-minute countdown starts at the moment the fan’s state changes to on
.
Let’s assume the 2-minute countdown is underway. At around 90 seconds, you restart Home Assistant. Upon restart, the 2-minute timer is also reset, not restarted, but reset. That 90 seconds of elapsed time is reset to 0 after the restart.
In addition, after the restart, the trigger won’t do anything until the fan’s state changes to on
. If the fan is already on
after the restart, the trigger will never start the 2-minute countdown timer. It will only do so if the fan’s state changes to on
(so turned off
first then turned on
).