Forum: Haus & Smart Home API SolarEdge Warmwasser Controller "nachruesten"


von Andi M. (andi6510) Benutzerseite


Lesenswert?

Hallo Leute,

Ich haenge gerade an einem vermeintlich simplen Problem fest und das 
weitet sich irgendwie immer weiter aus. Daher moechte ich das hier zur 
Diskussion stellen, evtl hat ja jemand eine zuendende Idee, die mir die 
Angelegenheit vereinfachen koennte.

Ausgangslage:
Ich habe hier eine Photovoltaikanlage basierend auf einem SolarEdge 
Wechselrichter. Dazu gesellt sich ein SolarEdge Warmwasser Controller, 
der einen Teil der Ueberschussproduktion fuer die Erwaermung meines 
Warmwassers nutzt. Im Prinzip stellt das Ding die Leistung einer 
Elektroheizung im Wassertank ein und liest einen Temperatursensor 
(ebenfalls im Wassertank) aus, ohne diesen Messwert aber zur Regelung zu 
verwenden. Die Temperatur des Tanks wird stattdessen durch einen 
mechanischen Regler direkt am Tank festgelegt. Der schaltet einfach an 
und aus. Der Controller kommuniziert mit dem Wechselrichter per ZigBee. 
So weit so simpel.

Die aktuelle Temperatur und die aktuelle Leistung der Heizung kann man 
in der SolarEdge monitoring cloud abfragen. D.h. irgendwie gelangen die 
Messwerte auch dort hin.

Die Aufgabe:
Ich moechte (in einem ersten Schritt) die aktuelle Leistung der Heizung 
und die aktuelle Temperatur im Tank mit einer eigenen Software visuell 
darstellen. Spaeter sollen dann je nach Tanktemperatur unterschiedliche 
Eigenverbrauchsoptimierungen stattfinden.

Das Problem:
Leider musste ich feststellen, dass sowohl die SolarEdge monitoring API 
als auch die ModbusTCP Schnittstelle des Wechselrichter die benoetigten 
Informationen (Leistung und Temperatur) nicht zur Verfuegung stellt. 
Eine Anfrage bei SolarEdge bestaetigte dies und es wurde mir versichert, 
dass auch sonst keinerlei Schnittstelle zur Verfuegung steht, um diese 
Daten auszulesen. Na prima dachte ich mir und suchte nach weiteren 
Loesungsmoeglichkeiten.

Dies kam bis jetzt dabei heraus:

1. Idee: Monitoring Webseite bei SolarEdge automatisiert abgrasen und 
dort die Werte auslesen. Problem: Die Seite hat so ein google Captcha, 
dass beim Login die Roboter aussperrt. Voll fies so was! Die armen 
Roboter!

2. Idee: Die ZigBee Schnittstelle belauschen. Zigbee gilt ja als nicht 
besonders sicher, und da waere sicherlich nach einigem an 
Forschungsarbeit was zu machen. Nachteil: Ich habe keine Ahnung von 
ZigBee und scheue die Forschungsarbeit die das mit sich bringen wuerde. 
Zumal der Erfolg nicht sicher ist.

3. Idee: Statt dem ZigBee auf der Luftschnittstelle zu Leibe zu ruecken, 
koennte man ja auch die ZigBee Module, die im Controller, respektive 
Wechselrichter verbaut sind an ihrer evtl vorhandenen seriellen 
Schnittstelle, anzapfen. Mit etwas Glueck kommt man da leichter an die 
Daten dran, weil man nicht erst die Verschluesselung brechen muss. Aber 
auch hier gibts viele wenns und abers. Grantieverlust beispielsweise. 
Ausgang also ebenfalls unbekannt.

4. Idee: ein ESP8266 Board mit 1-Wire Temperaturfuehler und irgendwie 
gestalteter Leistungsmessung ausstatten und neben dem Tank platzieren. 
Das Board kann dann die Messwerte nochmal neu aufnehmen und bereit 
stellen. Leistungsmessung kann per Messumformer (Stromzange) mit dem 
AD-Wandler des ESP gemacht werden. Die Spannung muss ich bei dieser rein 
ohmschen Last ja wohl nicht unbedingt(?) mit aufnehmen. Mir ist auch 
nicht bekannt, wie der Controller die Leistung einstellt. Ich vermute 
mal Pulspaketsteuerung. Phasenanschnittsteuerung ist bei diesen 
Leistungen (3,6kW) eher nicht zu vermuten. Wenn ich jedenfalls mit dem 
ESP 100 Messungen pro 50Hz Periode (also mit 5000Hz Samplerate) mache, 
dann sollte das genug fuer eine halbwegs genaue Bestimmung der aktuellen 
Leistung ausreichend sein.

Bei Idee Nr 4 bin ich gerade gedanklich haengen geblieben. Aber evtl bin 
ich ja auch betriebsblind und es gibt noch eine andere deutlich 
einfacherere Loesung.

Was meint ihr? Welchen Weg wuerdet ihr einschlagen??? Verrenne ich mich 
da, oder bin ich mit Idee 4 auf dem einzig richtigen Pfad?

Andi

von 100Ω W. (tr0ll) Benutzerseite


Lesenswert?

Vermutlich auch Weg 4.

von Christian W. (orikson)


Lesenswert?

Ich hatte letztens auch das "Glück" mich etwas mit der SolarEdge-API 
ärgern zu dürfen, allerdings in Kombination mit Home Assistant. Dafür 
gibt es eine Integration der SolarEdge API. Einfach mal danach googlen 
bzw. hier reingucken: 
https://www.home-assistant.io/integrations/solaredge/

Das Problem: Manche (neueren) SolarEdge Wechselrichter hatten bis zu 
einer bestimmten Firmware-Version die Möglichkeit direkt im lokalen 
Netzwerk ausgelesen zu werden, so oft man will. Dazu einfach deren IP im 
Browser eingeben und man ist direkt auf einer API-Webseite des 
Wechselrichters gelandet. Warum auch immer wurde das aber bei neueren 
Firmware-Versionen entfernt und man wird nun gezwungen die 
Monitoring-Daten aus dem SolarEdge Portal übers Internet zu ziehen. Das 
kann man aber nur 300 mal pro Tag machen, die Daten sind also 
dementsprechend alt.

Daher ist vmtl deine Lösung mit einem ESP die einfachste Variante. 
Alternativ könntest du das auch über einen Home Assistant Server machen, 
aber das ist schon fast etwas überdimensioniert, wenn du sonst keine 
Sensorwerte aufnimmst und auswertest

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.