1
0
mirror of https://github.com/esphome/esphome.git synced 2025-04-08 20:00:27 +01:00

Rename class, adjust namespace

This commit is contained in:
Keith Burzinski 2024-04-17 23:12:30 -05:00
parent cc8dd92854
commit af6dffd150
No known key found for this signature in database
GPG Key ID: 802564C5F0EEFFBE
10 changed files with 59 additions and 65 deletions

View File

@ -27,31 +27,31 @@ CONF_ON_ERROR = "on_error"
CONF_ON_PROGRESS = "on_progress" CONF_ON_PROGRESS = "on_progress"
CONF_ON_STATE_CHANGE = "on_state_change" CONF_ON_STATE_CHANGE = "on_state_change"
ota_esphome = cg.esphome_ns.namespace("ota_esphome") esphome = cg.esphome_ns.namespace("esphome")
OTAESPHomeComponent = ota_esphome.class_("OTAESPHomeComponent", cg.Component) ESPHomeOTAComponent = esphome.class_("ESPHomeOTAComponent", cg.Component)
OTAESPHomeEndTrigger = ota_esphome.class_( ESPHomeOTAEndTrigger = esphome.class_(
"OTAESPHomeEndTrigger", automation.Trigger.template() "ESPHomeOTAEndTrigger", automation.Trigger.template()
) )
OTAESPHomeErrorTrigger = ota_esphome.class_( ESPHomeOTAErrorTrigger = esphome.class_(
"OTAESPHomeErrorTrigger", automation.Trigger.template() "ESPHomeOTAErrorTrigger", automation.Trigger.template()
) )
OTAESPHomeProgressTrigger = ota_esphome.class_( ESPHomeOTAProgressTrigger = esphome.class_(
"OTAESPHomeProgressTrigger", automation.Trigger.template() "ESPHomeOTAProgressTrigger", automation.Trigger.template()
) )
OTAESPHomeStartTrigger = ota_esphome.class_( ESPHomeOTAStartTrigger = esphome.class_(
"OTAESPHomeStartTrigger", automation.Trigger.template() "ESPHomeOTAStartTrigger", automation.Trigger.template()
) )
OTAESPHomeStateChangeTrigger = ota_esphome.class_( ESPHomeOTAStateChangeTrigger = esphome.class_(
"OTAESPHomeStateChangeTrigger", automation.Trigger.template() "ESPHomeOTAStateChangeTrigger", automation.Trigger.template()
) )
OTAESPHomeState = ota_esphome.enum("OTAESPHomeState") ESPHomeOTAState = esphome.enum("ESPHomeOTAState")
CONFIG_SCHEMA = cv.Schema( CONFIG_SCHEMA = cv.Schema(
{ {
cv.GenerateID(): cv.declare_id(OTAESPHomeComponent), cv.GenerateID(): cv.declare_id(ESPHomeOTAComponent),
cv.Optional(CONF_SAFE_MODE, default=True): cv.boolean, cv.Optional(CONF_SAFE_MODE, default=True): cv.boolean,
cv.Optional(CONF_VERSION, default=2): cv.one_of(1, 2, int=True), cv.Optional(CONF_VERSION, default=2): cv.one_of(1, 2, int=True),
cv.SplitDefault( cv.SplitDefault(
@ -70,29 +70,29 @@ CONFIG_SCHEMA = cv.Schema(
cv.Optional(CONF_ON_STATE_CHANGE): automation.validate_automation( cv.Optional(CONF_ON_STATE_CHANGE): automation.validate_automation(
{ {
cv.GenerateID(CONF_TRIGGER_ID): cv.declare_id( cv.GenerateID(CONF_TRIGGER_ID): cv.declare_id(
OTAESPHomeStateChangeTrigger ESPHomeOTAStateChangeTrigger
), ),
} }
), ),
cv.Optional(CONF_ON_BEGIN): automation.validate_automation( cv.Optional(CONF_ON_BEGIN): automation.validate_automation(
{ {
cv.GenerateID(CONF_TRIGGER_ID): cv.declare_id(OTAESPHomeStartTrigger), cv.GenerateID(CONF_TRIGGER_ID): cv.declare_id(ESPHomeOTAStartTrigger),
} }
), ),
cv.Optional(CONF_ON_END): automation.validate_automation( cv.Optional(CONF_ON_END): automation.validate_automation(
{ {
cv.GenerateID(CONF_TRIGGER_ID): cv.declare_id(OTAESPHomeEndTrigger), cv.GenerateID(CONF_TRIGGER_ID): cv.declare_id(ESPHomeOTAEndTrigger),
} }
), ),
cv.Optional(CONF_ON_ERROR): automation.validate_automation( cv.Optional(CONF_ON_ERROR): automation.validate_automation(
{ {
cv.GenerateID(CONF_TRIGGER_ID): cv.declare_id(OTAESPHomeErrorTrigger), cv.GenerateID(CONF_TRIGGER_ID): cv.declare_id(ESPHomeOTAErrorTrigger),
} }
), ),
cv.Optional(CONF_ON_PROGRESS): automation.validate_automation( cv.Optional(CONF_ON_PROGRESS): automation.validate_automation(
{ {
cv.GenerateID(CONF_TRIGGER_ID): cv.declare_id( cv.GenerateID(CONF_TRIGGER_ID): cv.declare_id(
OTAESPHomeProgressTrigger ESPHomeOTAProgressTrigger
), ),
} }
), ),
@ -130,7 +130,7 @@ async def to_code(config):
use_state_callback = False use_state_callback = False
for conf in config.get(CONF_ON_STATE_CHANGE, []): for conf in config.get(CONF_ON_STATE_CHANGE, []):
trigger = cg.new_Pvariable(conf[CONF_TRIGGER_ID], var) trigger = cg.new_Pvariable(conf[CONF_TRIGGER_ID], var)
await automation.build_automation(trigger, [(OTAESPHomeState, "state")], conf) await automation.build_automation(trigger, [(ESPHomeOTAState, "state")], conf)
use_state_callback = True use_state_callback = True
for conf in config.get(CONF_ON_BEGIN, []): for conf in config.get(CONF_ON_BEGIN, []):
trigger = cg.new_Pvariable(conf[CONF_TRIGGER_ID], var) trigger = cg.new_Pvariable(conf[CONF_TRIGGER_ID], var)

View File

@ -8,7 +8,6 @@
#include "esphome/core/automation.h" #include "esphome/core/automation.h"
namespace esphome { namespace esphome {
namespace ota_esphome {
class OTAESPHomeStateChangeTrigger : public Trigger<OTAESPHomeState> { class OTAESPHomeStateChangeTrigger : public Trigger<OTAESPHomeState> {
public: public:
@ -65,7 +64,6 @@ class OTAESPHomeErrorTrigger : public Trigger<uint8_t> {
} }
}; };
} // namespace ota_esphome
} // namespace esphome } // namespace esphome
#endif // USE_OTA_STATE_CALLBACK #endif // USE_OTA_STATE_CALLBACK

View File

@ -17,16 +17,15 @@
#include <cstdio> #include <cstdio>
namespace esphome { namespace esphome {
namespace ota_esphome {
static const char *const TAG = "esphome.ota"; static const char *const TAG = "esphome.ota";
static constexpr u_int16_t OTA_BLOCK_SIZE = 8192; static constexpr u_int16_t OTA_BLOCK_SIZE = 8192;
OTAESPHomeComponent *global_ota_component = nullptr; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables) ESPHomeOTAComponent *global_ota_component = nullptr; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
OTAESPHomeComponent::OTAESPHomeComponent() { global_ota_component = this; } ESPHomeOTAComponent::ESPHomeOTAComponent() { global_ota_component = this; }
void OTAESPHomeComponent::setup() { void ESPHomeOTAComponent::setup() {
server_ = socket::socket_ip(SOCK_STREAM, 0); server_ = socket::socket_ip(SOCK_STREAM, 0);
if (server_ == nullptr) { if (server_ == nullptr) {
ESP_LOGW(TAG, "Could not create socket"); ESP_LOGW(TAG, "Could not create socket");
@ -70,7 +69,7 @@ void OTAESPHomeComponent::setup() {
} }
} }
void OTAESPHomeComponent::dump_config() { void ESPHomeOTAComponent::dump_config() {
ESP_LOGCONFIG(TAG, "Over-The-Air updates:"); ESP_LOGCONFIG(TAG, "Over-The-Air updates:");
ESP_LOGCONFIG(TAG, " Address: %s:%u", network::get_use_address().c_str(), this->port_); ESP_LOGCONFIG(TAG, " Address: %s:%u", network::get_use_address().c_str(), this->port_);
ESP_LOGCONFIG(TAG, " OTA version: %d", USE_OTA_VERSION); ESP_LOGCONFIG(TAG, " OTA version: %d", USE_OTA_VERSION);
@ -80,13 +79,13 @@ void OTAESPHomeComponent::dump_config() {
} }
#endif #endif
if (this->has_safe_mode_ && this->safe_mode_rtc_value_ > 1 && if (this->has_safe_mode_ && this->safe_mode_rtc_value_ > 1 &&
this->safe_mode_rtc_value_ != OTAESPHomeComponent::ENTER_SAFE_MODE_MAGIC) { this->safe_mode_rtc_value_ != ESPHomeOTAComponent::ENTER_SAFE_MODE_MAGIC) {
ESP_LOGW(TAG, "Last reset occurred too quickly; safe mode will be invoked in %" PRIu32 " restarts", ESP_LOGW(TAG, "Last reset occurred too quickly; safe mode will be invoked in %" PRIu32 " restarts",
this->safe_mode_num_attempts_ - this->safe_mode_rtc_value_); this->safe_mode_num_attempts_ - this->safe_mode_rtc_value_);
} }
} }
void OTAESPHomeComponent::loop() { void ESPHomeOTAComponent::loop() {
this->handle_(); this->handle_();
if (this->has_safe_mode_ && (millis() - this->safe_mode_start_time_) > this->safe_mode_enable_time_) { if (this->has_safe_mode_ && (millis() - this->safe_mode_start_time_) > this->safe_mode_enable_time_) {
@ -99,7 +98,7 @@ void OTAESPHomeComponent::loop() {
static const uint8_t FEATURE_SUPPORTS_COMPRESSION = 0x01; static const uint8_t FEATURE_SUPPORTS_COMPRESSION = 0x01;
void OTAESPHomeComponent::handle_() { void ESPHomeOTAComponent::handle_() {
ota::OTAResponseTypes error_code = ota::OTA_RESPONSE_ERROR_UNKNOWN; ota::OTAResponseTypes error_code = ota::OTA_RESPONSE_ERROR_UNKNOWN;
bool update_started = false; bool update_started = false;
size_t total = 0; size_t total = 0;
@ -362,7 +361,7 @@ error:
#endif #endif
} }
bool OTAESPHomeComponent::readall_(uint8_t *buf, size_t len) { bool ESPHomeOTAComponent::readall_(uint8_t *buf, size_t len) {
uint32_t start = millis(); uint32_t start = millis();
uint32_t at = 0; uint32_t at = 0;
while (len - at > 0) { while (len - at > 0) {
@ -393,7 +392,7 @@ bool OTAESPHomeComponent::readall_(uint8_t *buf, size_t len) {
return true; return true;
} }
bool OTAESPHomeComponent::writeall_(const uint8_t *buf, size_t len) { bool ESPHomeOTAComponent::writeall_(const uint8_t *buf, size_t len) {
uint32_t start = millis(); uint32_t start = millis();
uint32_t at = 0; uint32_t at = 0;
while (len - at > 0) { while (len - at > 0) {
@ -421,31 +420,31 @@ bool OTAESPHomeComponent::writeall_(const uint8_t *buf, size_t len) {
return true; return true;
} }
float OTAESPHomeComponent::get_setup_priority() const { return setup_priority::AFTER_WIFI; } float ESPHomeOTAComponent::get_setup_priority() const { return setup_priority::AFTER_WIFI; }
uint16_t OTAESPHomeComponent::get_port() const { return this->port_; } uint16_t ESPHomeOTAComponent::get_port() const { return this->port_; }
void OTAESPHomeComponent::set_port(uint16_t port) { this->port_ = port; } void ESPHomeOTAComponent::set_port(uint16_t port) { this->port_ = port; }
void OTAESPHomeComponent::set_safe_mode_pending(const bool &pending) { void ESPHomeOTAComponent::set_safe_mode_pending(const bool &pending) {
if (!this->has_safe_mode_) if (!this->has_safe_mode_)
return; return;
uint32_t current_rtc = this->read_rtc_(); uint32_t current_rtc = this->read_rtc_();
if (pending && current_rtc != OTAESPHomeComponent::ENTER_SAFE_MODE_MAGIC) { if (pending && current_rtc != ESPHomeOTAComponent::ENTER_SAFE_MODE_MAGIC) {
ESP_LOGI(TAG, "Device will enter safe mode on next boot"); ESP_LOGI(TAG, "Device will enter safe mode on next boot");
this->write_rtc_(OTAESPHomeComponent::ENTER_SAFE_MODE_MAGIC); this->write_rtc_(ESPHomeOTAComponent::ENTER_SAFE_MODE_MAGIC);
} }
if (!pending && current_rtc == OTAESPHomeComponent::ENTER_SAFE_MODE_MAGIC) { if (!pending && current_rtc == ESPHomeOTAComponent::ENTER_SAFE_MODE_MAGIC) {
ESP_LOGI(TAG, "Safe mode pending has been cleared"); ESP_LOGI(TAG, "Safe mode pending has been cleared");
this->clean_rtc(); this->clean_rtc();
} }
} }
bool OTAESPHomeComponent::get_safe_mode_pending() { bool ESPHomeOTAComponent::get_safe_mode_pending() {
return this->has_safe_mode_ && this->read_rtc_() == OTAESPHomeComponent::ENTER_SAFE_MODE_MAGIC; return this->has_safe_mode_ && this->read_rtc_() == ESPHomeOTAComponent::ENTER_SAFE_MODE_MAGIC;
} }
bool OTAESPHomeComponent::should_enter_safe_mode(uint8_t num_attempts, uint32_t enable_time) { bool ESPHomeOTAComponent::should_enter_safe_mode(uint8_t num_attempts, uint32_t enable_time) {
this->has_safe_mode_ = true; this->has_safe_mode_ = true;
this->safe_mode_start_time_ = millis(); this->safe_mode_start_time_ = millis();
this->safe_mode_enable_time_ = enable_time; this->safe_mode_enable_time_ = enable_time;
@ -453,7 +452,7 @@ bool OTAESPHomeComponent::should_enter_safe_mode(uint8_t num_attempts, uint32_t
this->rtc_ = global_preferences->make_preference<uint32_t>(233825507UL, false); this->rtc_ = global_preferences->make_preference<uint32_t>(233825507UL, false);
this->safe_mode_rtc_value_ = this->read_rtc_(); this->safe_mode_rtc_value_ = this->read_rtc_();
bool is_manual_safe_mode = this->safe_mode_rtc_value_ == OTAESPHomeComponent::ENTER_SAFE_MODE_MAGIC; bool is_manual_safe_mode = this->safe_mode_rtc_value_ == ESPHomeOTAComponent::ENTER_SAFE_MODE_MAGIC;
if (is_manual_safe_mode) { if (is_manual_safe_mode) {
ESP_LOGI(TAG, "Safe mode has been entered manually"); ESP_LOGI(TAG, "Safe mode has been entered manually");
@ -487,27 +486,26 @@ bool OTAESPHomeComponent::should_enter_safe_mode(uint8_t num_attempts, uint32_t
return false; return false;
} }
} }
void OTAESPHomeComponent::write_rtc_(uint32_t val) { void ESPHomeOTAComponent::write_rtc_(uint32_t val) {
this->rtc_.save(&val); this->rtc_.save(&val);
global_preferences->sync(); global_preferences->sync();
} }
uint32_t OTAESPHomeComponent::read_rtc_() { uint32_t ESPHomeOTAComponent::read_rtc_() {
uint32_t val; uint32_t val;
if (!this->rtc_.load(&val)) if (!this->rtc_.load(&val))
return 0; return 0;
return val; return val;
} }
void OTAESPHomeComponent::clean_rtc() { this->write_rtc_(0); } void ESPHomeOTAComponent::clean_rtc() { this->write_rtc_(0); }
void OTAESPHomeComponent::on_safe_shutdown() { void ESPHomeOTAComponent::on_safe_shutdown() {
if (this->has_safe_mode_ && this->read_rtc_() != OTAESPHomeComponent::ENTER_SAFE_MODE_MAGIC) if (this->has_safe_mode_ && this->read_rtc_() != ESPHomeOTAComponent::ENTER_SAFE_MODE_MAGIC)
this->clean_rtc(); this->clean_rtc();
} }
#ifdef USE_OTA_STATE_CALLBACK #ifdef USE_OTA_STATE_CALLBACK
void OTAESPHomeComponent::add_on_state_callback(std::function<void(OTAESPHomeState, float, uint8_t)> &&callback) { void ESPHomeOTAComponent::add_on_state_callback(std::function<void(OTAESPHomeState, float, uint8_t)> &&callback) {
this->state_callback_.add(std::move(callback)); this->state_callback_.add(std::move(callback));
} }
#endif #endif
} // namespace ota_esphome
} // namespace esphome } // namespace esphome

View File

@ -7,14 +7,13 @@
#include "esphome/core/preferences.h" #include "esphome/core/preferences.h"
namespace esphome { namespace esphome {
namespace ota_esphome {
enum OTAESPHomeState { OTA_COMPLETED = 0, OTA_STARTED, OTA_IN_PROGRESS, OTA_ERROR }; enum OTAESPHomeState { OTA_COMPLETED = 0, OTA_STARTED, OTA_IN_PROGRESS, OTA_ERROR };
/// OTAESPHomeComponent provides a simple way to integrate Over-the-Air updates into your app using ArduinoOTA. /// ESPHomeOTAComponent provides a simple way to integrate Over-the-Air updates into your app using ArduinoOTA.
class ESPHomeOTAComponent : public Component { class ESPHomeOTAComponent : public Component {
public: public:
OTAESPHomeComponent(); ESPHomeOTAComponent();
#ifdef USE_OTA_PASSWORD #ifdef USE_OTA_PASSWORD
void set_auth_password(const std::string &password) { password_ = password; } void set_auth_password(const std::string &password) { password_ = password; }
#endif // USE_OTA_PASSWORD #endif // USE_OTA_PASSWORD
@ -77,7 +76,6 @@ class ESPHomeOTAComponent : public Component {
#endif #endif
}; };
extern OTAESPHomeComponent *global_ota_component; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables) extern ESPHomeOTAComponent *global_ota_component; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
} // namespace ota_esphome
} // namespace esphome } // namespace esphome

View File

@ -1,7 +1,7 @@
import esphome.codegen as cg import esphome.codegen as cg
import esphome.config_validation as cv import esphome.config_validation as cv
from esphome.components import button from esphome.components import button
from esphome.components.esphome.ota import OTAESPHomeComponent from esphome.components.esphome.ota import ESPHomeOTAComponent
from esphome.const import ( from esphome.const import (
CONF_ESPHOME, CONF_ESPHOME,
DEVICE_CLASS_RESTART, DEVICE_CLASS_RESTART,
@ -21,7 +21,7 @@ CONFIG_SCHEMA = (
entity_category=ENTITY_CATEGORY_CONFIG, entity_category=ENTITY_CATEGORY_CONFIG,
icon=ICON_RESTART_ALERT, icon=ICON_RESTART_ALERT,
) )
.extend({cv.GenerateID(CONF_ESPHOME): cv.use_id(OTAESPHomeComponent)}) .extend({cv.GenerateID(CONF_ESPHOME): cv.use_id(ESPHomeOTAComponent)})
.extend(cv.COMPONENT_SCHEMA) .extend(cv.COMPONENT_SCHEMA)
) )

View File

@ -8,7 +8,7 @@ namespace safe_mode {
static const char *const TAG = "safe_mode.button"; static const char *const TAG = "safe_mode.button";
void SafeModeButton::set_ota(ota_esphome::OTAESPHomeComponent *ota) { this->ota_ = ota; } void SafeModeButton::set_ota(esphome::ESPHomeOTAComponent *ota) { this->ota_ = ota; }
void SafeModeButton::press_action() { void SafeModeButton::press_action() {
ESP_LOGI(TAG, "Restarting device in safe mode..."); ESP_LOGI(TAG, "Restarting device in safe mode...");

View File

@ -10,10 +10,10 @@ namespace safe_mode {
class SafeModeButton : public button::Button, public Component { class SafeModeButton : public button::Button, public Component {
public: public:
void dump_config() override; void dump_config() override;
void set_ota(ota_esphome::OTAESPHomeComponent *ota); void set_ota(esphome::ESPHomeOTAComponent *ota);
protected: protected:
ota_esphome::OTAESPHomeComponent *ota_; esphome::ESPHomeOTAComponent *ota_;
void press_action() override; void press_action() override;
}; };

View File

@ -1,7 +1,7 @@
import esphome.codegen as cg import esphome.codegen as cg
import esphome.config_validation as cv import esphome.config_validation as cv
from esphome.components import switch from esphome.components import switch
from esphome.components.esphome.ota import OTAESPHomeComponent from esphome.components.esphome.ota import ESPHomeOTAComponent
from esphome.const import ( from esphome.const import (
CONF_ESPHOME, CONF_ESPHOME,
ENTITY_CATEGORY_CONFIG, ENTITY_CATEGORY_CONFIG,
@ -20,7 +20,7 @@ CONFIG_SCHEMA = (
entity_category=ENTITY_CATEGORY_CONFIG, entity_category=ENTITY_CATEGORY_CONFIG,
icon=ICON_RESTART_ALERT, icon=ICON_RESTART_ALERT,
) )
.extend({cv.GenerateID(CONF_ESPHOME): cv.use_id(OTAESPHomeComponent)}) .extend({cv.GenerateID(CONF_ESPHOME): cv.use_id(ESPHomeOTAComponent)})
.extend(cv.COMPONENT_SCHEMA) .extend(cv.COMPONENT_SCHEMA)
) )

View File

@ -8,7 +8,7 @@ namespace safe_mode {
static const char *const TAG = "safe_mode_switch"; static const char *const TAG = "safe_mode_switch";
void SafeModeSwitch::set_ota(ota_esphome::OTAESPHomeComponent *ota) { this->ota_ = ota; } void SafeModeSwitch::set_ota(esphome::ESPHomeOTAComponent *ota) { this->ota_ = ota; }
void SafeModeSwitch::write_state(bool state) { void SafeModeSwitch::write_state(bool state) {
// Acknowledge // Acknowledge

View File

@ -10,10 +10,10 @@ namespace safe_mode {
class SafeModeSwitch : public switch_::Switch, public Component { class SafeModeSwitch : public switch_::Switch, public Component {
public: public:
void dump_config() override; void dump_config() override;
void set_ota(ota_esphome::OTAESPHomeComponent *ota); void set_ota(esphome::ESPHomeOTAComponent *ota);
protected: protected:
ota_esphome::OTAESPHomeComponent *ota_; esphome::ESPHomeOTAComponent *ota_;
void write_state(bool state) override; void write_state(bool state) override;
}; };