154 [
this](optional<bool> old_state, optional<bool>
state) { this->
trigger(old_state,
state); });
173 void play(
const Ts &...
x)
override {
174 auto val = this->state_.value(
x...);
virtual void play(const Ts &...x)=0
Base class for all automation conditions.
void add_full_state_callback(F &&callback)
void invalidate_state()
Clear the state — sets has_state() to false and fires callbacks with nullopt.
void add_on_state_callback(F &&callback)
T get_state_default(T default_value) const
Return the current state if available, otherwise return the provided default.
void trigger(const Ts &...x) ESPHOME_ALWAYS_INLINE
BinarySensorCondition(BinarySensor *parent, bool state)
bool check(const Ts &...x) override
Base class for all binary_sensor-type classes.
void publish_state(bool new_state)
Publish a new state to the front-end.
bool state
The current state of this binary sensor. Also used as the backing storage for StatefulEntityBase.
BinarySensorInvalidateAction(BinarySensor *sensor)
void play(const Ts &...x) override
BinarySensorPublishAction(BinarySensor *sensor)
TEMPLATABLE_VALUE(bool, state) void play(const Ts &...x) override
uint32_t min_length_
The millis() time when the click started.
uint32_t max_length_
Minimum length of click. 0 means no minimum.
ClickTrigger(BinarySensor *parent, uint32_t min_length, uint32_t max_length)
DoubleClickTrigger(BinarySensor *parent, uint32_t min_length, uint32_t max_length)
uint32_t max_length_
Minimum length of click. 0 means no minimum.
Non-template base for MultiClickTrigger (keeps large method bodies out of the header).
MultiClickTriggerBase & operator=(const MultiClickTriggerBase &)=delete
void set_invalid_cooldown(uint32_t invalid_cooldown)
void schedule_is_not_valid_(uint32_t max_length)
const MultiClickTriggerEvent * timing_
void schedule_is_valid_(uint32_t min_length)
float get_setup_priority() const override
MultiClickTriggerBase(BinarySensor *parent)
MultiClickTriggerBase(const MultiClickTriggerBase &)=delete
void schedule_cooldown_()
optional< size_t > at_index_
void on_state_(bool state)
uint32_t invalid_cooldown_
Template wrapper that provides inline std::array storage for timing events.
std::array< MultiClickTriggerEvent, N > timing_storage_
MultiClickTrigger(BinarySensor *parent, std::initializer_list< MultiClickTriggerEvent > timing)
PressTrigger(BinarySensor *parent)
ReleaseTrigger(BinarySensor *parent)
StateChangeTrigger(BinarySensor *parent)
StateTrigger(BinarySensor *parent)
bool match_interval(uint32_t min_length, uint32_t max_length, uint32_t length)
constexpr float HARDWARE
For components that deal with hardware and are very important like GPIO switch.
void init_array_from(std::array< T, N > &dest, std::initializer_list< T > src)
Initialize a std::array from an initializer_list.
uint32_t IRAM_ATTR HOT millis()