ESPHome  1.15.2
Public Member Functions | Data Fields | Protected Member Functions | Protected Attributes
esphome::Application Class Reference

#include <application.h>

Public Member Functions

void pre_setup (const std::string &name, const char *compilation_time)
 
void register_binary_sensor (binary_sensor::BinarySensor *binary_sensor)
 
void register_sensor (sensor::Sensor *sensor)
 
void register_switch (switch_::Switch *a_switch)
 
void register_text_sensor (text_sensor::TextSensor *sensor)
 
void register_fan (fan::FanState *state)
 
void register_cover (cover::Cover *cover)
 
void register_climate (climate::Climate *climate)
 
void register_light (light::LightState *light)
 
template<class C >
C * register_component (C *c)
 Register the component in this Application instance. More...
 
void setup ()
 Set up all the registered components. Call this at the end of your setup() function. More...
 
void loop ()
 Make a loop iteration. Call this in your loop() function. More...
 
const std::string & get_name () const
 Get the name of this Application set by set_name(). More...
 
const std::string & get_compilation_time () const
 
void set_loop_interval (uint32_t loop_interval)
 Set the target interval with which to run the loop() calls. More...
 
void schedule_dump_config ()
 
void feed_wdt ()
 
void reboot ()
 
void safe_reboot ()
 
void run_safe_shutdown_hooks ()
 
uint32_t get_app_state () const
 
const std::vector< binary_sensor::BinarySensor * > & get_binary_sensors ()
 
binary_sensor::BinarySensorget_binary_sensor_by_key (uint32_t key, bool include_internal=false)
 
const std::vector< switch_::Switch * > & get_switches ()
 
switch_::Switchget_switch_by_key (uint32_t key, bool include_internal=false)
 
const std::vector< sensor::Sensor * > & get_sensors ()
 
sensor::Sensorget_sensor_by_key (uint32_t key, bool include_internal=false)
 
const std::vector< text_sensor::TextSensor * > & get_text_sensors ()
 
text_sensor::TextSensorget_text_sensor_by_key (uint32_t key, bool include_internal=false)
 
const std::vector< fan::FanState * > & get_fans ()
 
fan::FanStateget_fan_by_key (uint32_t key, bool include_internal=false)
 
const std::vector< cover::Cover * > & get_covers ()
 
cover::Coverget_cover_by_key (uint32_t key, bool include_internal=false)
 
const std::vector< light::LightState * > & get_lights ()
 
light::LightStateget_light_by_key (uint32_t key, bool include_internal=false)
 
const std::vector< climate::Climate * > & get_climates ()
 
climate::Climateget_climate_by_key (uint32_t key, bool include_internal=false)
 

Data Fields

Scheduler scheduler
 

Protected Member Functions

void register_component_ (Component *comp)
 
void calculate_looping_components_ ()
 

Protected Attributes

friend Component
 
std::vector< Component * > components_ {}
 
std::vector< Component * > looping_components_ {}
 
std::vector< binary_sensor::BinarySensor * > binary_sensors_ {}
 
std::vector< switch_::Switch * > switches_ {}
 
std::vector< sensor::Sensor * > sensors_ {}
 
std::vector< text_sensor::TextSensor * > text_sensors_ {}
 
std::vector< fan::FanState * > fans_ {}
 
std::vector< cover::Cover * > covers_ {}
 
std::vector< climate::Climate * > climates_ {}
 
std::vector< light::LightState * > lights_ {}
 
std::string name_
 
std::string compilation_time_
 
uint32_t last_loop_ {0}
 
uint32_t loop_interval_ {16}
 
int dump_config_at_ {-1}
 
uint32_t app_state_ {0}
 

Detailed Description

Definition at line 38 of file application.h.

Member Function Documentation

◆ calculate_looping_components_()

void esphome::Application::calculate_looping_components_ ( )
protected

Definition at line 154 of file application.cpp.

◆ feed_wdt()

void ICACHE_RAM_ATTR HOT esphome::Application::feed_wdt ( )

Definition at line 113 of file application.cpp.

◆ get_app_state()

uint32_t esphome::Application::get_app_state ( ) const
inline

Definition at line 130 of file application.h.

◆ get_binary_sensor_by_key()

