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