13namespace binary_sensor {
69 const uint32_t now =
millis();
156 void play(
const Ts &...
x)
override {
157 auto val = this->state_.value(
x...);
virtual void play(const Ts &...x)=0
Base class for all automation conditions.
Fixed-capacity vector - allocates once at runtime, never reallocates This avoids std::vector template...
void add_full_state_callback(std::function< void(optional< T > previous, optional< T > current)> &&callback)
void add_on_state_callback(std::function< void(T)> &&callback)
virtual T get_state_default(T default_value) const
void trigger(const Ts &...x)
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.
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.
void schedule_cooldown_()
void set_invalid_cooldown(uint32_t invalid_cooldown)
FixedVector< MultiClickTriggerEvent > timing_
uint32_t invalid_cooldown_
float get_setup_priority() const override
optional< size_t > at_index_
void schedule_is_valid_(uint32_t min_length)
MultiClickTrigger(BinarySensor *parent, std::initializer_list< MultiClickTriggerEvent > timing)
void schedule_is_not_valid_(uint32_t max_length)
void on_state_(bool state)
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)
const float HARDWARE
For components that deal with hardware and are very important like GPIO switch.
Providing packet encoding functions for exchanging data with a remote host.
uint32_t IRAM_ATTR HOT millis()