mirror of
https://github.com/esphome/esphome.git
synced 2025-09-20 12:12:24 +01:00
Light & Switch Inverted Restore mode (#1810)
This commit is contained in:
@@ -13,6 +13,8 @@ RESTORE_MODES = {
|
||||
"RESTORE_DEFAULT_ON": GPIOSwitchRestoreMode.GPIO_SWITCH_RESTORE_DEFAULT_ON,
|
||||
"ALWAYS_OFF": GPIOSwitchRestoreMode.GPIO_SWITCH_ALWAYS_OFF,
|
||||
"ALWAYS_ON": GPIOSwitchRestoreMode.GPIO_SWITCH_ALWAYS_ON,
|
||||
"RESTORE_INVERTED_DEFAULT_OFF": GPIOSwitchRestoreMode.GPIO_SWITCH_RESTORE_INVERTED_DEFAULT_OFF,
|
||||
"RESTORE_INVERTED_DEFAULT_ON": GPIOSwitchRestoreMode.GPIO_SWITCH_RESTORE_INVERTED_DEFAULT_ON,
|
||||
}
|
||||
|
||||
CONF_INTERLOCK_WAIT_TIME = "interlock_wait_time"
|
||||
|
@@ -18,6 +18,12 @@ void GPIOSwitch::setup() {
|
||||
case GPIO_SWITCH_RESTORE_DEFAULT_ON:
|
||||
initial_state = this->get_initial_state().value_or(true);
|
||||
break;
|
||||
case GPIO_SWITCH_RESTORE_INVERTED_DEFAULT_OFF:
|
||||
initial_state = !this->get_initial_state().value_or(true);
|
||||
break;
|
||||
case GPIO_SWITCH_RESTORE_INVERTED_DEFAULT_ON:
|
||||
initial_state = !this->get_initial_state().value_or(false);
|
||||
break;
|
||||
case GPIO_SWITCH_ALWAYS_OFF:
|
||||
initial_state = false;
|
||||
break;
|
||||
@@ -49,6 +55,12 @@ void GPIOSwitch::dump_config() {
|
||||
case GPIO_SWITCH_RESTORE_DEFAULT_ON:
|
||||
restore_mode = "Restore (Defaults to ON)";
|
||||
break;
|
||||
case GPIO_SWITCH_RESTORE_INVERTED_DEFAULT_ON:
|
||||
restore_mode = "Restore inverted (Defaults to ON)";
|
||||
break;
|
||||
case GPIO_SWITCH_RESTORE_INVERTED_DEFAULT_OFF:
|
||||
restore_mode = "Restore inverted (Defaults to OFF)";
|
||||
break;
|
||||
case GPIO_SWITCH_ALWAYS_OFF:
|
||||
restore_mode = "Always OFF";
|
||||
break;
|
||||
|
@@ -11,6 +11,8 @@ enum GPIOSwitchRestoreMode {
|
||||
GPIO_SWITCH_RESTORE_DEFAULT_ON,
|
||||
GPIO_SWITCH_ALWAYS_OFF,
|
||||
GPIO_SWITCH_ALWAYS_ON,
|
||||
GPIO_SWITCH_RESTORE_INVERTED_DEFAULT_OFF,
|
||||
GPIO_SWITCH_RESTORE_INVERTED_DEFAULT_ON,
|
||||
};
|
||||
|
||||
class GPIOSwitch : public switch_::Switch, public Component {
|
||||
|
Reference in New Issue
Block a user