Very Short: Seitenquelltext mit ESP8266 parsen

Ich habe nur einen ESP32, daher könnte es kleine Abweichungen geben.

Meine Aktivitäten beziehen sich auf die Seiten von Fips, beispielsweise auf Esp8266 Html Form als Arduino Tab. Eventuell hilfreich meine Anleitung: Einführung zu fipsok.de.

In setup etabliere ich ein Ereignis, das sich bei mir auf "licht.html", bei Dir wohl auf " /status/meters". Das Parsen erfolgt über die Argumente:

  server.on("/licht.html", []() {
    anzeigeOLED(String("uri " + server.uri()).c_str());
    anzeigeOLED(String("args " + String(server.args())).c_str());
    
      for (uint8_t i = 0; i < server.args(); i++) {
      anzeigeOLED(String(server.argName(i) + ": " + server.arg(i)).c_str());
      }
   }

Meine HTML-Datei überträgt 23 Argumente, hier die OLED-Anzeige auf den Anfang gekürzt:

grafik

In einer Funktion hole ich mir die Werte in Variablen FA_*:

void arg_Farbe() {
  if (server.hasArg("FA_Farbe")) {
    FA_Farbe = server.arg("FA_Farbe").toInt();
    anzeigeOLED(String("Wert_Farbe: " + String(FA_Farbe)).c_str());
  }
  if (server.hasArg("FA_Saettigung")) {
    FA_Saettigung = server.arg("FA_Saettigung").toInt();
    anzeigeOLED(String("Wert_Saettigung: " + String(FA_Saettigung)).c_str());
  }
  if (server.hasArg("FA_Helligkeit")) {
    FA_Helligkeit = server.arg("FA_Helligkeit").toInt();
    anzeigeOLED(String("Wert_Helligkeit: " + String(FA_Helligkeit)).c_str());
  }
}

Das sind dann die Zahlenwerte:

grafik

Hier kann man den Aufbau der JSON-Daten erkennen, die meine HTML-Datei schickt:

String json_Farbe() {
  return (String) +
         "\"FA_Farbe\":\"" + FA_Farbe + "\","
         "\"FA_Saettigung\":\"" + FA_Saettigung + "\","
         "\"FA_Helligkeit\":\"" + FA_Helligkeit + "\""
         ;
}

Der Esp8266 Http Client als Arduino Tab zeigt Dir, wie man eine URL abfragt. Das ist beim ESP8266 etwas anders als beim ESP32, daher passen da meine Beispiele nicht.

Viel Erfolg!