binary_sensor::BinarySensor* esphome::Application::get_binary_sensor_by_key ( uint32_t  key,
bool  include_internal = false 
)
inline

Definition at line 134 of file application.h.

◆ get_binary_sensors()

const std::vector<binary_sensor::BinarySensor *>& esphome::Application::get_binary_sensors ( )
inline

Definition at line 133 of file application.h.

◆ get_climate_by_key()

climate::Climate* esphome::Application::get_climate_by_key ( uint32_t  key,
bool  include_internal = false 
)
inline

Definition at line 197 of file application.h.

◆ get_climates()

const std::vector<climate::Climate *>& esphome::Application::get_climates ( )
inline

Definition at line 196 of file application.h.

◆ get_compilation_time()

const std::string& esphome::Application::get_compilation_time ( ) const
inline

Definition at line 96 of file application.h.

◆ get_cover_by_key()

cover::Cover* esphome::Application::get_cover_by_key ( uint32_t  key,
bool  include_internal = false 
)
inline

Definition at line 179 of file application.h.

◆ get_covers()

const std::vector<cover::Cover *>& esphome::Application::get_covers ( )
inline

Definition at line 178 of file application.h.

◆ get_fan_by_key()

fan::FanState* esphome::Application::get_fan_by_key ( uint32_t  key,
bool  include_internal = false 
)
inline

Definition at line 170 of file application.h.

◆ get_fans()

const std::vector<fan::FanState *>& esphome::Application::get_fans ( )
inline

Definition at line 169 of file application.h.

◆ get_light_by_key()

light::LightState* esphome::Application::get_light_by_key ( uint32_t  key,
bool  include_internal = false 
)
inline

Definition at line 188 of file application.h.

◆ get_lights()

const std::vector<light::LightState *>& esphome::Application::get_lights ( )
inline

Definition at line 187 of file application.h.

◆ get_name()

const std::string& esphome::Application::get_name ( ) const
inline

Get the name of this Application set by set_name().

Definition at line 94 of file application.h.

◆ get_sensor_by_key()

sensor::Sensor* esphome::Application::get_sensor_by_key ( uint32_t  key,
bool  include_internal = false 
)
inline

Definition at line 152 of file application.h.

◆ get_sensors()

const std::vector<sensor::Sensor *>& esphome::Application::get_sensors ( )
inline

Definition at line 151 of file application.h.

◆ get_switch_by_key()

switch_::Switch* esphome::Application::get_switch_by_key ( uint32_t  key,
bool  include_internal = false 
)
inline

Definition at line 143 of file application.h.

◆ get_switches()

const std::vector<switch_::Switch *>& esphome::Application::get_switches ( )
inline

Definition at line 142 of file application.h.

◆ get_text_sensor_by_key()

text_sensor::TextSensor* esphome::Application::get_text_sensor_by_key ( uint32_t  key,
bool  include_internal = false 
)
inline

Definition at line 161 of file application.h.

◆ get_text_sensors()

const std::vector<text_sensor::TextSensor *>& esphome::Application::get_text_sensors ( )
inline

Definition at line 160 of file application.h.

◆ loop()

void esphome::Application::loop ( )

Make a loop iteration. Call this in your loop() function.

Definition at line 66 of file application.cpp.

◆ pre_setup()

void esphome::Application::pre_setup ( const std::string &  name,
const char *  compilation_time 
)
inline

Definition at line 40 of file application.h.

◆ reboot()

void esphome::Application::reboot ( )

Definition at line 131 of file application.cpp.

◆ register_binary_sensor()

void esphome::Application::register_binary_sensor ( binary_sensor::BinarySensor binary_sensor)
inline

Definition at line 47 of file application.h.

◆ register_climate()

void esphome::Application::register_climate ( climate::Climate climate)
inline

Definition at line 73 of file application.h.

◆ register_component()

template<class C >
C* esphome::Application::register_component ( C *  c)
inline

Register the component in this Application instance.

Definition at line 81 of file application.h.

◆ register_component_()

void esphome::Application::register_component_ ( Component comp)
protected

Definition at line 14 of file application.cpp.

◆ register_cover()

void esphome::Application::register_cover ( cover::Cover cover)
inline

