ESPHome 2026.3.0-dev
Loading...
Searching...
No Matches
debug_component.h
Go to the documentation of this file.
1#pragma once
2
7#include <span>
8
9#ifdef USE_SENSOR
11#endif
12#ifdef USE_TEXT_SENSOR
14#endif
15
16namespace esphome {
17namespace debug {
18
19static constexpr size_t DEVICE_INFO_BUFFER_SIZE = 256;
20static constexpr size_t RESET_REASON_BUFFER_SIZE = 128;
21
22// buf_append_printf is now provided by esphome/core/helpers.h
23
25 public:
26 void loop() override;
27 void update() override;
28 float get_setup_priority() const override;
29 void dump_config() override;
30
31#ifdef USE_TEXT_SENSOR
32 void set_device_info_sensor(text_sensor::TextSensor *device_info) { device_info_ = device_info; }
33 void set_reset_reason_sensor(text_sensor::TextSensor *reset_reason) { reset_reason_ = reset_reason; }
34#endif // USE_TEXT_SENSOR
35#ifdef USE_SENSOR
36 void set_free_sensor(sensor::Sensor *free_sensor) { free_sensor_ = free_sensor; }
37 void set_block_sensor(sensor::Sensor *block_sensor) { block_sensor_ = block_sensor; }
38#if (defined(USE_ESP8266) && USE_ARDUINO_VERSION_CODE >= VERSION_CODE(2, 5, 2)) || defined(USE_ESP32)
39 void set_fragmentation_sensor(sensor::Sensor *fragmentation_sensor) { fragmentation_sensor_ = fragmentation_sensor; }
40#endif
41#if defined(USE_ESP32) || defined(USE_LIBRETINY)
42 void set_min_free_sensor(sensor::Sensor *min_free_sensor) { min_free_sensor_ = min_free_sensor; }
43#endif
44 void set_loop_time_sensor(sensor::Sensor *loop_time_sensor) { loop_time_sensor_ = loop_time_sensor; }
45#ifdef USE_ESP32
46 void set_psram_sensor(sensor::Sensor *psram_sensor) { this->psram_sensor_ = psram_sensor; }
47#endif // USE_ESP32
48 void set_cpu_frequency_sensor(sensor::Sensor *cpu_frequency_sensor) {
49 this->cpu_frequency_sensor_ = cpu_frequency_sensor;
50 }
51#endif // USE_SENSOR
52#ifdef USE_ESP32
53 void on_shutdown() override;
54#endif // USE_ESP32
55 protected:
56 uint32_t free_heap_{};
57
58#ifdef USE_SENSOR
59 uint32_t last_loop_timetag_{0};
60 uint32_t max_loop_time_{0};
61
64#if (defined(USE_ESP8266) && USE_ARDUINO_VERSION_CODE >= VERSION_CODE(2, 5, 2)) || defined(USE_ESP32)
66#endif
67#if defined(USE_ESP32) || defined(USE_LIBRETINY)
69#endif
71#ifdef USE_ESP32
73#endif // USE_ESP32
75#endif // USE_SENSOR
76
77#if defined(USE_ESP32) || defined(USE_ZEPHYR)
89#endif
90
91#ifdef USE_TEXT_SENSOR
94#endif // USE_TEXT_SENSOR
95
96 const char *get_reset_reason_(std::span<char, RESET_REASON_BUFFER_SIZE> buffer);
97 const char *get_wakeup_cause_(std::span<char, RESET_REASON_BUFFER_SIZE> buffer);
98 uint32_t get_free_heap_();
99 size_t get_device_info_(std::span<char, DEVICE_INFO_BUFFER_SIZE> buffer, size_t pos);
100 void update_platform_();
101};
102
103} // namespace debug
104} // namespace esphome
This class simplifies creating components that periodically check a state.
Definition component.h:527
void set_block_sensor(sensor::Sensor *block_sensor)
void set_cpu_frequency_sensor(sensor::Sensor *cpu_frequency_sensor)
float get_setup_priority() const override
void set_free_sensor(sensor::Sensor *free_sensor)
void log_partition_info_()
Logs information about the device's partition table.
size_t get_device_info_(std::span< char, DEVICE_INFO_BUFFER_SIZE > buffer, size_t pos)
void set_loop_time_sensor(sensor::Sensor *loop_time_sensor)
sensor::Sensor * fragmentation_sensor_
void set_min_free_sensor(sensor::Sensor *min_free_sensor)
const char * get_wakeup_cause_(std::span< char, RESET_REASON_BUFFER_SIZE > buffer)
const char * get_reset_reason_(std::span< char, RESET_REASON_BUFFER_SIZE > buffer)
text_sensor::TextSensor * reset_reason_
void set_psram_sensor(sensor::Sensor *psram_sensor)
void set_fragmentation_sensor(sensor::Sensor *fragmentation_sensor)
void set_device_info_sensor(text_sensor::TextSensor *device_info)
sensor::Sensor * cpu_frequency_sensor_
text_sensor::TextSensor * device_info_
void set_reset_reason_sensor(text_sensor::TextSensor *reset_reason)
Base-class for all sensors.
Definition sensor.h:47
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
size_t size_t pos
Definition helpers.h:854