ESPHome 2025.8.0b1
|
ESPHomeOTAComponent provides a simple way to integrate Over-the-Air updates into your app using ArduinoOTA. More...
#include <ota_esphome.h>
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 |
![]() | |
void | add_on_state_callback (std::function< void(ota::OTAState, float, uint8_t)> &&callback) |
![]() | |
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_ () |
![]() | |
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::Socket > | server_ |
std::unique_ptr< socket::Socket > | client_ |
![]() | |
StateCallbackManager | state_callback_ {this} |
![]() | |
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. | |
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.
|
protected |
Definition at line 486 of file ota_esphome.cpp.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 74 of file ota_esphome.cpp.
uint16_t esphome::ESPHomeOTAComponent::get_port | ( | ) | const |
Definition at line 475 of file ota_esphome.cpp.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 474 of file ota_esphome.cpp.
|
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.
|
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.
|
protected |
Definition at line 480 of file ota_esphome.cpp.
|
protected |
Definition at line 478 of file ota_esphome.cpp.
|
protected |
Definition at line 482 of file ota_esphome.cpp.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 87 of file ota_esphome.cpp.
|
protected |
Definition at line 423 of file ota_esphome.cpp.
|
inline |
Definition at line 16 of file ota_esphome.h.
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.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 26 of file ota_esphome.cpp.
|
protected |
Definition at line 450 of file ota_esphome.cpp.
|
protected |
Definition at line 492 of file ota_esphome.cpp.
|
protected |
Definition at line 48 of file ota_esphome.h.
|
protected |
Definition at line 45 of file ota_esphome.h.
|
protected |
Definition at line 41 of file ota_esphome.h.
|
protected |
Definition at line 44 of file ota_esphome.h.
|
protected |
Definition at line 47 of file ota_esphome.h.