ESPHome 2025.8.0b1
Loading...
Searching...
No Matches
esphome::ESPHomeOTAComponent Class Reference

ESPHomeOTAComponent provides a simple way to integrate Over-the-Air updates into your app using ArduinoOTA. More...

#include <ota_esphome.h>

Inheritance diagram for esphome::ESPHomeOTAComponent:
esphome::ota::OTAComponent esphome::Component

Public Member Functions

void set_auth_password (const std::string &password)
 
void set_port (uint16_t port)
 Manually set the port OTA should listen on.
 
void setup () override
 
void dump_config () override
 
float get_setup_priority () const override
 
void loop () override
 
uint16_t get_port () const
 
- Public Member Functions inherited from esphome::ota::OTAComponent
void add_on_state_callback (std::function< void(ota::OTAState, float, uint8_t)> &&callback)
 
- Public Member Functions inherited from esphome::Component
float get_actual_setup_priority () const
 
void set_setup_priority (float priority)
 
virtual float get_loop_priority () const
 priority of loop().
 
void call ()
 
virtual void on_shutdown ()
 
virtual void on_safe_shutdown ()
 
virtual bool teardown ()
 Called during teardown to allow component to gracefully finish operations.
 
virtual void on_powerdown ()
 Called after teardown is complete to power down hardware.
 
uint8_t get_component_state () const
 
void reset_to_construction_state ()
 Reset this component back to the construction state to allow setup to run again.
 
bool is_in_loop_state () const
 Check if this component has completed setup and is in the loop state.
 
virtual void mark_failed ()
 Mark this component as failed.
 
void mark_failed (const char *message)
 
void disable_loop ()
 Disable this component's loop.
 
void enable_loop ()
 Enable this component's loop.
 
void enable_loop_soon_any_context ()
 Thread and ISR-safe version of enable_loop() that can be called from any context.
 
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=nullptr)
 
void status_set_error (const char *message=nullptr)
 
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.
 
const char * get_component_source () const
 Get the integration where this component was declared as a string.
 
bool should_warn_of_blocking (uint32_t blocking_time)
 

Protected Member Functions

void handle_handshake_ ()
 
void handle_data_ ()
 
bool readall_ (uint8_t *buf, size_t len)
 
bool writeall_ (const uint8_t *buf, size_t len)
 
void log_socket_error_ (const char *msg)
 
void log_read_error_ (const char *what)
 
void log_start_ (const char *phase)
 
void cleanup_connection_ ()
 
void yield_and_feed_watchdog_ ()
 
- Protected Member Functions inherited from esphome::Component
virtual void call_loop ()
 
virtual void call_setup ()
 
virtual void call_dump_config ()
 
void set_component_state_ (uint8_t state)
 Helper to set component state (clears state bits and sets new state)
 
void set_interval (const std::string &name, uint32_t interval, std::function< void()> &&f)
 Set an interval function with a unique name.
 
void set_interval (const char *name, uint32_t interval, std::function< void()> &&f)
 Set an interval function with a const char* name.
 
void set_interval (uint32_t interval, std::function< void()> &&f)
 
bool cancel_interval (const std::string &name)
 Cancel an interval function.
 
bool cancel_interval (const char *name)
 
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.
 
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.
 
void set_timeout (const std::string &name, uint32_t timeout, std::function< void()> &&f)
 Set a timeout function with a unique name.
 
void set_timeout (const char *name, uint32_t timeout, std::function< void()> &&f)
 Set a timeout function with a const char* name.
 
void set_timeout (uint32_t timeout, std::function< void()> &&f)
 
bool cancel_timeout (const std::string &name)
 Cancel a timeout function.
 
bool cancel_timeout (const char *name)
 
void defer (const std::string &name, std::function< void()> &&f)
 Defer a callback to the next loop() call.
 
void defer (const char *name, std::function< void()> &&f)
 Defer a callback to the next loop() call with a const char* name.
 
void defer (std::function< void()> &&f)
 Defer a callback to the next loop() call.
 
bool cancel_defer (const std::string &name)
 Cancel a defer callback using the specified name, name must not be empty.
 

Protected Attributes

std::string password_
 
uint16_t port_
 
uint32_t client_connect_time_ {0}
 
std::unique_ptr< socket::Socketserver_
 
std::unique_ptr< socket::Socketclient_
 
- Protected Attributes inherited from esphome::ota::OTAComponent
StateCallbackManager state_callback_ {this}
 
- Protected Attributes inherited from esphome::Component
const char * component_source_ {nullptr}
 
uint16_t warn_if_blocking_over_ {WARN_IF_BLOCKING_OVER_MS}
 Warn if blocked for this many ms (max 65.5s)
 
