mirror of
https://github.com/esphome/esphome.git
synced 2026-08-18 03:59:08 +08:00
[text_sensor] Remove deprecated public raw_state member (#16683)
This commit is contained in:
@@ -39,16 +39,13 @@ void TextSensor::publish_state(const char *state, size_t len) {
|
||||
#ifdef USE_TEXT_SENSOR_FILTER
|
||||
} else {
|
||||
// Has filters: need separate raw storage
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
// Only assign if changed to avoid heap allocation
|
||||
if (len != this->raw_state.size() || memcmp(state, this->raw_state.data(), len) != 0) {
|
||||
this->raw_state.assign(state, len);
|
||||
if (len != this->raw_state_.size() || memcmp(state, this->raw_state_.data(), len) != 0) {
|
||||
this->raw_state_.assign(state, len);
|
||||
}
|
||||
this->raw_callback_.call(this->raw_state);
|
||||
ESP_LOGV(TAG, "'%s': Received new state %s", this->name_.c_str(), this->raw_state.c_str());
|
||||
this->filter_list_->input(this->raw_state);
|
||||
#pragma GCC diagnostic pop
|
||||
this->raw_callback_.call(this->raw_state_);
|
||||
ESP_LOGV(TAG, "'%s': Received new state %s", this->name_.c_str(), this->raw_state_.c_str());
|
||||
this->filter_list_->input(this->raw_state_);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -89,11 +86,7 @@ const std::string &TextSensor::get_state() const { return this->state; }
|
||||
const std::string &TextSensor::get_raw_state() const {
|
||||
#ifdef USE_TEXT_SENSOR_FILTER
|
||||
if (this->filter_list_ != nullptr) {
|
||||
// Suppress deprecation warning - get_raw_state() is the replacement API
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
return this->raw_state;
|
||||
#pragma GCC diagnostic pop
|
||||
return this->raw_state_;
|
||||
}
|
||||
#endif
|
||||
return this->state; // No filters, raw == filtered
|
||||
|
||||
@@ -29,19 +29,12 @@ class TextSensor : public EntityBase {
|
||||
public:
|
||||
std::string state;
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||
/// @deprecated Use get_raw_state() instead. This member will be removed in ESPHome 2026.6.0.
|
||||
ESPDEPRECATED("Use get_raw_state() instead of .raw_state. Will be removed in 2026.6.0", "2025.12.0")
|
||||
std::string raw_state;
|
||||
|
||||
TextSensor() = default;
|
||||
~TextSensor() = default;
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
/// Getter-syntax for .state.
|
||||
const std::string &get_state() const;
|
||||
/// Getter-syntax for .raw_state
|
||||
/// Returns the raw (pre-filter) state.
|
||||
const std::string &get_raw_state() const;
|
||||
|
||||
void publish_state(const std::string &state);
|
||||
@@ -84,6 +77,7 @@ class TextSensor : public EntityBase {
|
||||
/// Notify frontend that state has changed (assumes this->state is already set)
|
||||
void notify_frontend_();
|
||||
#ifdef USE_TEXT_SENSOR_FILTER
|
||||
std::string raw_state_; ///< Backing storage for the raw (pre-filter) value. Only used when a filter is attached.
|
||||
LazyCallbackManager<void(const std::string &)> raw_callback_; ///< Storage for raw state callbacks.
|
||||
#endif
|
||||
LazyCallbackManager<void(const std::string &)> callback_; ///< Storage for filtered state callbacks.
|
||||
|
||||
Reference in New Issue
Block a user