feature: add a public method to MultiClickTrigger to cancel the in-progress trigger sequence

See feature request #985
This commit is contained in:
Lars Bilger 2024-04-30 12:51:23 +02:00
parent 74fd52e05f
commit 62665eae77
2 changed files with 7 additions and 0 deletions

View File

@ -98,6 +98,11 @@ void binary_sensor::MultiClickTrigger::schedule_is_not_valid_(uint32_t max_lengt
this->schedule_cooldown_();
});
}
void binary_sensor::MultiClickTrigger::cancel() {
ESP_LOGV(TAG, "Multi Click: Sequence explicitly cancelled.");
this->is_valid_ = false;
this->schedule_cooldown_();
}
void binary_sensor::MultiClickTrigger::trigger_() {
ESP_LOGV(TAG, "Multi Click: Hooray, multi click is valid. Triggering!");
this->at_index_.reset();

View File

@ -105,6 +105,8 @@ class MultiClickTrigger : public Trigger<>, public Component {
void set_invalid_cooldown(uint32_t invalid_cooldown) { this->invalid_cooldown_ = invalid_cooldown; }
void cancel();
protected:
void on_state_(bool state);
void schedule_cooldown_();