[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:
J. Nick Koston
2026-03-22 16:45:00 -10:00
parent 8aa9a82c13
commit 9291b71176
2 changed files with 1 additions and 6 deletions
@@ -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.
*
-5
View File
@@ -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;