Fix Template Switch restore_mode support (#4280)

fixes https://github.com/esphome/issues/issues/4020
This commit is contained in:
Fabio Todaro 2023-01-10 04:20:16 +01:00 committed by GitHub
parent fe55f3a43d
commit 75dff1e102
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -43,17 +43,18 @@ void TemplateSwitch::setup() {
if (!this->restore_state_)
return;
auto restored = this->get_initial_state();
if (!restored.has_value())
return;
optional<bool> initial_state = this->get_initial_state_with_restore_mode();
ESP_LOGD(TAG, " Restored state %s", ONOFF(*restored));
if (*restored) {
if (initial_state.has_value()) {
ESP_LOGD(TAG, " Restored state %s", ONOFF(initial_state.value()));
// if it has a value, restore_mode is not "DISABLED", therefore act on the switch:
if (initial_state.value()) {
this->turn_on();
} else {
this->turn_off();
}
}
}
void TemplateSwitch::dump_config() {
LOG_SWITCH("", "Template Switch", this);
ESP_LOGCONFIG(TAG, " Restore State: %s", YESNO(this->restore_state_));