uint8_t component_state_ {0x00}
 State of this component - each bit has a purpose: Bits 0-2: Component state (0x00=CONSTRUCTION, 0x01=SETUP, 0x02=LOOP, 0x03=FAILED, 0x04=LOOP_DONE) Bit 3: STATUS_LED_WARNING Bit 4: STATUS_LED_ERROR Bits 5-7: Unused - reserved for future expansion.
 
volatile bool pending_enable_loop_ {false}
 ISR-safe flag for enable_loop_soon_any_context.
 

Detailed Description

ESPHomeOTAComponent provides a simple way to integrate Over-the-Air updates into your app using ArduinoOTA.

Definition at line 13 of file ota_esphome.h.

Member Function Documentation

◆ cleanup_connection_()

void esphome::ESPHomeOTAComponent::cleanup_connection_ ( )
protected

Definition at line 486 of file ota_esphome.cpp.

◆ dump_config()

void esphome::ESPHomeOTAComponent::dump_config ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 74 of file ota_esphome.cpp.

◆ get_port()

uint16_t esphome::ESPHomeOTAComponent::get_port ( ) const

Definition at line 475 of file ota_esphome.cpp.

◆ get_setup_priority()

float esphome::ESPHomeOTAComponent::get_setup_priority ( ) const
overridevirtual

Reimplemented from esphome::Component.

Definition at line 474 of file ota_esphome.cpp.

◆ handle_data_()

void esphome::ESPHomeOTAComponent::handle_data_ ( )
protected

Handle the OTA data transfer and update process.

This method is blocking and will not return until the OTA update completes, fails, or times out. It handles authentication, receives the firmware data, writes it to flash, and reboots on success.

Definition at line 169 of file ota_esphome.cpp.

◆ handle_handshake_()

void esphome::ESPHomeOTAComponent::handle_handshake_ ( )
protected

Handle the initial OTA handshake.

This method is non-blocking and will return immediately if no data is available. It waits for the first magic byte (0x6C) before proceeding to handle_data_(). A 10-second timeout is enforced from initial connection.

Definition at line 99 of file ota_esphome.cpp.

◆ log_read_error_()

void esphome::ESPHomeOTAComponent::log_read_error_ ( const char * what)
protected

Definition at line 480 of file ota_esphome.cpp.

◆ log_socket_error_()

void esphome::ESPHomeOTAComponent::log_socket_error_ ( const char * msg)
protected

Definition at line 478 of file ota_esphome.cpp.

◆ log_start_()

void esphome::ESPHomeOTAComponent::log_start_ ( const char * phase)
protected

Definition at line 482 of file ota_esphome.cpp.

◆ loop()

void esphome::ESPHomeOTAComponent::loop ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 87 of file ota_esphome.cpp.

◆ readall_()

bool esphome::ESPHomeOTAComponent::readall_ ( uint8_t * buf,
size_t len )
protected

Definition at line 423 of file ota_esphome.cpp.

◆ set_auth_password()

void esphome::ESPHomeOTAComponent::set_auth_password ( const std::string & password)
inline

Definition at line 16 of file ota_esphome.h.

◆ set_port()

void esphome::ESPHomeOTAComponent::set_port ( uint16_t port)

Manually set the port OTA should listen on.

Definition at line 476 of file ota_esphome.cpp.

◆ setup()

void esphome::ESPHomeOTAComponent::setup ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 26 of file ota_esphome.cpp.

◆ writeall_()

bool esphome::ESPHomeOTAComponent::writeall_ ( const uint8_t * buf,
size_t len )
protected

Definition at line 450 of file ota_esphome.cpp.

◆ yield_and_feed_watchdog_()

void esphome::ESPHomeOTAComponent::yield_and_feed_watchdog_ ( )
protected

Definition at line 492 of file ota_esphome.cpp.

Field Documentation

◆ client_

std::unique_ptr<socket::Socket> esphome::ESPHomeOTAComponent::client_
protected

Definition at line 48 of file ota_esphome.h.

◆ client_connect_time_

uint32_t esphome::ESPHomeOTAComponent::client_connect_time_ {0}
protected

Definition at line 45 of file ota_esphome.h.

◆ password_

std::string esphome::ESPHomeOTAComponent::password_
protected

Definition at line 41 of file ota_esphome.h.

◆ port_

uint16_t esphome::ESPHomeOTAComponent::port_
protected

Definition at line 44 of file ota_esphome.h.

◆ server_

std::unique_ptr<socket::Socket> esphome::ESPHomeOTAComponent::server_
protected

Definition at line 47 of file ota_esphome.h.


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