NEWS
Howto: Auslesen JSON der AC ELWA2 (MyPV)
-
Hallo,
nachdem ich es mit Eurer Unterstützung hinbekommen habe die Daten meiner AC ELWA2 auszulesen, möchte ich hier eine entsprechende Anleitung schreiben, damit auch andere von diesen Erkenntnissen profitieren können.
Ausgangssituation:
Ich habe eine AC ELWA2 von MyPV, um mit überschüssigem Strom das Brauchwasser zu erwärmen. (AC ELWA2)
Die AC ELWA2 hängt per LAN-Kabel im Netz.
Als Control IP ist die IP-Adresse des Wechselrichters (LAN-Anschluss des SH10RT) eingetragen. Der Wechselrichter gibt entsprechende Steuersignale an die AC ELWA2.D.h. morgens wird zuerst der Speicher aufgeladen und wenn der Speicher voll ist wird das Wasser aufgeheizt. Erst dann wird überschüssiger Strom eingespeist. Das funktioniert alles bestens. Ein Lob an meinen Solateur!
Die AC ELWA2 hat eine eigene Web-Oberfläche (MyPV-Cloud). Dort sind folgende Angaben zu sehen / abzulesen:
Diese Infos (insbesondere die am Tag für das Erwärmen des Wassers eingesetzte Energie) würde ich gerne auslesen, um sie in eine zentrale Datenauswertung einfließen zu lassen.
Das Auslesen der AC ELWA2 per Modbus geht leider nicht, weil der Modbus-Anschluss (keine Ahnung wie das richtig heißt) durch die Kommunikation mit dem Wechselrichter belegt ist. Deshalb lese ich das JSON aus, das über <IP-Adresse der AC ELWA2>/data.jsn von der AC ELWA2 bereitgestellt wird.
Hierfür verwende ich ein Blockly-Script, welches zwischen Sonnenaufgang und Sonnenuntergang alle 5 Sekunden das JSON ausliest und die gewünschten Werte in entsprechende Datenpunkte schreibt. Von dort lasse ich die Werte per Influx-Adapter in eine InfluxDB schreiben (Schreibintervall 60 Sekunden).
Noch zu erwähnen:
Die Energie (kWh) ist nicht im JSON enthalten, daher errechne ich diese selbst (5 Sekunden-Ableseintervall).
Damit man im ioBroker sehen kann von wann die angezeigten Werte sind, lasse ich noch das Datum und die Uhrzeit mit auslesen.
Um den Tageswert der aufgewendeten Energie in kWh zu bekommen, müssen dann alle Werte des Attributes power_solar_energie aufaddiert werden (cumulative_sum() Funktion bei InfluxQL).Falls ich noch etwas wichtiges vergessen haben sollte bitte melden.
Ich hoffe das hilft dem ein oder anderen;-)
Gruß Hartmut
-
@hru sagte: Modbus-Anschluss (keine Ahnung wie das richtig heißt) durch die Kommunikation mit dem Wechselrichter belegt ist.
Es handelt sich um einen Bus - wie der Name schon sagt. Es können also mehrere Busteilnehmer angeschlossen werden.
@hru sagte in Howto: Auslesen JSON der AC ELWA2 (MyPV):
müssen dann alle Werte des Attributes power_solar_energie aufaddiert werden (cumulative_sum() Funktion bei InfluxQL).
Weshalb nicht schon im Skript?
-
Bei mir funktioniert die Kommunikation über Modbus TCP.
Mein Heizstab kommuniziert zwar mit dem SMA Home Manager, aber das sollte eigentlich keinen Unterschied machen.
-
@paul53 said in Howto: Auslesen JSON der AC ELWA2 (MyPV):
@hru sagte in Howto: Auslesen JSON der AC ELWA2 (MyPV):
müssen dann alle Werte des Attributes power_solar_energie aufaddiert werden (cumulative_sum() Funktion bei InfluxQL).
Weshalb nicht schon im Skript?
Hallo Paul,
kannst Du mir bitte etwas detaillierter erklären, wie Du das meinst?
Bei einem Auslesevorgang habe ich ja nur die aktuelle Leistung (in Watt).
Auf diese wende ich die Zeit von 5 Sekunden an (mein Ausleseintervall) und errechne damit die Energie (in kWh) für dieses 5-Sekunden-Intervall.
Um direkt beim Auslesen des JSON die errechnete Energie (in kWh) mit der Energie vom vorherigen Auslesevorgang aufaddieren zu können, benötige ich ja diesen Wert vom vorherigen Auslesevorgang. Diesen Wert habe ich aber nicht.
Oder gibt es bei FluxQL sowas wie += wo ich Bezug auf einen Wert eines Attributes vom vorherigen Zeitstempel nehmen kann?Danke und Gruß
Hartmut
-
@banjo89 said in Howto: Auslesen JSON der AC ELWA2 (MyPV):
Bei mir funktioniert die Kommunikation über Modbus TCP.
Mein Heizstab kommuniziert zwar mit dem SMA Home Manager, aber das sollte eigentlich keinen Unterschied machen.
Hallo,
danke für die Info.
Theoretisch sollte (wie Paul geschrieben hat) der Modbus ja in der Lage sein, mit mehreren Teilnehmern zu kommunizieren. Was bei Dir bzw. dem SMA Home Manager auch zu funktionieren scheint.
Ggfs. verhält sich der SH10RT hier nicht regelkonform indem er "die Leitung" zur AC ELWA2 ständig belegt und nicht wieder freigibt?
Ähnliches soll es bei anderen Geräten/Softwarelösungen auch geben.
Auf jeden Fall habe ich keine Modbus-Verbindung zur AC ELWA2 hinbekommen (und wollte auch an der bestehenden Verbindung zum SH10RT nicht rumschrauben).
Der Support von My-PV hat mir auch empfohlen das JSON auszuwerten.
Das habe ich mit der Hilfe vieler Unterstützer hier im Forum ja jetzt auch hinbekommen;-)
Gruß Hartmut
-
@hru sagte: Auf diese wende ich die Zeit von 5 Sekunden an (mein Ausleseintervall) und errechne damit die Energie (in kWh) für dieses 5-Sekunden-Intervall.
Man kann auch einen kumulativen Zählwert bilden. Prinzip:
-
@paul53
Hallo Paul,danke für den Tipp.
D.h. ich frage vor einem neuen Auslesevorgang den aktuellen Wert des Datenpunktes ab und kann dann den neuen Wert dazu addieren, prima.
Hast Du noch einen Tipp, woran ich erkenne kann, wenn es sich um den ersten Auslesevorgang eines Tages handelt?
(Ich möchte ja Tages-Summen bilden)
Muss ich dazu den alten und den neuen Wert des Datums vergleichen?
Oder gibt es eine andere Möglichkeit?
Danke und Gruß
Hartmut -
Hallo,
ich habe die Logik dank des Tipps von Paul noch etwas verändert.
Ich bilde den aufsummierte Tages-Energiewert (kWh) jetzt direkt beim Auslesen des JSON.Hier das neue Blockly-Script:
Und hier die neue Definition der Datenpunkte:
Gruß Hartmut
-
Hallo,
ich habe doch noch eine Frage zum Blockly-Script:
Werden die Befehle, die vor dem Schedule-Element (Zeitplan / CRON Regel) stehen nur einmal bei Aktivierung des Scriptes ausgeführt? Oder jedesmal wenn das Script ausgeführt wird?Danke und Gruß
Hartmut
-
@hru sagte in Howto: Auslesen JSON der AC ELWA2 (MyPV):
Werden die Befehle, die vor dem Schedule-Element (Zeitplan / CRON Regel) stehen nur einmal bei Aktivierung des Scriptes ausgeführt?
ja
-
@homoran said in Howto: Auslesen JSON der AC ELWA2 (MyPV):
@hru sagte in Howto: Auslesen JSON der AC ELWA2 (MyPV):
Werden die Befehle, die vor dem Schedule-Element (Zeitplan / CRON Regel) stehen nur einmal bei Aktivierung des Scriptes ausgeführt?
ja
Danke für die Antwort.
Jetzt verstehe ich warum die Addition nicht funktioniert hat;-)
(weil ich jedesmal ressettet habe;-()
Ich habe jetzt in der "neuer Tag"-Logik noch das Setzen des Vergleichsdatums aufgenommen.
Jetzt passt es hoffentlich:
Gruß Hartmut