8static const char *
const TAG =
"template.cover";
17 if (restore.has_value())
23 if (restore.has_value()) {
24 restore->to_call(
this).perform();
37 auto pos = clamp(*s, 0.0f, 1.0f);
45 if (
tilt.has_value()) {
46 auto tilt_val = clamp(*
tilt, 0.0f, 1.0f);
47 if (tilt_val != this->
tilt) {
48 this->
tilt = tilt_val;
65 if (
call.get_stop()) {
78 auto pos = *
call.get_position();
81 if (
pos == COVER_OPEN) {
84 }
else if (
pos == COVER_CLOSED) {
110 traits.set_supports_stop(this->
has_stop_);
113 traits.set_supports_tilt(this->
has_tilt_);
void disable_loop()
Disable this component's loop.
bool has_value() const
Check if a lambda is set.
void trigger(const Ts &...x)
Inform the parent automation that the event has triggered.
void stop_action()
Stop any action connected to this trigger.
const optional< float > & get_tilt() const
const optional< bool > & get_toggle() const
const optional< float > & get_position() const
optional< CoverRestoreState > restore_state_()
void publish_state(bool save=true)
Publish the current state of the cover.
float tilt
The current tilt value of the cover from 0.0 to 1.0.
float position
The position of the cover from 0.0 (fully closed) to 1.0 (fully open).
void set_has_toggle(bool has_toggle)
void set_has_stop(bool has_stop)
TemplateLambda< float > state_f_
Trigger * get_open_trigger()
Trigger< float > position_trigger_
void set_has_tilt(bool has_tilt)
Trigger * get_close_trigger()
void control(const cover::CoverCall &call) override
void set_has_position(bool has_position)
void set_assumed_state(bool assumed_state)
Trigger< float > tilt_trigger_
Trigger * prev_command_trigger_
void stop_prev_trigger_()
void dump_config() override
Trigger< float > * get_position_trigger()
void set_optimistic(bool optimistic)
Trigger * get_stop_trigger()
float get_setup_priority() const override
cover::CoverTraits get_traits() override
Trigger< float > * get_tilt_trigger()
TemplateCoverRestoreMode restore_mode_
Trigger * get_toggle_trigger()
TemplateLambda< float > tilt_f_
const float HARDWARE
For components that deal with hardware and are very important like GPIO switch.