Nachdem wir in letzter Zeit Probleme mit dem ioBroker SolarEdge-Adapter hatten, weil die Werte nicht mehr aktualisiert wurden, haben wir uns mit der SolarEdge API beschäftigt.

Beim Einsatz von SolarEdge-Gleichrichter wqird die Performance der PV-Anlage über die Monitoring-Oberfläche bei SolarEdge bereitgestellt. Wie hier berichtet, können wir über eine API und einen API-Key auf die Daten per Schnittstelle zugreifen. Die Schnittstellenbeschreibung ist hier abgelegt. Nachdem die Schnittstelle maximal 300x pro Tag angesprochen werden kann, bietet sich die Schnittstelle nicht für ein near-realtime-Monitoring der aktuellen Leistung der Anlage an. Wir möchten also lediglich die produzierte Gesamtleistung insgesamt und die Leistung des aktuellen Tages abrufen (und auch die aktuelle IST-Leistung, aber nur zur Information).

SolarEdge Monitoring Plattform

SolarEdge Monitoring Plattform

In der Doku werden wir schnell fündig, dass die relevanten Daten recht schlank im Bereich overview abgerufen werden können.

SolarEdge API Dokumentation overview-Routine

SolarEdge API Dokumentation overview-Routine

Der Request ist wie folgt aufgebaut und benötigt die individuelle SiteID und den API-Key, der wie hier beschrieben generiert werden kann.

https://monitoringapi.solaredge.com/site/{siteId}/overview.json?api_key={API-Key}

Sind SiteId und Key korrekt, sieht das Ergebnis z.B. wie folgt aus:

SolarEdge API overview json result

SolarEdge API overview json result

In der URL lässt sich konfigurieren, ob das Ergebnis als XML oder als JSON geliefert wird, wird „.json“ entfernt liefert der Request ein XML-Ergebnis. Wir bleiben bei JSON, um die Verarbeitung des Ergebnisses in Blockly einfach zu gestalten.

Mit der richtigen URL, die wir über ein Blockly-Script regelmäßig requesten und die Daten abrufen, ist die Vorbereitung bereits abgeschlossen. Das Blockly-Script arbeitet nach folgender Logik

  • Über einen Trigger tagsüber, also bei Sonnenschein, die URL im Intervall von 15min requesten
  • Das Request-Ergebnis in ein ioBroker-Objekt konvertieren
  • Über die Knoten-Struktur die einzelnen Werte in die Datenpunkte schreiben
Blockly Script SolarEdge API

Blockly Script SolarEdge API