ESPHome 2026.1.0-dev
Loading...
Searching...
No Matches
version_text_sensor.cpp
Go to the documentation of this file.
3#include "esphome/core/log.h"
7
8namespace esphome {
9namespace version {
10
11static const char *const TAG = "version.text_sensor";
12
14 static const char PREFIX[] PROGMEM = ESPHOME_VERSION " (config hash 0x";
15 static const char BUILT_STR[] PROGMEM = ", built ";
16 // Buffer size: PREFIX + 8 hex chars + BUILT_STR + BUILD_TIME_STR_SIZE + ")" + null
17 constexpr size_t buf_size = sizeof(PREFIX) + 8 + sizeof(BUILT_STR) + esphome::Application::BUILD_TIME_STR_SIZE + 2;
18 char version_str[buf_size];
19
20 ESPHOME_strncpy_P(version_str, PREFIX, sizeof(version_str));
21
22 size_t len = strlen(version_str);
23 snprintf(version_str + len, sizeof(version_str) - len, "%08" PRIx32, App.get_config_hash());
24
25 if (!this->hide_timestamp_) {
26 size_t len = strlen(version_str);
27 ESPHOME_strncat_P(version_str, BUILT_STR, sizeof(version_str) - len - 1);
28 ESPHOME_strncat_P(version_str, ESPHOME_BUILD_TIME_STR, sizeof(version_str) - strlen(version_str) - 1);
29 }
30
31 strncat(version_str, ")", sizeof(version_str) - strlen(version_str) - 1);
32 version_str[sizeof(version_str) - 1] = '\0';
33 this->publish_state(version_str);
34}
36void VersionTextSensor::set_hide_timestamp(bool hide_timestamp) { this->hide_timestamp_ = hide_timestamp; }
37void VersionTextSensor::dump_config() { LOG_TEXT_SENSOR("", "Version Text Sensor", this); }
38
39} // namespace version
40} // namespace esphome
static constexpr size_t BUILD_TIME_STR_SIZE
Size of buffer required for build time string (including null terminator)
constexpr uint32_t get_config_hash()
Get the config hash as a 32-bit integer.
void publish_state(const std::string &state)
void set_hide_timestamp(bool hide_timestamp)
const float DATA
For components that import data from directly connected sensors like DHT.
Definition component.cpp:81
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
std::string size_t len
Definition helpers.h:533
Application App
Global storage of Application pointer - only one Application can exist.
const uint8_t ESPHOME_WEBSERVER_INDEX_HTML[] PROGMEM
Definition web_server.h:27