RCT Power Anbindung

Welche Geräte sollen noch implementiert werden?
Was sollte man ändern / verbessern / ergänzen an der Solaranzeige? Hier kann Jeder seine Ideen einbringen.
Außerdem steht hier, woran gerade gerbeitet wird.

Moderator: Ulrich

Forumsregeln
Wenn neue Geräte implementiert werden sollen ist die Protokollbeschreibung der Schnittstelle vom Hersteller Voraussetzung.

Bitte nur konkrete Ideen hier eintragen und in jedem Beitrag bitte nur eine Erweiterung / Änderung, damit das Ganze noch überschaubar bleibt. Ein ganzes Sammelsorium von Ideen in einem Thread ist zu unübersichtlich. Nicht alles kann und wird auch verwirklicht werden.
MR42HH
Beiträge: 2
Registriert: Fr 6. Nov 2020, 14:58

RCT Power Anbindung

Beitrag von MR42HH »

Moin!

Ist es geplant, auch RCT Power Wechselrichter in der Solaranzeige nutzbar zu machen? Ich könnte eine Testumgebung zur Verfügung stellen (RCT Storage 10 Hybrid-WR und Batterie)

Es gibt schon den rctclient von sval, basierend auf der OpenWB-RCT-Integration:
https://github.com/svalouch/python-rctclient/

Siehe auch dieser Thread im Photovoltaikforum
https://www.photovoltaikforum.com/threa ... r-für-rct/

Wenn das jemand mit mehr Know-How als ich verheiraten könnte, wäre das echt super.

Viele Grüße,
Mirko

sval
Beiträge: 3
Registriert: Di 17. Nov 2020, 19:43

Re: RCT Power Anbindung

Beitrag von sval »

Hiho, ich hab noch ein paar Hinweise und Vorschläge:

Generell: Die Wechselrichter lassen sich per Modbus-RTU und TCP auslesen/steuern, auch simultan. Für Modbus habe ich keinerlei Informationen finden können. Das Netzwerkprotokoll ist recht einfach gehalten: Prinzipiell sendet man einen "Liess diese ID"-Befehl an den Wechselrichter und er antwortet mit einer "Antwort" oder "Lange Antwort". Der Wechselrichter kommt sofort durcheinander, wenn mehrere Clients (beispielsweise mehrere Smartphones mit der App des Herstellers) mit dem WR kommunizieren, die Folge sind ungültige Antworten oder Antworten die zwar eine gültige Checksumme, jedoch keinen Inhalt haben, eine gute Fehlerbehandlung ist also Pflicht. Ausserdem sendet der WR in manchen Situationen von sich aus, es kann also sein dass man unerwartete Pakete in seinem Puffer findet (siehe tools/histogram2csv.py), wärend man auf eine Antwort wartet. Die kann man üblicherweise ignorieren. Wechselrichter lassen sich zudem untereinander verschalten (Plant-Kommunikation), bei der eine extra Adresse im Paket mitgesendet wird. Das habe ich nicht testen können, da mir nur ein einzelner Wechselrichter zur Verfügung steht.

Der Author der OpenWB-Integration (pob90), auf der der rctclient basiert, hat eine riesige Liste an Namen und IDs in den Code eingebaut, die ich im rctclient etwas umgebaut habe und deren Inhalt in der Registry-Dokumentation aufbereitet ist.

Die Registry enthällt die IDs (ich habe sie Object-IDs oder OIDs genannt) die bekannt sind (es fehlen ein paar gegenüber der App des Herstellers), und ordnet auch die internen Namen der IDs (wie battery.soc) zu, die Namen bekommt man auch aus der (Android-) App wenn man sie lieb fragt. Sehr viele IDs sind read-only, aber die Registry erfasst diese Information noch nicht. Die vielleicht wichtigste Information ist der Antwort-Datentyp (Response Type), der angibt wie die Payload der Antwort des WR dekodieren muss. Die Seite ist als Nachschlagewerk gedacht.

Je nach Struktur von Solaranzeige (ich bin kein Nutzer und habs mir noch nicht angeschaut) kann man den Weg gehen, den OpenWB eingeschlagen hat: Aufruf der notwendigen Befehle aus dem Code heraus und Einlesen der Ergebnisse. OpenWB verwendet die originale Implementierung von pob90, die in 2 Dateien passt (rct.py und rct_read.py) und verwendet mehrere Shell-Wrapper:
OpenWB verwendet den reinen Python2-Code ohne weitere Abhängigkeiten, rctclient ist rein Python3, braucht aber für den rctclient-Aufruf die click-Bibliothek (Debian hat sie in den Repositories), ist ansonsten aber (hoffentlich) gleichwertig verwendbar.


Mit der IP-Symcon-Integration IPSCoyote/RCT-Power gibts bereits eine PHP-Implementierung des Protokolls, bei der man vielleicht abschauen kann, hier finde ich aber keine Informationen zur Lizenz (könnte also spannend werden). In der Readme werden auch ein paar Probleme angesprochen, die es bei mehreren WRs gleichzeitig gibt (die Kommunikation der WR untereinander, ich vermute stark dass hier Plant-Kommunikation gemeint ist).

Für eine eigene Implementierung könnte der Simulator hilfreich sein: pob90 hat einen programmiert (rct_sim.py), den hab ich dann im rctclient im CLI verfügbar gemacht und auch ein bisschen Doku gebaut. Der Simulator gibt korrekte, aber unsinnige Werte zurück (beispielsweise immer 0 oder Dummy-Strings), aber gegen den kann man gefahrlos die Implementierung testen. Einige IDs (Timeseries, Event) kann er nicht verarbeiten. Die Android App kann mit dem Simulator verbunden werden, zeigt natürlich keine sinnvollen Ergebnisse, funktioniert aber prinzipiell.