Definition at line 69 of file application.h.

◆ register_fan()

void esphome::Application::register_fan ( fan::FanState state)
inline

Definition at line 65 of file application.h.

◆ register_light()

void esphome::Application::register_light ( light::LightState light)
inline

Definition at line 77 of file application.h.

◆ register_sensor()

void esphome::Application::register_sensor ( sensor::Sensor sensor)
inline

Definition at line 53 of file application.h.

◆ register_switch()

void esphome::Application::register_switch ( switch_::Switch a_switch)
inline

Definition at line 57 of file application.h.

◆ register_text_sensor()

void esphome::Application::register_text_sensor ( text_sensor::TextSensor sensor)
inline

Definition at line 61 of file application.h.

◆ run_safe_shutdown_hooks()

void esphome::Application::run_safe_shutdown_hooks ( )
inline

Definition at line 121 of file application.h.

◆ safe_reboot()

void esphome::Application::safe_reboot ( )

Definition at line 141 of file application.cpp.

◆ schedule_dump_config()

void esphome::Application::schedule_dump_config ( )
inline

Definition at line 113 of file application.h.

◆ set_loop_interval()

void esphome::Application::set_loop_interval ( uint32_t  loop_interval)
inline

Set the target interval with which to run the loop() calls.

If the loop() method takes longer than the target interval, ESPHome won't sleep in loop(), but if the time spent in loop() is small than the target, ESPHome will delay at the end of the App.loop() method.

This is done to conserve power: In most use-cases, high-speed loop() calls are not required and degrade power consumption.

Each component can request a high frequency loop execution by using the HighFrequencyLoopRequester helper in helpers.h

Parameters
loop_intervalThe interval in milliseconds to run the core loop at. Defaults to 16 milliseconds.

Definition at line 111 of file application.h.

◆ setup()

void esphome::Application::setup ( )

Set up all the registered components. Call this at the end of your setup() function.

Definition at line 28 of file application.cpp.

Field Documentation

◆ app_state_

uint32_t esphome::Application::app_state_ {0}
protected

Definition at line 247 of file application.h.

◆ binary_sensors_

std::vector<binary_sensor::BinarySensor *> esphome::Application::binary_sensors_ {}
protected

Definition at line 218 of file application.h.

◆ climates_

std::vector<climate::Climate *> esphome::Application::climates_ {}
protected

Definition at line 236 of file application.h.

◆ compilation_time_

std::string esphome::Application::compilation_time_
protected

Definition at line 243 of file application.h.

◆ Component

friend esphome::Application::Component
protected

Definition at line 208 of file application.h.

◆ components_

std::vector<Component *> esphome::Application::components_ {}
protected

Definition at line 214 of file application.h.

◆ covers_

std::vector<cover::Cover *> esphome::Application::covers_ {}
protected

Definition at line 233 of file application.h.

◆ dump_config_at_

int esphome::Application::dump_config_at_ {-1}
protected

Definition at line 246 of file application.h.

◆ fans_

std::vector<fan::FanState *> esphome::Application::fans_ {}
protected

Definition at line 230 of file application.h.

◆ last_loop_

uint32_t esphome::Application::last_loop_ {0}
protected

Definition at line 244 of file application.h.

◆ lights_

std::vector<light::LightState *> esphome::Application::lights_ {}
protected

Definition at line 239 of file application.h.

◆ loop_interval_

uint32_t esphome::Application::loop_interval_ {16}
protected

Definition at line 245 of file application.h.

◆ looping_components_

std::vector<Component *> esphome::Application::looping_components_ {}
protected

Definition at line 215 of file application.h.

◆ name_

std::string esphome::Application::name_
protected

Definition at line 242 of file application.h.

◆ scheduler

Scheduler esphome::Application::scheduler

Definition at line 205 of file application.h.

◆ sensors_

std::vector<sensor::Sensor *> esphome::Application::sensors_ {}
protected

Definition at line 224 of file application.h.

◆ switches_

std::vector<switch_::Switch *> esphome::Application::switches_ {}
protected

Definition at line 221 of file application.h.

◆ text_sensors_

std::vector<text_sensor::TextSensor *> esphome::Application::text_sensors_ {}
protected

Definition at line 227 of file application.h.


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