mirror of
https://github.com/esphome/esphome.git
synced 2024-11-25 00:18:11 +01:00
Add restore state option to template switch (#222)
* Add restore state option to template switch * Add test
This commit is contained in:
parent
e3094d9689
commit
3ec931ffa4
3 changed files with 10 additions and 1 deletions
|
@ -4,18 +4,21 @@ import esphomeyaml.config_validation as cv
|
||||||
from esphomeyaml import automation
|
from esphomeyaml import automation
|
||||||
from esphomeyaml.components import switch
|
from esphomeyaml.components import switch
|
||||||
from esphomeyaml.const import CONF_LAMBDA, CONF_MAKE_ID, CONF_NAME, CONF_TURN_OFF_ACTION, \
|
from esphomeyaml.const import CONF_LAMBDA, CONF_MAKE_ID, CONF_NAME, CONF_TURN_OFF_ACTION, \
|
||||||
CONF_TURN_ON_ACTION, CONF_OPTIMISTIC
|
CONF_TURN_ON_ACTION, CONF_OPTIMISTIC, CONF_RESTORE_STATE
|
||||||
from esphomeyaml.helpers import App, Application, process_lambda, variable, NoArg, add, bool_, \
|
from esphomeyaml.helpers import App, Application, process_lambda, variable, NoArg, add, bool_, \
|
||||||
optional
|
optional
|
||||||
|
|
||||||
MakeTemplateSwitch = Application.MakeTemplateSwitch
|
MakeTemplateSwitch = Application.MakeTemplateSwitch
|
||||||
|
TemplateSwitch = switch.switch_ns.TemplateSwitch
|
||||||
|
|
||||||
PLATFORM_SCHEMA = cv.nameable(switch.SWITCH_PLATFORM_SCHEMA.extend({
|
PLATFORM_SCHEMA = cv.nameable(switch.SWITCH_PLATFORM_SCHEMA.extend({
|
||||||
|
cv.GenerateID(): cv.declare_variable_id(TemplateSwitch),
|
||||||
cv.GenerateID(CONF_MAKE_ID): cv.declare_variable_id(MakeTemplateSwitch),
|
cv.GenerateID(CONF_MAKE_ID): cv.declare_variable_id(MakeTemplateSwitch),
|
||||||
vol.Optional(CONF_LAMBDA): cv.lambda_,
|
vol.Optional(CONF_LAMBDA): cv.lambda_,
|
||||||
vol.Optional(CONF_OPTIMISTIC): cv.boolean,
|
vol.Optional(CONF_OPTIMISTIC): cv.boolean,
|
||||||
vol.Optional(CONF_TURN_OFF_ACTION): automation.validate_automation(single=True),
|
vol.Optional(CONF_TURN_OFF_ACTION): automation.validate_automation(single=True),
|
||||||
vol.Optional(CONF_TURN_ON_ACTION): automation.validate_automation(single=True),
|
vol.Optional(CONF_TURN_ON_ACTION): automation.validate_automation(single=True),
|
||||||
|
vol.Optional(CONF_RESTORE_STATE): cv.boolean,
|
||||||
}), cv.has_at_least_one_key(CONF_LAMBDA, CONF_OPTIMISTIC))
|
}), cv.has_at_least_one_key(CONF_LAMBDA, CONF_OPTIMISTIC))
|
||||||
|
|
||||||
|
|
||||||
|
@ -40,6 +43,9 @@ def to_code(config):
|
||||||
if CONF_OPTIMISTIC in config:
|
if CONF_OPTIMISTIC in config:
|
||||||
add(make.Ptemplate_.set_optimistic(config[CONF_OPTIMISTIC]))
|
add(make.Ptemplate_.set_optimistic(config[CONF_OPTIMISTIC]))
|
||||||
|
|
||||||
|
if CONF_RESTORE_STATE in config:
|
||||||
|
add(make.Ptemplate_.set_restore_state(config[CONF_RESTORE_STATE]))
|
||||||
|
|
||||||
|
|
||||||
BUILD_FLAGS = '-DUSE_TEMPLATE_SWITCH'
|
BUILD_FLAGS = '-DUSE_TEMPLATE_SWITCH'
|
||||||
|
|
||||||
|
|
|
@ -359,6 +359,7 @@ CONF_STEP_PIN = 'step_pin'
|
||||||
CONF_DIR_PIN = 'dir_pin'
|
CONF_DIR_PIN = 'dir_pin'
|
||||||
CONF_SLEEP_PIN = 'sleep_pin'
|
CONF_SLEEP_PIN = 'sleep_pin'
|
||||||
CONF_SEND_FIRST_AT = 'send_first_at'
|
CONF_SEND_FIRST_AT = 'send_first_at'
|
||||||
|
CONF_RESTORE_STATE = 'restore_state'
|
||||||
|
|
||||||
ALLOWED_NAME_CHARS = u'abcdefghijklmnopqrstuvwxyz0123456789_'
|
ALLOWED_NAME_CHARS = u'abcdefghijklmnopqrstuvwxyz0123456789_'
|
||||||
ARDUINO_VERSION_ESP32_DEV = 'https://github.com/platformio/platform-espressif32.git#feature/stage'
|
ARDUINO_VERSION_ESP32_DEV = 'https://github.com/platformio/platform-espressif32.git#feature/stage'
|
||||||
|
|
|
@ -806,6 +806,7 @@ switch:
|
||||||
level: !lambda 'return 0.5;'
|
level: !lambda 'return 0.5;'
|
||||||
turn_off_action:
|
turn_off_action:
|
||||||
- switch.turn_on: living_room_lights_off
|
- switch.turn_on: living_room_lights_off
|
||||||
|
restore_state: False
|
||||||
- platform: restart
|
- platform: restart
|
||||||
name: "Living Room Restart"
|
name: "Living Room Restart"
|
||||||
- platform: shutdown
|
- platform: shutdown
|
||||||
|
@ -832,6 +833,7 @@ switch:
|
||||||
// Switch is OFF, do something else here
|
// Switch is OFF, do something else here
|
||||||
}
|
}
|
||||||
optimistic: true
|
optimistic: true
|
||||||
|
restore_state: True
|
||||||
- platform: uart
|
- platform: uart
|
||||||
name: "UART String Output"
|
name: "UART String Output"
|
||||||
data: 'DataToSend'
|
data: 'DataToSend'
|
||||||
|
|
Loading…
Reference in a new issue