diff --git a/esphome/components/api/__init__.py b/esphome/components/api/__init__.py index 0a309aac7d..88618acef4 100644 --- a/esphome/components/api/__init__.py +++ b/esphome/components/api/__init__.py @@ -435,7 +435,7 @@ async def to_code(config: ConfigType) -> None: cg.add_define("USE_API_CLIENT_CONNECTED_TRIGGER") await automation.build_automation( var.get_client_connected_trigger(), - [(cg.StringRef, "client_info"), (cg.StringRef, "client_address")], + [(cg.std_string, "client_info"), (cg.std_string, "client_address")], config[CONF_ON_CLIENT_CONNECTED], ) @@ -443,7 +443,7 @@ async def to_code(config: ConfigType) -> None: cg.add_define("USE_API_CLIENT_DISCONNECTED_TRIGGER") await automation.build_automation( var.get_client_disconnected_trigger(), - [(cg.StringRef, "client_info"), (cg.StringRef, "client_address")], + [(cg.std_string, "client_info"), (cg.std_string, "client_address")], config[CONF_ON_CLIENT_DISCONNECTED], ) diff --git a/esphome/components/api/api_connection.cpp b/esphome/components/api/api_connection.cpp index c8762824fe..239c735354 100644 --- a/esphome/components/api/api_connection.cpp +++ b/esphome/components/api/api_connection.cpp @@ -1508,7 +1508,8 @@ void APIConnection::complete_authentication_() { #ifdef USE_API_CLIENT_CONNECTED_TRIGGER char peername_buf[socket::PEERNAME_MAX_LEN]; this->helper_->getpeername_to(peername_buf); - this->parent_->get_client_connected_trigger()->trigger(this->helper_->get_client_name(), StringRef(peername_buf)); + this->parent_->get_client_connected_trigger()->trigger(std::string(this->helper_->get_client_name()), + std::string(peername_buf)); #endif #ifdef USE_HOMEASSISTANT_TIME if (homeassistant::global_homeassistant_time != nullptr) { diff --git a/esphome/components/api/api_server.cpp b/esphome/components/api/api_server.cpp index 6f4e3c17c6..8ab07e3534 100644 --- a/esphome/components/api/api_server.cpp +++ b/esphome/components/api/api_server.cpp @@ -189,7 +189,7 @@ void APIServer::loop() { #ifdef USE_API_CLIENT_DISCONNECTED_TRIGGER char peername_buf[socket::PEERNAME_MAX_LEN]; client->get_peername_to(peername_buf); - this->client_disconnected_trigger_->trigger(client->get_name(), StringRef(peername_buf)); + this->client_disconnected_trigger_->trigger(std::string(client->get_name()), std::string(peername_buf)); #endif #ifdef USE_API_USER_DEFINED_ACTION_RESPONSES this->unregister_active_action_calls_for_connection(client.get()); diff --git a/esphome/components/api/api_server.h b/esphome/components/api/api_server.h index f6ca869a0f..bf08208517 100644 --- a/esphome/components/api/api_server.h +++ b/esphome/components/api/api_server.h @@ -222,10 +222,12 @@ class APIServer : public Component, #endif #ifdef USE_API_CLIENT_CONNECTED_TRIGGER - Trigger *get_client_connected_trigger() const { return this->client_connected_trigger_; } + Trigger *get_client_connected_trigger() const { return this->client_connected_trigger_; } #endif #ifdef USE_API_CLIENT_DISCONNECTED_TRIGGER - Trigger *get_client_disconnected_trigger() const { return this->client_disconnected_trigger_; } + Trigger *get_client_disconnected_trigger() const { + return this->client_disconnected_trigger_; + } #endif protected: @@ -243,10 +245,10 @@ class APIServer : public Component, // Pointers and pointer-like types first (4 bytes each) std::unique_ptr socket_ = nullptr; #ifdef USE_API_CLIENT_CONNECTED_TRIGGER - Trigger *client_connected_trigger_ = new Trigger(); + Trigger *client_connected_trigger_ = new Trigger(); #endif #ifdef USE_API_CLIENT_DISCONNECTED_TRIGGER - Trigger *client_disconnected_trigger_ = new Trigger(); + Trigger *client_disconnected_trigger_ = new Trigger(); #endif // 4-byte aligned types