mirror of
https://github.com/esphome/esphome.git
synced 2026-09-22 04:28:43 +00:00
[binary_sensor] Move set_trigger_on_initial_state off StatefulEntityBase
set_trigger_on_initial_state is only called from codegen on concrete BinarySensor instances. It's an implementation detail of BinarySensor, not part of the StatefulEntityBase contract. Only get_trigger_on_initial_state remains as a pure virtual — subclasses decide how to control it.
This commit is contained in:
@@ -35,7 +35,7 @@ class BinarySensor : public StatefulEntityBase<bool> {
|
||||
explicit BinarySensor() = default;
|
||||
|
||||
const bool &get_state() const override { return this->state; }
|
||||
void set_trigger_on_initial_state(bool value) override { this->trigger_on_initial_state_ = value; }
|
||||
void set_trigger_on_initial_state(bool value) { this->trigger_on_initial_state_ = value; }
|
||||
|
||||
/** Publish a new state to the front-end.
|
||||
*
|
||||
|
||||
@@ -305,7 +305,6 @@ void log_entity_unit_of_measurement(const char *tag, const char *prefix, const E
|
||||
* - get_state(): return a const reference to the current value
|
||||
* - set_state_value(): store a new value (called only when the state actually changes)
|
||||
* - get_trigger_on_initial_state(): return whether callbacks should fire on the first state
|
||||
* - set_trigger_on_initial_state(): store the value (subclass decides how)
|
||||
*
|
||||
* Subclasses may override set_new_state() to add behavior (logging, notifications) after calling
|
||||
* the base implementation. Since set_new_state() is virtual, callers like invalidate_state() and
|
||||
@@ -335,10 +334,6 @@ template<typename T> class StatefulEntityBase : public EntityBase {
|
||||
this->state_callbacks_.add(std::forward<F>(callback));
|
||||
}
|
||||
|
||||
/// Control whether state_callbacks_ fire on the very first state (before any previous state exists).
|
||||
/// Subclasses decide how to store the value.
|
||||
virtual void set_trigger_on_initial_state(bool value) = 0;
|
||||
|
||||
protected:
|
||||
/// Subclasses return whether callbacks should fire on the very first state.
|
||||
virtual bool get_trigger_on_initial_state() const = 0;
|
||||
|
||||
Reference in New Issue
Block a user