[Sprinkler] Resume fixes (#5100)

This commit is contained in:
Ilia Sotnikov 2023-07-16 23:28:31 +03:00 committed by Jesse Hills
parent 6bdc0c92fe
commit 74e062fdb3
No known key found for this signature in database
GPG key ID: BEAAE804EFD8E83A

View file

@ -954,10 +954,18 @@ void Sprinkler::pause() {
}
void Sprinkler::resume() {
if (this->standby()) {
ESP_LOGD(TAG, "resume called but standby is enabled; no action taken");
return;
}
if (this->paused_valve_.has_value() && (this->resume_duration_.has_value())) {
ESP_LOGD(TAG, "Resuming valve %u with %u seconds remaining", this->paused_valve_.value_or(0),
this->resume_duration_.value_or(0));
this->fsm_request_(this->paused_valve_.value(), this->resume_duration_.value());
// Resume only if valve has not been completed yet
if (!this->valve_cycle_complete_(this->paused_valve_.value())) {
ESP_LOGD(TAG, "Resuming valve %u with %u seconds remaining", this->paused_valve_.value_or(0),
this->resume_duration_.value_or(0));
this->fsm_request_(this->paused_valve_.value(), this->resume_duration_.value());
}
this->reset_resume();
} else {
ESP_LOGD(TAG, "No valve to resume!");