ESPHome 2025.9.0-dev
Loading...
Searching...
No Matches
factory_reset.h
Go to the documentation of this file.
1#pragma once
2
6#if !defined(USE_RP2040) && !defined(USE_HOST)
7
8#ifdef USE_ESP32
9#include <esp_system.h>
10#endif
11
12namespace esphome {
13namespace factory_reset {
15 public:
16 FactoryResetComponent(uint8_t required_count, uint32_t max_interval)
17 : required_count_(required_count), max_interval_(max_interval) {}
18
19 void dump_config() override;
20 void setup() override;
21 void add_increment_callback(std::function<void(uint8_t, uint8_t)> &&callback) {
22 this->increment_callback_.add(std::move(callback));
23 }
24
25 protected:
27 void save_(uint8_t count);
28 ESPPreferenceObject flash_{}; // saves the number of fast power cycles
29 uint8_t required_count_; // The number of boot attempts before fast boot is enabled
30 uint32_t max_interval_; // max interval between power cycles
31 CallbackManager<void(uint8_t, uint8_t)> increment_callback_{};
32};
33
34class FastBootTrigger : public Trigger<uint8_t, uint8_t> {
35 public:
37 parent->add_increment_callback([this](uint8_t current, uint8_t target) { this->trigger(current, target); });
38 }
39};
40} // namespace factory_reset
41} // namespace esphome
42
43#endif // !defined(USE_RP2040) && !defined(USE_HOST)
void add_increment_callback(std::function< void(uint8_t, uint8_t)> &&callback)
CallbackManager< void(uint8_t, uint8_t)> increment_callback_
FactoryResetComponent(uint8_t required_count, uint32_t max_interval)
FastBootTrigger(FactoryResetComponent *parent)
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7