Datenlogger für RCT

  • Bei meinen Eltern ist gerade eine RCT-Anlage in Betrieb gegangen, installiert vom örtlichen Elektriker.

    Es scheint mir, als ob das interne Logging nur sehr geizig Daten rausrückt. Diagramme mit Tagesverläufen etc. gibt es gar nicht.

    Spricht irgendeiner der OpenSource-Logger (z.B. solaranzeige) mit RCT-Wechselrichtern?

  • Die App zeigt Histogramme an (oben History und dann der Diagram-Button, per Doppel-tap kann man die Kurven auswählen), und kann das ganze auch als CSV ausgeben (3-Punkte-Button oben rechts, dann erst Select Data und anschließend Export Log Data). Für OpenWB, ioBroker und IP Symcon gibts zudem fertige Integrationen, und ein Solar-Log kann auch Werte aus dem WR anzeigen (aber nur via RS485) und mit anderen Verbrauchen gegenrechnen bzw. andere Verbraucher steuern, ist aber nicht Open Source.


    Generell muss man zum Netzwerkzugriff folgendes wissen (ich erwähne das oft, aber es steht nicht im Handbuch, ist nicht offensichtlich und kann weitreichende Konsequenzen haben):


    • Der Wechselrichter kennt keine Benutzerzugangsbeschränkung oder Verschlüsselung; jeder der ihn übers Netzwerk erreicht hat prinzipiell die volle Kontrolle. Das "Passwort" in der App ist nur dazu da, um Funktionen innerhalb der App zu steuern und wird nicht an den Wechselrichter weitergereicht.
    • Die App kennt mindestens 3 Berechtigungsstufen:
      • Anonymer Zugriff ohne Passwort
      • Das Passwort dass im Handbuch steht und dass für den Installateur gedacht ist und mit dem dieser die Einrichtung vornimmt.
      • Das Passwort ******** (8 Sternchen, kein Scherz), dass den eigentlichen Endkundenzugriff ("Customer") freischaltet der keine Änderungen vornehmen kann (Nochmal: Das betrifft nur die App!). Diesen Zugriff verwende ich fast immer, denn hiermit kann man keinen Schaden anrichten wenn man versehentlich beim rumtippen in der App Werte ändert ohne es zu wollen und logge mich nur als Installateur ein wenn wenn ich etwas einstellen will und dannach wieder aus.
    • Der WLAN-AP des Wechselrichters bridged ein verbundenes Mobiltelefon/Gerät übers Netzwerkkabel ins Internet wenn es angeschlossen ist, also nicht wundern falls es Zugriffe vom Wechselrichter auf Google Play gibt, das ist nur das verbundene Handy. Der AP kann im Netzwerk-Menü der App deaktiviert werden. Der Wechselrichter braucht keinen Internetzugang, ausser er wird wegen Problemen durch einen Techniker an den Server des Herstellers angeschlossen um ihn aus der Ferne auszulesen oder zu Steuern. Siehe aber auch hier: RCT Power: Probleme (Kommentar #10)


    Ansonsten gibts für Python das Projekt rctclient basierend auf der OpenWB-Integration. Disclaimer: Ich bin der Maintainer.


    Dabei ist auch ein Script um die Histogramme in eine Influx zu pumpen (tools-Verzeichnis). Das Projekt sollte alles enthalten was man zum Selberbasteln braucht und die Doku enthällt auch die IDs zum abfragen und ein paar Hinweise auf das Verhalten vom WR. Ich arbeite zwar auch an einem eigenständigen Datenlogger, aber der ist noch nicht fertig, der Anreiz ist sehr niedrig seit ich das "histogram2influxdb.py" einfach jede Nacht im Cronjob laufen lasse und mir die Sachen in Grafana-Dashboards anzeigen lassen kann.

  • Hallo sval, hallo LumpiStefan,


    vielen Dank für die Tipps, ich denke, damit bin ich erstmal auf zwei mögliche Pfade gesetzt.

    sval, die iOS-App zeigt mir gar nicht die Auswahloption, zu den "History" Daten zu kommen. Alles was ich sehen kann, sind die "Online", "Network" und "Autarky" Tabs. Unter "Network" werde ich auch nicht nach Logindaten gefragt. Ich denke mal, die iOS-App ist noch nicht ganz fertig.

    Über Webbrowser bekomme ich eine Eingabemaske, aber komme auch mit dem Passwort aus dem Handbuch nicht rein.

    Ich denke mal, ich muss mir mal etwas Zeit nehmen, um mit rctclient+Influx+Grafana was zu bauen.


    Schönen Restsonntag noch!

  • Achso, ich habe hier nur Android. Nach dem was ich in Screenshots und im Dokument "TD10_Kurzbeschreibung RCT Power App für IoS V2.0" von RCT (keine Ahnung wie aktuell das ist) finde kann die iOS-App wohl auch keine Einstellungen anzeigen, setzen, oder sonst irgendwas sinnvolles ausser die Übersicht malen. Die Android-App hat das History-Display, siehe Screenshots im Play-Store und viele Einstellungsmenüs (wobei man nix an den Einstellungen drehen sollte wenn man nicht weiß was man tut). Scroll mal in der Screenshot-Gallerie nach rechts, da finden sich Beispiele für: History, Event-Log (Fehlermeldungen, Log der Parameter-Änderungen) und ein kleiner Screenshot der ein minimales Subset der Einstellmöglichkeiten zeigt.


    Die Webseite die der WR anbietet ist wie gesagt nur für Techniker.


    "histogram2influxdb.py" liesst nur die feingrannularsten Werte aus, also keine Monats- oder Jahres-Übersichten, denn die kann man sich selber aus den Daten errechnen. Prinzipiell kann man das Tool recht einfach umschreiben, damit es eine CSV-Datei generiert die man dann in einer Tabellenkalkulation einlesen kann. Wenn Bedarf an sowas besteht: Einfach melden oder als Fingerübung selber probieren :)


    Wenn du selber einzelne Werte haben möchtest, zum Beispiel um Momentanwerte anzuzeigen, dann musst du rausfinden wie die Werte heißen die dich interessieren, beispielsweise dass der Batterieladezustand battery.soc mit der ID 0x959930BF heißt. Die "Registry" in der Doku vom rctclient listet alle bekannten Infos die man abfragen kann auf. Ich empfehle, die Android-App zu verwenden um weitere Parameter zu finden die dich interessieren (zum Beispiel in einem Emulator), denn nicht jeder Wert macht Sinn ausgelesen zu werden.


    Hinweis: Das CLI vom rctclient kann mit den History-Werten und Log-Tabelle nicht umgehen, da diese nicht mit einem "Lese"-Befehl sondern einem "Schreib"-Befehl ausgelesen werden. Wie diese Tabellen funktionieren steht in der Doku im "Protocol"-Bereich beschrieben.


    Noch ein Hinweis: Der Wechselrichter kommt durcheinander wenn mehrere "Clients" gleichzeitig drauf zugreifen. Wenn also eine App offen ist, kanns sein dass Abfragen vom rctclient kaputt gehen und umgekehrt. Ich lese die Histogramme immer nachts um 4 aus, da sind alle am Schlafen ;)

  • Wozu prokrastinieren alles führt… Ich hab jetzt histogram2influx.py in zwei Tools zerlegt:


    1. histogram2csv.py legt die Histogramme als CSV-Datei ab, die man dann einfach weiterverarbeiten kann.
    2. csv2influxdb.py liesst das CSV ein und pumpt es in die InfluxDB.

    So kann man die Daten viel einfacher weiterverarbeiten, ohne dass man sie erst wieder aus der InfluxDB rauspopeln muss.

    Im Grafana sieht das beispielhaft übrigends so aus:

  • sval, ich finde das super was Du da alles baust und habe auch Deine Protokollbeschreibung auf github mal quergelesen, finde aber gerade nicht die Zeit, mir das selber zusammenzustricken. Im Forum von solaranzeige habe ich mal einen Thread aufgemacht, falls es da eingebaut wird, wäre eine Lösung für alle "doofen" da.


    LumpiStefan Bei den Solarlogs verstehe ich gerade nicht so ganz was ich genau brauche. Reicht der Solarlog 50 für 120€? Redet der über Netzwerk mit dem RCT oder muss der an den Modbus? Brauch ich dafür Zusatzhardware (außer Stromversorgung...) und was kann ein Base 15 für das dreifache mehr?

    Dann kann ich die Daten NUR über das Enerest-Portal ansehen, nicht lokal. Korrekt?

  • Falls du ein Linux-Gerät hast kann ich mal eine kurze Anleitung basteln wie man die Komponenten grob zusammenklebt bis man "bunte Bildchen"™ in Grafana hat. Prinzipiell reicht ein Raspi, aber die SD-Karte wird sehr unter der InfluxDB leiden.


    Ich hab ein Base 15 mit 5.1er Firmware (dass wohl deutlich überdimensioniert ist für das was es tut), das wird per Modbus damit verbunden. Ich vermute (bin aber nicht sicher) dass die anderen Solar-Logs es auch können, eventuell erst ab einer bestimmten Firmware-Version. Da meins mit der aktuellsten Firmware keine Möglichkeit bietet den RCT via Netzwerk anzusprechen geht wohl nur Modbus, generell scheinen wenige Datenlogger und Verbraucher mit RCT zurecht zu kommen, ich brauch es um die Wärmepumpe zu steuern. Wichtig: der RCT muss dafür als Modbus Slave konfiguriert werden.


    Das Base 15 hat eine Website (die anderen dementsprechend auch), über die man sehr viele Werte aus dem RCT anschauen kann (bspw. MPP-Tracker-Vergleich). Soweit ich hier im Forum gelesen hab konnten die älteren Solar-Logs deutlich mehr an den Kunden ausgeben, aber das Ziel von SDS scheint zu sein nur noch per Web-Enerest zu arbeiten. Das Solar-Log hat aber sowas wie eine API, mit der es seine eigene Webseite betreibt, es gibt für ioBroker bereits eine Integration. Ich hab das was ich über die "API" rausgefunden hab mal in Teilen dokumentiert: https://slmon.readthedocs.io/e…_structures_overview.html

    Das ganze gehört zu einem Auslesesystem an dem ich nebenher bastle, aber da ich mittlerweile den RCT direkt und die Wärmepumpe mit Tricks auslesen kann hat das wenig Priorität, da mein Solar-Log nur die WP steuert und ich es nicht (mehr) brauche um an Werte zu kommen.Wenn du nur zusammengerechnete Werte ohne Batteriefüllstand etc. brauchst reicht dir ein einfacher curl-Aufruf gegen die Open JSON Schnittstelle des SL.


    Vorsicht: Du kannst ein Solar-Log mit Abfragen an seine "API" sehr leicht kaputtmachen (zu schnell, oder Endpunkte die zu viel ausgeben angesprochen, oder einfach Fehler im Webserver getriggert, ich hab die die ich gefunden hab dokumentiert), sodass es auch alle seine Daten verliert und eine neue Ersteinrichtung braucht, wenn du kein Datenbackup hast sind alle historischen Daten verloren. Been there, done that, still mending the pieces.

  • Ein Linux-Gerät steht da tatsächlich rum, und zwar eine QNAP TS-251. Also etwas virtualisiertes oder gedockertes ließe sich schnell einrichten. Auch mit IOBroker muss ich da mal anfangen zu üben, bei dem ganzen Krempel der da mittlerweile rumsteht.

    Das Ganze steht nicht bei mir, sondern ein paar Straßen weiter bei meinen Eltern, die aus irgendwelchen Gründen jetzt innovationsmäßig vorne liegen und vor mir eine PV und eine Wärmepumpe (-Hybrid, eine Viessmann Vitocaldens) in Betrieb genommen haben.


    Welche WP hast Du denn im Einsatz? Hat der RCT keinen potentialfreien Ausgang für WP-Steuerung? (So weit sind wir noch nicht, WP ist erst seit einer Woche in Betrieb)


    Ich baue 2022 ein Haus, mal sehen was ich dann alles anders mache.

  • Ich hab selber weder ioBroker noch Docker im Einsatz, prinzipiell sollte sich das Python-Geraffel aber leicht dockerisieren lassen.


    Klar, der RCT hat einige digitale Ein- und Ausgänge (ich glaub die sind sogar im Handbuch erklärt) auf die man verschiedene Funktionen legen kann, die verwenden wir aber nicht. Denn das Solar-Log führt die Wärmepumpe (eine IDM ALM) sehr schön an der vorhandenen Leistung ran, d.h. sie zieht nur was auch vom Dach kommt (und saugt nicht den Akku leer) soweit es möglich ist, bzw. schiebt es den Start der WP nach vorne oder hinten wenn absehbar ist dass genug von der Sonne kommt und so weiter. Das ist sehr angenehm und tut direkt (sofern das System initial richtig eingerichtet ist...). Der Wechselrichter kann auch kein Peak-Shaving (soll per Firmware-Update nachgereicht werden lt. Hersteller), das übernimmt hier auch das Solar-Log. Und in dem (Fertig-)Setup ist das Solar-Log der einzige Punkt an dem ein Endbenutzer vernünftig an eine Übersicht über alle Komponenten bekommt, also an sich garnicht mal schlecht.