ESPHome  2024.11.0
Public Member Functions | Protected Member Functions | Protected Attributes
esphome::deep_sleep::DeepSleepComponent Class Reference

This component allows setting up the node to go into deep sleep mode to conserve battery. More...

#include <deep_sleep_component.h>

Inheritance diagram for esphome::deep_sleep::DeepSleepComponent:
esphome::Component

Public Member Functions

void set_sleep_duration (uint32_t time_ms)
 Set the duration in ms the component should sleep once it's in deep sleep mode. More...
 
void set_wakeup_pin (InternalGPIOPin *pin)
 Set the pin to wake up to on the ESP32 once it's in deep sleep mode. More...
 
void set_wakeup_pin_mode (WakeupPinMode wakeup_pin_mode)
 
void set_ext1_wakeup (Ext1Wakeup ext1_wakeup)
 
void set_touch_wakeup (bool touch_wakeup)
 
void set_run_duration (WakeupCauseToRunDuration wakeup_cause_to_run_duration)
 
void set_run_duration (uint32_t time_ms)
 Set a duration in ms for how long the code should run before entering deep sleep mode. More...
 
void setup () override
 
void dump_config () override
 
void loop () override
 
float get_loop_priority () const override
 
float get_setup_priority () const override
 
void begin_sleep (bool manual=false)
 Helper to enter deep sleep mode. More...
 
void prevent_deep_sleep ()
 
void allow_deep_sleep ()
 
- Public Member Functions inherited from esphome::Component
float get_actual_setup_priority () const
 
void set_setup_priority (float priority)
 
void call ()
 
virtual void on_shutdown ()
 
virtual void on_safe_shutdown ()
 
uint32_t get_component_state () const
 
virtual void mark_failed ()
 Mark this component as failed. More...
 
bool is_failed () const
 
bool is_ready () const
 
virtual bool can_proceed ()
 
bool status_has_warning () const
 
bool status_has_error () const
 
void status_set_warning (const char *message="unspecified")
 
void status_set_error (const char *message="unspecified")
 
void status_clear_warning ()
 
void status_clear_error ()
 
void status_momentary_warning (const std::string &name, uint32_t length=5000)
 
void status_momentary_error (const std::string &name, uint32_t length=5000)
 
bool has_overridden_loop () const
 
void set_component_source (const char *source)
 Set where this component was loaded from for some debug messages. More...
 
const char * get_component_source () const
 Get the integration where this component was declared as a string. More...
 

Protected Member Functions

optional< uint32_t > get_run_duration_ () const
 
void dump_config_platform_ ()
 
bool prepare_to_sleep_ ()
 
void deep_sleep_ ()
 
- Protected Member Functions inherited from esphome::Component
virtual void call_loop ()
 
virtual void call_setup ()
 
virtual void call_dump_config ()
 
void set_interval (const std::string &name, uint32_t interval, std::function< void()> &&f)
 Set an interval function with a unique name. More...
 
void set_interval (uint32_t interval, std::function< void()> &&f)
 
bool cancel_interval (const std::string &name)
 Cancel an interval function. More...
 
void set_retry (const std::string &name, uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f)
 Set an retry function with a unique name. More...
 
void set_retry (uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult(uint8_t)> &&f, float backoff_increase_factor=1.0f)
 
bool cancel_retry (const std::string &name)
 Cancel a retry function. More...
 
void set_timeout (const std::string &name, uint32_t timeout, std::function< void()> &&f)
 Set a timeout function with a unique name. More...
 
void set_timeout (uint32_t timeout, std::function< void()> &&f)
 
bool cancel_timeout (const std::string &name)
 Cancel a timeout function. More...
 
void defer (const std::string &name, std::function< void()> &&f)
 Defer a callback to the next loop() call. More...
 
void defer (std::function< void()> &&f)
 Defer a callback to the next loop() call. More...
 
bool cancel_defer (const std::string &name)
 Cancel a defer callback using the specified name, name must not be empty. More...
 

Protected Attributes

optional< uint64_t > sleep_duration_
 
InternalGPIOPinwakeup_pin_
 
WakeupPinMode wakeup_pin_mode_ {WAKEUP_PIN_MODE_IGNORE}
 
optional< Ext1Wakeupext1_wakeup_
 
optional< bool > touch_wakeup_
 
optional< WakeupCauseToRunDurationwakeup_cause_to_run_duration_
 
optional< uint32_t > run_duration_
 
bool next_enter_deep_sleep_ {false}
 
bool prevent_ {false}
 
- Protected Attributes inherited from esphome::Component
uint32_t component_state_ {0x0000}
 State of this component. More...
 
float setup_priority_override_ {NAN}
 
const char * component_source_ {nullptr}
 

Detailed Description

This component allows setting up the node to go into deep sleep mode to conserve battery.

To set this component up, first set when the deep sleep should trigger using set_run_cycles and set_run_duration, then set how long the deep sleep should last using set_sleep_duration and optionally on the ESP32 set_wakeup_pin.

Definition at line 65 of file deep_sleep_component.h.

Member Function Documentation

◆ allow_deep_sleep()

void esphome::deep_sleep::DeepSleepComponent::allow_deep_sleep ( )

Definition at line 73 of file deep_sleep_component.cpp.

◆ begin_sleep()

void esphome::deep_sleep::DeepSleepComponent::begin_sleep ( bool  manual = false)

Helper to enter deep sleep mode.

Definition at line 50 of file deep_sleep_component.cpp.

◆ deep_sleep_()

