Arduino ESP8266, API XML lesen

Hallo,

Ich möchte Daten vom meinem Solar Edge Wechselrichter über eine API abrufen. Dafür wird das Format XML verwendet.

Vom Browser bekomme ich diese Antwort:


2020-05-04 16:24:28

120879.0


97846.0


97846.0


21385.0


985.0

INVERTER

Die Adresse wäre:
https://monitoringapi.solaredge.com/%20site/1600020/overview?api_key=XXXXXXXXXXXX

Hat wer ein Sketch um diese Daten auf einen Arduino auszugeben? Ich habe viele Beispiele aus dem Netz schon ausprobiert, die alle nicht funktioniert haben.

Vielen Dank!!

Grüße Onnschi

Da wissen wir weder, was Du gemacht hast, noch was genau nicht funktioniert hat.
Wie stellst Du Dir da Hilfe vor? (außer es hat zufällig jemand genau dieses Problem gelöst)

Gruß Tommy

(deleted)

Guten Abend,

Erstmal vorweg, ich habe mich schon länger mit dem Arduino beschäftigt, habe aber in diesem Bereich wenig Kenntnissen. Deshalb wollte ich fragen, ob jemand zu meinem Problem, ein Sketch schon parat hat.

Hier ein Sketch:

#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPClient.h>
ESP8266WiFiMulti WiFiMulti;

const char* SSID = "XXXXXX";
const char* PW = "XXXXXXX";
const String url ="monitoringapi.solaredge.com/%20site/1600020/overview?api_key=xxxxxxxx";
void setup() {
   Serial.begin(115200);
   Serial.println();
   delay(500);
   WiFiMulti.addAP(SSID, PW);
}
void loop() {
   if((WiFiMulti.run() == WL_CONNECTED)) {
       HTTPClient http;
       Serial.println("[HTTP] begin...");
       http.begin(url);
       Serial.println("[HTTP] GET...");
       int httpCode = http.GET();
       if(httpCode > 0) {
           Serial.printf("[HTTP] GET... code: %d\n", httpCode);
           if(httpCode == HTTP_CODE_OK) {
               String response = http.getString();
               Serial.println(response);
           }
       } else {
           Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
       }
       http.end();
   }
   delay(999000);
}

Auch hier bekomme ich keine Antwort

Das ist nur einer von vielen die ich schon getestet habe.

Hi

Durch das schicke delay(999000); wirst Du auch ziemlich lange auf den 2.ten versuch warten können ...

MfG

https://www.mikrocontroller.net/topic/495237#new