mirror of
https://github.com/esphome/esphome.git
synced 2025-10-30 06:33:51 +00:00
Merge branch 'beta' into bump-1.15.0
This commit is contained in:
@@ -4,7 +4,8 @@ from esphome import automation
|
||||
from esphome.components import cover
|
||||
from esphome.const import CONF_ASSUMED_STATE, CONF_CLOSE_ACTION, CONF_CURRENT_OPERATION, CONF_ID, \
|
||||
CONF_LAMBDA, CONF_OPEN_ACTION, CONF_OPTIMISTIC, CONF_POSITION, CONF_RESTORE_MODE, \
|
||||
CONF_STATE, CONF_STOP_ACTION, CONF_TILT, CONF_TILT_ACTION, CONF_TILT_LAMBDA
|
||||
CONF_STATE, CONF_STOP_ACTION, CONF_TILT, CONF_TILT_ACTION, CONF_TILT_LAMBDA, \
|
||||
CONF_POSITION_ACTION
|
||||
from .. import template_ns
|
||||
|
||||
TemplateCover = template_ns.class_('TemplateCover', cover.Cover, cg.Component)
|
||||
@@ -29,6 +30,7 @@ CONFIG_SCHEMA = cover.COVER_SCHEMA.extend({
|
||||
cv.Optional(CONF_STOP_ACTION): automation.validate_automation(single=True),
|
||||
cv.Optional(CONF_TILT_ACTION): automation.validate_automation(single=True),
|
||||
cv.Optional(CONF_TILT_LAMBDA): cv.returning_lambda,
|
||||
cv.Optional(CONF_POSITION_ACTION): automation.validate_automation(single=True),
|
||||
cv.Optional(CONF_RESTORE_MODE, default='RESTORE'): cv.enum(RESTORE_MODES, upper=True),
|
||||
}).extend(cv.COMPONENT_SCHEMA)
|
||||
|
||||
@@ -55,7 +57,12 @@ def to_code(config):
|
||||
tilt_template_ = yield cg.process_lambda(config[CONF_TILT_LAMBDA], [],
|
||||
return_type=cg.optional.template(float))
|
||||
cg.add(var.set_tilt_lambda(tilt_template_))
|
||||
|
||||
if CONF_POSITION_ACTION in config:
|
||||
yield automation.build_automation(var.get_position_trigger(), [(float, 'pos')],
|
||||
config[CONF_POSITION_ACTION])
|
||||
cg.add(var.set_has_position(True))
|
||||
else:
|
||||
cg.add(var.set_has_position(config[CONF_HAS_POSITION]))
|
||||
cg.add(var.set_optimistic(config[CONF_OPTIMISTIC]))
|
||||
cg.add(var.set_assumed_state(config[CONF_ASSUMED_STATE]))
|
||||
cg.add(var.set_restore_mode(config[CONF_RESTORE_MODE]))
|
||||
|
||||
@@ -86,10 +86,10 @@ void TemplateCover::control(const CoverCall &call) {
|
||||
} else if (pos == COVER_CLOSED) {
|
||||
this->close_trigger_->trigger();
|
||||
this->prev_command_trigger_ = this->close_trigger_;
|
||||
} else {
|
||||
this->position_trigger_->trigger(pos);
|
||||
}
|
||||
|
||||
this->position_trigger_->trigger(pos);
|
||||
|
||||
if (this->optimistic_) {
|
||||
this->position = pos;
|
||||
}
|
||||
@@ -120,7 +120,7 @@ void TemplateCover::set_has_position(bool has_position) { this->has_position_ =
|
||||
void TemplateCover::set_has_tilt(bool has_tilt) { this->has_tilt_ = has_tilt; }
|
||||
void TemplateCover::stop_prev_trigger_() {
|
||||
if (this->prev_command_trigger_ != nullptr) {
|
||||
this->prev_command_trigger_->stop();
|
||||
this->prev_command_trigger_->stop_action();
|
||||
this->prev_command_trigger_ = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ void TemplateSwitch::loop() {
|
||||
}
|
||||
void TemplateSwitch::write_state(bool state) {
|
||||
if (this->prev_trigger_ != nullptr) {
|
||||
this->prev_trigger_->stop();
|
||||
this->prev_trigger_->stop_action();
|
||||
}
|
||||
|
||||
if (state) {
|
||||
|
||||
Reference in New Issue
Block a user