ESPHome 2025.5.0
Loading...
Searching...
No Matches
debug_component.h
Go to the documentation of this file.
1#pragma once
2
7
8#ifdef USE_SENSOR
10#endif
11#ifdef USE_TEXT_SENSOR
13#endif
14
15namespace esphome {
16namespace debug {
17
19 public:
20 void loop() override;
21 void update() override;
22 float get_setup_priority() const override;
23 void dump_config() override;
24
25#ifdef USE_TEXT_SENSOR
26 void set_device_info_sensor(text_sensor::TextSensor *device_info) { device_info_ = device_info; }
27 void set_reset_reason_sensor(text_sensor::TextSensor *reset_reason) { reset_reason_ = reset_reason; }
28#endif // USE_TEXT_SENSOR
29#ifdef USE_SENSOR
30 void set_free_sensor(sensor::Sensor *free_sensor) { free_sensor_ = free_sensor; }
31 void set_block_sensor(sensor::Sensor *block_sensor) { block_sensor_ = block_sensor; }
32#if defined(USE_ESP8266) && USE_ARDUINO_VERSION_CODE >= VERSION_CODE(2, 5, 2)
33 void set_fragmentation_sensor(sensor::Sensor *fragmentation_sensor) { fragmentation_sensor_ = fragmentation_sensor; }
34#endif
35 void set_loop_time_sensor(sensor::Sensor *loop_time_sensor) { loop_time_sensor_ = loop_time_sensor; }
36#ifdef USE_ESP32
37 void set_psram_sensor(sensor::Sensor *psram_sensor) { this->psram_sensor_ = psram_sensor; }
38#endif // USE_ESP32
39 void set_cpu_frequency_sensor(sensor::Sensor *cpu_frequency_sensor) {
40 this->cpu_frequency_sensor_ = cpu_frequency_sensor;
41 }
42#endif // USE_SENSOR
43#ifdef USE_ESP32
44 void on_shutdown() override;
45#endif // USE_ESP32
46 protected:
47 uint32_t free_heap_{};
48
49#ifdef USE_SENSOR
50 uint32_t last_loop_timetag_{0};
51 uint32_t max_loop_time_{0};
52
55#if defined(USE_ESP8266) && USE_ARDUINO_VERSION_CODE >= VERSION_CODE(2, 5, 2)
57#endif
59#ifdef USE_ESP32
61#endif // USE_ESP32
63#endif // USE_SENSOR
64
65#ifdef USE_ESP32
77#endif // USE_ESP32
78
79#ifdef USE_TEXT_SENSOR
82#endif // USE_TEXT_SENSOR
83
84 std::string get_reset_reason_();
85 std::string get_wakeup_cause_();
86 uint32_t get_free_heap_();
87 void get_device_info_(std::string &device_info);
88 void update_platform_();
89};
90
91} // namespace debug
92} // namespace esphome
This class simplifies creating components that periodically check a state.
Definition component.h:301
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.
void set_loop_time_sensor(sensor::Sensor *loop_time_sensor)
sensor::Sensor * fragmentation_sensor_
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 get_device_info_(std::string &device_info)
void set_reset_reason_sensor(text_sensor::TextSensor *reset_reason)
Base-class for all sensors.
Definition sensor.h:57
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7