void esphome::deep_sleep::DeepSleepComponent::deep_sleep_ ( )
protected

Definition at line 67 of file deep_sleep_esp32.cpp.

◆ dump_config()

void esphome::deep_sleep::DeepSleepComponent::dump_config ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 25 of file deep_sleep_component.cpp.

◆ dump_config_platform_()

void esphome::deep_sleep::DeepSleepComponent::dump_config_platform_ ( )
protected

Definition at line 41 of file deep_sleep_esp32.cpp.

◆ get_loop_priority()

float esphome::deep_sleep::DeepSleepComponent::get_loop_priority ( ) const
overridevirtual

Reimplemented from esphome::Component.

Definition at line 42 of file deep_sleep_component.cpp.

◆ get_run_duration_()

optional< uint32_t > esphome::deep_sleep::DeepSleepComponent::get_run_duration_ ( ) const
protected

Definition at line 10 of file deep_sleep_esp32.cpp.

◆ get_setup_priority()

float esphome::deep_sleep::DeepSleepComponent::get_setup_priority ( ) const
overridevirtual

Reimplemented from esphome::Component.

Definition at line 69 of file deep_sleep_component.cpp.

◆ loop()

void esphome::deep_sleep::DeepSleepComponent::loop ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 37 of file deep_sleep_component.cpp.

◆ prepare_to_sleep_()

bool esphome::deep_sleep::DeepSleepComponent::prepare_to_sleep_ ( )
protected

Definition at line 53 of file deep_sleep_esp32.cpp.

◆ prevent_deep_sleep()

void esphome::deep_sleep::DeepSleepComponent::prevent_deep_sleep ( )

Definition at line 71 of file deep_sleep_component.cpp.

◆ set_ext1_wakeup()

void esphome::deep_sleep::DeepSleepComponent::set_ext1_wakeup ( Ext1Wakeup  ext1_wakeup)

Definition at line 32 of file deep_sleep_esp32.cpp.

◆ set_run_duration() [1/2]

void esphome::deep_sleep::DeepSleepComponent::set_run_duration ( WakeupCauseToRunDuration  wakeup_cause_to_run_duration)

Definition at line 37 of file deep_sleep_esp32.cpp.

◆ set_run_duration() [2/2]

void esphome::deep_sleep::DeepSleepComponent::set_run_duration ( uint32_t  time_ms)

Set a duration in ms for how long the code should run before entering deep sleep mode.

Definition at line 48 of file deep_sleep_component.cpp.

◆ set_sleep_duration()

void esphome::deep_sleep::DeepSleepComponent::set_sleep_duration ( uint32_t  time_ms)

Set the duration in ms the component should sleep once it's in deep sleep mode.

Definition at line 46 of file deep_sleep_component.cpp.

◆ set_touch_wakeup()

void esphome::deep_sleep::DeepSleepComponent::set_touch_wakeup ( bool  touch_wakeup)

Definition at line 34 of file deep_sleep_esp32.cpp.

◆ set_wakeup_pin()

void esphome::deep_sleep::DeepSleepComponent::set_wakeup_pin ( InternalGPIOPin pin)
inline

Set the pin to wake up to on the ESP32 once it's in deep sleep mode.

Use the inverted property to set the wakeup level.

Definition at line 73 of file deep_sleep_component.h.

◆ set_wakeup_pin_mode()

void esphome::deep_sleep::DeepSleepComponent::set_wakeup_pin_mode ( WakeupPinMode  wakeup_pin_mode)

Definition at line 27 of file deep_sleep_esp32.cpp.

◆ setup()

void esphome::deep_sleep::DeepSleepComponent::setup ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 12 of file deep_sleep_component.cpp.

Field Documentation

◆ ext1_wakeup_

optional<Ext1Wakeup> esphome::deep_sleep::DeepSleepComponent::ext1_wakeup_
protected

Definition at line 121 of file deep_sleep_component.h.

◆ next_enter_deep_sleep_

bool esphome::deep_sleep::DeepSleepComponent::next_enter_deep_sleep_ {false}
protected

Definition at line 128 of file deep_sleep_component.h.

◆ prevent_

bool esphome::deep_sleep::DeepSleepComponent::prevent_ {false}
protected

Definition at line 129 of file deep_sleep_component.h.

◆ run_duration_

optional<uint32_t> esphome::deep_sleep::DeepSleepComponent::run_duration_
protected

Definition at line 127 of file deep_sleep_component.h.

◆ sleep_duration_

optional<uint64_t> esphome::deep_sleep::DeepSleepComponent::sleep_duration_
protected

Definition at line 115 of file deep_sleep_component.h.

◆ touch_wakeup_

optional<bool> esphome::deep_sleep::DeepSleepComponent::touch_wakeup_
protected

Definition at line 124 of file deep_sleep_component.h.

◆ wakeup_cause_to_run_duration_

optional<WakeupCauseToRunDuration> esphome::deep_sleep::DeepSleepComponent::wakeup_cause_to_run_duration_
protected

Definition at line 125 of file deep_sleep_component.h.

◆ wakeup_pin_

InternalGPIOPin* esphome::deep_sleep::DeepSleepComponent::wakeup_pin_
protected

Definition at line 117 of file deep_sleep_component.h.

◆ wakeup_pin_mode_

WakeupPinMode esphome::deep_sleep::DeepSleepComponent::wakeup_pin_mode_ {WAKEUP_PIN_MODE_IGNORE}
protected

Definition at line 118 of file deep_sleep_component.h.


The documentation for this class was generated from the following files: