ESPHome 2026.3.0
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;
21static constexpr size_t WAKEUP_CAUSE_BUFFER_SIZE = 128;
22
23// buf_append_printf is now provided by esphome/core/helpers.h
24
26 public:
27 void loop() override;
28 void update() override;
29 float get_setup_priority() const override;
30 void dump_config() override;
31
32#ifdef USE_TEXT_SENSOR
33 void set_device_info_sensor(text_sensor::TextSensor *device_info) { device_info_ = device_info; }
34 void set_reset_reason_sensor(text_sensor::TextSensor *reset_reason) { reset_reason_ = reset_reason; }
35#endif // USE_TEXT_SENSOR
36#ifdef USE_SENSOR
37 void set_free_sensor(sensor::Sensor *free_sensor) { free_sensor_ = free_sensor; }
38 void set_block_sensor(sensor::Sensor *block_sensor) { block_sensor_ = block_sensor; }
39#if (defined(USE_ESP8266) && USE_ARDUINO_VERSION_CODE >= VERSION_CODE(2, 5, 2)) || defined(USE_ESP32)
40 void set_fragmentation_sensor(sensor::Sensor *fragmentation_sensor) { fragmentation_sensor_ = fragmentation_sensor; }
41#endif
42#if defined(USE_ESP32) || defined(USE_LIBRETINY)
43 void set_min_free_sensor(sensor::Sensor *min_free_sensor) { min_free_sensor_ = min_free_sensor; }
44#endif
45 void set_loop_time_sensor(sensor::Sensor *loop_time_sensor) { loop_time_sensor_ = loop_time_sensor; }
46#ifdef USE_ESP32
47 void set_psram_sensor(sensor::Sensor *psram_sensor) { this->psram_sensor_ = psram_sensor; }
48#endif // USE_ESP32
49 void set_cpu_frequency_sensor(sensor::Sensor *cpu_frequency_sensor) {
50 this->cpu_frequency_sensor_ = cpu_frequency_sensor;
51 }
52#endif // USE_SENSOR
53#ifdef USE_ESP32
54 void on_shutdown() override;
55#endif // USE_ESP32
56 protected:
58
59#ifdef USE_SENSOR
62
65#if (defined(USE_ESP8266) && USE_ARDUINO_VERSION_CODE >= VERSION_CODE(2, 5, 2)) || defined(USE_ESP32)
67#endif
68#if defined(USE_ESP32) || defined(USE_LIBRETINY)
70#endif
72#ifdef USE_ESP32
74#endif // USE_ESP32
76#endif // USE_SENSOR
77
78#if defined(USE_ESP32) || defined(USE_ZEPHYR)
90#endif
91
92#ifdef USE_TEXT_SENSOR
95#endif // USE_TEXT_SENSOR
96
97 const char *get_reset_reason_(std::span<char, RESET_REASON_BUFFER_SIZE> buffer);
98 const char *get_wakeup_cause_(std::span<char, WAKEUP_CAUSE_BUFFER_SIZE> buffer);
100 size_t get_device_info_(std::span<char, DEVICE_INFO_BUFFER_SIZE> buffer, size_t pos);
101 void update_platform_();
102};
103
104} // namespace debug
105} // namespace esphome
This class simplifies creating components that periodically check a state.
Definition component.h:538
void set_block_sensor(sensor::Sensor *block_sensor)
const char * get_wakeup_cause_(std::span< char, WAKEUP_CAUSE_BUFFER_SIZE > buffer)
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_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:929
static void uint32_t