ich habe eine Fenecon-Home 10 Anlage bei mir neu installiert.
Der Wechselrichter ist über Modbus RTU mit dem FEMS verbunden, was auch funktioniert.
Nur ich möchte gerne vom Wechselrichter die Daten der PV-Strings auslesen.
Ist das über Modbus TCP direkt am Wechselrichter möglich?
Oder gibt es eine andere Möglichkeit die Daten abzugreifen?
Das ist ein Addon für Home Assistant, was den OpenEMS Edge-Websocket in MQTT konvertiert. Wenn nötig könnte das wahrscheinlich auch für Modbus und ohne Home Assistant adaptiert werden.
Damit kann man alle Kanäle abfragen ohne ständig eine REST-Request zu senden. Der Websocket sendet die Daten jede Sekunde automatisch und das landet dann in MQTT.
Das ist doch genau wo nach ich suche.
Jetzt kommt das nächste Problem
MQTT ist auch kein Problem, es muss kein Modbus sein.
Das Addon ist ja für Homeassistant, das habe ich nicht.
Oder gibt es den MQTT-Server als fertigen Docker?
Hmm, theoretisch läuft das in Home Assistant ja in docker.
Aber wahrscheinlich bräuchte man schon etwas Programmier-Erfahrung um es ohne Home Assistant zum laufen zu kriegen.
Letztendlich ist es nur Python Code, die größte Herausforderung wäre es wahrscheinlich, die Abfragen im Python-Code nach den Konfigurationsvariablen in Home Assistant zu ersetzen. (Also z.B. was ist die Adresse des Mqtt Brokers und des FEMS und welche Kanäle sollen abgefragt werden.)
Das Addon ist btw ein Client und kein MQTT-Server. Könnte man aber bei Bedarf wahrscheinlich aber auch anpassen.
Hmm PHP läuft ja immer nur beim Aufrufen der jeweiligen URL, oder? Da könnte man dann mindestens genauso gut/besser die REST API verwenden, weil ja der Websocket sonst jedes Mal neu aufgebaut werden muss.
Die Idee beim Websocket ist eigentlich, wie bei Modbus, dass die Verbindung dauerhaft offen bleibt.
In welches System soll es denn letztendlich integriert werden?
Da ist es auch interessant zu wissen, dass man durch die Verwendung von Regex mehrere Kanäle mit einer Anfrage abfragen kann, was nicht wirklich dokumentiert ist.
Hier ist ein Beispiel dazu um alle String-Daten zu bekommen:
Ich muss mich halt mit der Websocket-Abfrage beschäftigen davon habe ich noch keine Ahnung. Es wäre halt schön gewesen die Daten der zwei Strings zu erfassen.
Soweit ich weiss, ist der Websocket aber nach aussen “geschlossen” @stefan.feilmeier hat da mal glaub ich was dazu geschrieben - sollte auch so sein, aus Garantie/Gewährleistungsgründen soweit ich weiss?
schau dir mal mein Repo dazu an, damit kannst du dich mit dem WLAN dongle des GoodWe verbinden und somit die Daten “abfangen”.
ABER per Modbus TCP kann der WR das NUR und ausschließlich über das LAN Dongle (kostet extra bei GoodWe) Modbus RTU ist dirch die FEMS belegt und kann dementsprechend nicht verwendet werden.
Hmm ich glaube am einfachsten wäre es einfach die REST-AP mit Regex zu verwenden. Da bekommt man eigentlich auch alle relevanten Werte raus, zum Beispiel auch die einzelnen String-Leistungen wenn man die entsprechenden Kanäle abfragt.