1
0
mirror of https://github.com/esphome/esphome.git synced 2025-09-28 16:12:24 +01:00

[text_sensor] Convert LOG_TEXT_SENSOR macro to function to reduce flash usage (#10884)

This commit is contained in:
J. Nick Koston
2025-09-25 19:10:31 -05:00
committed by GitHub
parent 28199c1cf8
commit 250b94d113
3 changed files with 20 additions and 11 deletions

View File

@@ -155,7 +155,7 @@ void CCS811Component::dump_config() {
LOG_UPDATE_INTERVAL(this); LOG_UPDATE_INTERVAL(this);
LOG_SENSOR(" ", "CO2 Sensor", this->co2_); LOG_SENSOR(" ", "CO2 Sensor", this->co2_);
LOG_SENSOR(" ", "TVOC Sensor", this->tvoc_); LOG_SENSOR(" ", "TVOC Sensor", this->tvoc_);
LOG_TEXT_SENSOR(" ", "Firmware Version Sensor", this->version_) LOG_TEXT_SENSOR(" ", "Firmware Version Sensor", this->version_);
if (this->baseline_) { if (this->baseline_) {
ESP_LOGCONFIG(TAG, " Baseline: %04X", *this->baseline_); ESP_LOGCONFIG(TAG, " Baseline: %04X", *this->baseline_);
} else { } else {

View File

@@ -6,6 +6,22 @@ namespace text_sensor {
static const char *const TAG = "text_sensor"; static const char *const TAG = "text_sensor";
void log_text_sensor(const char *tag, const char *prefix, const char *type, TextSensor *obj) {
if (obj == nullptr) {
return;
}
ESP_LOGCONFIG(tag, "%s%s '%s'", prefix, type, obj->get_name().c_str());
if (!obj->get_device_class_ref().empty()) {
ESP_LOGCONFIG(tag, "%s Device Class: '%s'", prefix, obj->get_device_class_ref().c_str());
}
if (!obj->get_icon_ref().empty()) {
ESP_LOGCONFIG(tag, "%s Icon: '%s'", prefix, obj->get_icon_ref().c_str());
}
}
void TextSensor::publish_state(const std::string &state) { void TextSensor::publish_state(const std::string &state) {
this->raw_state = state; this->raw_state = state;
if (this->raw_callback_) { if (this->raw_callback_) {

View File

@@ -11,16 +11,9 @@
namespace esphome { namespace esphome {
namespace text_sensor { namespace text_sensor {
#define LOG_TEXT_SENSOR(prefix, type, obj) \ void log_text_sensor(const char *tag, const char *prefix, const char *type, TextSensor *obj);
if ((obj) != nullptr) { \
ESP_LOGCONFIG(TAG, "%s%s '%s'", prefix, LOG_STR_LITERAL(type), (obj)->get_name().c_str()); \ #define LOG_TEXT_SENSOR(prefix, type, obj) log_text_sensor(TAG, prefix, LOG_STR_LITERAL(type), obj)
if (!(obj)->get_device_class_ref().empty()) { \
ESP_LOGCONFIG(TAG, "%s Device Class: '%s'", prefix, (obj)->get_device_class_ref().c_str()); \
} \
if (!(obj)->get_icon_ref().empty()) { \
ESP_LOGCONFIG(TAG, "%s Icon: '%s'", prefix, (obj)->get_icon_ref().c_str()); \
} \
}
#define SUB_TEXT_SENSOR(name) \ #define SUB_TEXT_SENSOR(name) \
protected: \ protected: \