DOCH!
#include <ArduinoJson.h>
StaticJsonBuffer<2000> jsonBuffer;
char json[] = "{\"wifi_sta\":{\"connected\":true,\"ssid\":\"Horst 2,4\",\"ip\":\"192.168.2.115\",\"rssi\":-47},\"cloud\":{\"enabled\":true,\"connected\":true},\"mqtt\":{\"connected\":false},\"time\":\"10:29\",\"unixtime\":1636190951,\"serial\":397,\"has_update\":false,\"mac\":\"E8DB84D28E5B\",\"cfg_changed_cnt\":0,\"actions_stats\":{\"skipped\":0},\"relays\":[{\"ison\":true,\"has_timer\":false,\"timer_started\":0,\"timer_duration\":0,\"timer_remaining\":0,\"overpower\":false,\"source\":\"input\"}],\"meters\":[{\"power\":207.52,\"overpower\":0.00,\"is_valid\":true,\"timestamp\":1636194551,\"counters\":[202.166, 194.122, 184.188],\"total\":21996}],\"inputs\":[{\"input\":0,\"event\":\"\",\"event_cnt\":0}],\"temperature\":31.32,\"overtemperature\":false,\"tmp\":{\"tC\":31.32,\"tF\":88.38, \"is_valid\":true},\"temperature_status\":\"Normal\",\"ext_sensors\":{},\"ext_temperature\":{},\"ext_humidity\":{},\"update\":{\"status\":\"idle\",\"has_update\":false,\"new_version\":\"20210909-145919/v1.11.4-DNSfix-ge6b2f6d\",\"old_version\":\"20210909-145919/v1.11.4-DNSfix-ge6b2f6d\"},\"ram_total\":50464,\"ram_free\":37612,\"fs_size\":233681,\"fs_free\":149345,\"uptime\":10004}}";
void setup()
{
Serial.begin(115200);
Serial.println(F("Start..."));
JsonObject &root = jsonBuffer.parseObject(json);
if (!root.success())
{
Serial.println(F("parseObject() failed"));
}
float power = root["meters"][0]["power"];
Serial.println(power);
}
void loop() {}
Du musst verstehen, wie es geht!
Das Ergebnis:
17:50:14.225 -> Start...
17:50:14.225 -> 207.52