1
0
mirror of https://github.com/esphome/esphome.git synced 2025-10-31 15:12:06 +00:00
This commit is contained in:
J. Nick Koston
2025-10-30 13:01:32 -05:00
parent a02b90129d
commit 58a517afa6
2 changed files with 5 additions and 7 deletions

View File

@@ -877,7 +877,8 @@ uint16_t APIConnection::try_send_select_state(EntityBase *entity, APIConnection
bool is_single) {
auto *select = static_cast<select::Select *>(entity);
SelectStateResponse resp;
resp.set_state(StringRef(select->current_option()));
const char *state = select->has_state() ? select->current_option() : "";
resp.set_state(StringRef(state));
resp.missing_state = !select->has_state();
return fill_and_encode_entity_state(select, resp, SelectStateResponse::MESSAGE_TYPE, conn, remaining_size, is_single);
}

View File

@@ -1185,8 +1185,7 @@ void WebServer::handle_select_request(AsyncWebServerRequest *request, const UrlM
if (request->method() == HTTP_GET && match.method_empty()) {
auto detail = get_request_detail(request);
const char *value = obj->has_state() ? obj->current_option() : "";
std::string data = this->select_json(obj, value, detail);
std::string data = this->select_json(obj, obj->has_state() ? obj->current_option() : "", detail);
request->send(200, "application/json", data.c_str());
return;
}
@@ -1207,13 +1206,11 @@ void WebServer::handle_select_request(AsyncWebServerRequest *request, const UrlM
}
std::string WebServer::select_state_json_generator(WebServer *web_server, void *source) {
auto *obj = (select::Select *) (source);
const char *value = obj->has_state() ? obj->current_option() : "";
return web_server->select_json(obj, value, DETAIL_STATE);
return web_server->select_json(obj, obj->has_state() ? obj->current_option() : "", DETAIL_STATE);
}
std::string WebServer::select_all_json_generator(WebServer *web_server, void *source) {
auto *obj = (select::Select *) (source);
const char *value = obj->has_state() ? obj->current_option() : "";
return web_server->select_json(obj, value, DETAIL_ALL);
return web_server->select_json(obj, obj->has_state() ? obj->current_option() : "", DETAIL_ALL);
}
std::string WebServer::select_json(select::Select *obj, const char *value, JsonDetail start_config) {
json::JsonBuilder builder;