Die Doku des eigentlichen Protokolls ist bei mir ein bisschen dünn ausgefallen, aber die relevanten Teile sind im rctclient in der Datei frame.py, die beiden Frame-Klassen implementieren den Zusammenbau eines zu sendenden Frames und das Einlesen eines empfangenen Frames.

Das ist jetzt schon wieder eine Wall-of-Text geworden. Naja, besser als was auszulassen.
HTH!

MR42HH
Beiträge: 2
Registriert: Fr 6. Nov 2020, 14:58

Re: RCT Power Anbindung

Beitrag von MR42HH »

sval hat geschrieben:
Di 17. Nov 2020, 20:51
Der Wechselrichter kommt sofort durcheinander, wenn mehrere Clients (beispielsweise mehrere Smartphones mit der App des Herstellers) mit dem WR kommunizieren
Danke für deine Ausführungen. Das macht mich dann aber etwas stutzig. Was wäre denn Dein Vorschlag, wenn auch eine OpenWB geplant ist? Die holt sich die Daten vom WR ja über den gleichen Weg, das gäbe ja dann Kuddelmuddel.
Wäre es hier ein gangbarer Weg, dass die OpenWB über MQTT ihre Daten vom WR an solaranzeige weiterreicht, und reicht die überhaupt alles durch? Oder andersrum?

Grüße!

sval
Beiträge: 3
Registriert: Di 17. Nov 2020, 19:43

Re: RCT Power Anbindung

Beitrag von sval »

Naja, es müssen eh alle Beteiligten damit klarkommen dass die App spontan dazwischenfunkt, denn die scheint der einzige offizielle Weg zu sein Einstellungen zu ändern und generell Daten abzurufen, selbst die RCT-Techniker haben offenbar nix anderes als die App (wobei es die Möglichkeit gibt den WR an den RCT-Server zu klemmen zur Fernüberwachung bei Problemen, das ist aber das gleiche Protokoll und hat die gleichen Probleme). Die App selber hat auch Fehlerbehandlung, da taucht beispielsweise (bei der Android-App) dann mal ein "Timeout"-Toast auf und paar Sachen brauchen kurz bis sie da sind, weil sie einen retry macht und der ein bisschen Zeit braucht.

Prinzipiell muss man eh Fehlerbehandlung bauen, wie bei generell allem, und die leeren Pakete mit gültiger CRC fallen ja auf, denn sie enthalten einfach keine Daten, dann macht man einfach noch einen Versuch. Für den Rest kann man vielfach einfach feststellen, wenn "kaputte" Daten ankommen, beispielsweise sollte der Batteriefüllstand nie kleiner 0 und echt-größer 1 sein und so weiter. Ich sehe bei einem meiner Scripte 3 retries vor bevor es aufgibt und im Zweifel tuts dann ne Minute soäter wenn es Zeit für die nächste Abfrage ist.

Zu OpenWB: Die Daten die es abfragt kannst du dir ja anschauen, indem du die Shellscripte gegen deinen eigenen WR laufen lässt, bzw. die Scripte Verbose aufrufst, damit sie auch die Namen der abgefragten IDs ausgeben. Mehr als dass was es abfragt kann es der Solaranzeige ja nicht zur Verfügung stellen ;)

Benutzeravatar
Ulrich
Administrator
Beiträge: 2734
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 32 Mal
Danksagung erhalten: 173 Mal
Kontaktdaten:

Re: RCT Power Anbindung

Beitrag von Ulrich »

[ Stand: 19.11.2020 ] Die Unterlagen werde ich mir einmal anschauen. Ist schon einmal registriert.
--------------------------------------
Ulrich [Admin]

Filips
Beiträge: 34
Registriert: Fr 24. Apr 2020, 18:23
Hat sich bedankt: 1 Mal

Re: RCT Power Anbindung

Beitrag von Filips »

Gibt es hier schon Neues?

Filip

Benutzeravatar
Ulrich
Administrator
Beiträge: 2734
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 32 Mal
Danksagung erhalten: 173 Mal
Kontaktdaten:

Re: RCT Power Anbindung

Beitrag von Ulrich »

Ich benötige die Protokollbeschreibung des Herstellers. Diesen habe ich angeschrieben.
Ein Re-engineering mache ich nicht.
--------------------------------------
Ulrich [Admin]

Hildi
Beiträge: 2
Registriert: Mi 17. Feb 2021, 16:15
Danksagung erhalten: 1 Mal

Re: RCT Power Anbindung

Beitrag von Hildi »

Hallo,

hilft evt. dieser Link weiter ?

https://github.com/worldpeace-germany/rctDataServer

mfG
Thomas

Hildi
Beiträge: 2
Registriert: Mi 17. Feb 2021, 16:15
Danksagung erhalten: 1 Mal

Re: RCT Power Anbindung

Beitrag von Hildi »

Hallo,

gibt es hier schon Neuigkeiten ?

MfG
Thomas

peter.oberhofer
Beiträge: 1
Registriert: So 6. Jun 2021, 15:09

Re: RCT Power Anbindung

Beitrag von peter.oberhofer »

Hallo Miteinander,

von mir kommt die initiale RCT Implementierung für die openWB. Dabei gab es ein timeout Problem sobald mit der App zugegriffen wurde. Das ist mittlerweile behoben. Keine Ahnung, ob das auch von Euch übernommen wurde. Ich wollte auch nur darauf hinweisen.

Sonnige Grüße
Peter Oberhofer

Antworten