mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2025-12-07 16:29:51 +03:00
fix #1565, use String for output a single api_data
This commit is contained in:
@@ -679,7 +679,7 @@ bool AnalogSensor::get_value_info(JsonObject output, const char * cmd, const int
|
|||||||
// if we're filtering on an attribute, go find it
|
// if we're filtering on an attribute, go find it
|
||||||
if (attribute_s) {
|
if (attribute_s) {
|
||||||
if (output.containsKey(attribute_s)) {
|
if (output.containsKey(attribute_s)) {
|
||||||
JsonVariant data = output[attribute_s];
|
String data = output[attribute_s].as<String>();
|
||||||
output.clear();
|
output.clear();
|
||||||
output["api_data"] = data;
|
output["api_data"] = data;
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -533,15 +533,8 @@ static void setup_commands(std::shared_ptr<Commands> & commands) {
|
|||||||
|
|
||||||
if (return_code == CommandRet::OK && json.size()) {
|
if (return_code == CommandRet::OK && json.size()) {
|
||||||
if (json.containsKey("api_data")) {
|
if (json.containsKey("api_data")) {
|
||||||
JsonVariant data = json["api_data"];
|
String data = json["api_data"].as<String>();
|
||||||
if (data.is<int>()) {
|
shell.println(data.c_str());
|
||||||
shell.printfln("%d", data.as<int>());
|
|
||||||
} else if (data.is<float>()) {
|
|
||||||
char s[10];
|
|
||||||
shell.println(Helpers::render_value(s, data.as<float>(), 1));
|
|
||||||
} else {
|
|
||||||
shell.println(data.as<const char *>());
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
serializeJsonPretty(doc, shell);
|
serializeJsonPretty(doc, shell);
|
||||||
|
|||||||
@@ -1529,7 +1529,7 @@ bool EMSdevice::get_value_info(JsonObject output, const char * cmd, const int8_t
|
|||||||
EMSESP::logger().debug("Attribute '%s'", attribute_s);
|
EMSESP::logger().debug("Attribute '%s'", attribute_s);
|
||||||
#endif
|
#endif
|
||||||
if (json.containsKey(attribute_s)) {
|
if (json.containsKey(attribute_s)) {
|
||||||
JsonVariant data = json[attribute_s];
|
String data = json[attribute_s].as<String>();
|
||||||
output.clear();
|
output.clear();
|
||||||
output["api_data"] = data;
|
output["api_data"] = data;
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -426,7 +426,7 @@ bool TemperatureSensor::get_value_info(JsonObject output, const char * cmd, cons
|
|||||||
// if we're filtering on an attribute, go find it
|
// if we're filtering on an attribute, go find it
|
||||||
if (attribute_s) {
|
if (attribute_s) {
|
||||||
if (output.containsKey(attribute_s)) {
|
if (output.containsKey(attribute_s)) {
|
||||||
JsonVariant data = output[attribute_s];
|
String data = output[attribute_s].as<String>();
|
||||||
output.clear();
|
output.clear();
|
||||||
output["api_data"] = data;
|
output["api_data"] = data;
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -134,8 +134,8 @@ void WebAPIService::parse(AsyncWebServerRequest * request, JsonObject input) {
|
|||||||
// if we're returning single values, just sent as plain text
|
// if we're returning single values, just sent as plain text
|
||||||
// https://github.com/emsesp/EMS-ESP32/issues/462#issuecomment-1093877210
|
// https://github.com/emsesp/EMS-ESP32/issues/462#issuecomment-1093877210
|
||||||
if (output.containsKey("api_data")) {
|
if (output.containsKey("api_data")) {
|
||||||
JsonVariant data = output["api_data"];
|
String data = output["api_data"].as<String>();
|
||||||
request->send(200, "text/plain; charset=utf-8", data.as<String>());
|
request->send(200, "text/plain; charset=utf-8", data);
|
||||||
api_count_++;
|
api_count_++;
|
||||||
delete response;
|
delete response;
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -308,7 +308,7 @@ bool WebCustomEntityService::get_value_info(JsonObject output, const char * cmd)
|
|||||||
render_value(output, entity, true);
|
render_value(output, entity, true);
|
||||||
if (attribute_s) {
|
if (attribute_s) {
|
||||||
if (output.containsKey(attribute_s)) {
|
if (output.containsKey(attribute_s)) {
|
||||||
JsonVariant data = output[attribute_s];
|
String data = output[attribute_s].as<String>();
|
||||||
output.clear();
|
output.clear();
|
||||||
output["api_data"] = data;
|
output["api_data"] = data;
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -177,7 +177,6 @@ bool WebSchedulerService::get_value_info(JsonObject output, const char * cmd) {
|
|||||||
attribute_s = breakp + 1;
|
attribute_s = breakp + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
JsonVariant data;
|
|
||||||
for (const ScheduleItem & scheduleItem : *scheduleItems) {
|
for (const ScheduleItem & scheduleItem : *scheduleItems) {
|
||||||
if (Helpers::toLower(scheduleItem.name) == Helpers::toLower(command_s)) {
|
if (Helpers::toLower(scheduleItem.name) == Helpers::toLower(command_s)) {
|
||||||
output["name"] = scheduleItem.name;
|
output["name"] = scheduleItem.name;
|
||||||
@@ -199,7 +198,7 @@ bool WebSchedulerService::get_value_info(JsonObject output, const char * cmd) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (attribute_s && output.containsKey(attribute_s)) {
|
if (attribute_s && output.containsKey(attribute_s)) {
|
||||||
data = output[attribute_s];
|
String data = output[attribute_s].as<String>();
|
||||||
output.clear();
|
output.clear();
|
||||||
output["api_data"] = data;
|
output["api_data"] = data;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user