ESPHome 2025.5.0
Loading...
Searching...
No Matches
safe_mode.h
Go to the documentation of this file.
1#pragma once
2
7
8namespace esphome {
9namespace safe_mode {
10
13 public:
14 bool should_enter_safe_mode(uint8_t num_attempts, uint32_t enable_time, uint32_t boot_is_good_after);
15
17 void set_safe_mode_pending(const bool &pending);
19
20 void dump_config() override;
21 float get_setup_priority() const override;
22 void loop() override;
23
24 void clean_rtc();
25
26 void on_safe_shutdown() override;
27
28 void add_on_safe_mode_callback(std::function<void()> &&callback) {
29 this->safe_mode_callback_.add(std::move(callback));
30 }
31
32 protected:
33 void write_rtc_(uint32_t val);
34 uint32_t read_rtc_();
35
36 bool boot_successful_{false};
38 uint32_t safe_mode_enable_time_{60000};
44
45 static const uint32_t ENTER_SAFE_MODE_MAGIC =
46 0x5afe5afe;
47};
48
49} // namespace safe_mode
50} // namespace esphome
SafeModeComponent provides a safe way to recover from repeated boot failures.
Definition safe_mode.h:12
bool should_enter_safe_mode(uint8_t num_attempts, uint32_t enable_time, uint32_t boot_is_good_after)
Definition safe_mode.cpp:65
uint32_t safe_mode_enable_time_
The time safe mode should remain active for.
Definition safe_mode.h:38
void add_on_safe_mode_callback(std::function< void()> &&callback)
Definition safe_mode.h:28
bool boot_successful_
set to true after boot is considered successful
Definition safe_mode.h:36
uint32_t safe_mode_start_time_
stores when safe mode was enabled
Definition safe_mode.h:40
uint32_t safe_mode_boot_is_good_after_
The amount of time after which the boot is considered successful.
Definition safe_mode.h:37
float get_setup_priority() const override
Definition safe_mode.cpp:36
void set_safe_mode_pending(const bool &pending)
Set to true if the next startup will enter safe mode.
Definition safe_mode.cpp:47
static const uint32_t ENTER_SAFE_MODE_MAGIC
a magic number to indicate that safe mode should be entered on next boot
Definition safe_mode.h:45
CallbackManager< void()> safe_mode_callback_
Definition safe_mode.h:43
mopeka_std_values val[4]
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7