NEWS
Fronius Gen24 Einspeisezähler ioBroker Modbus Client
-
Hi,
Ich habe neben dem Fronius Gen24 noch eine kleine 2. Erzeugeranlage die per ioBroker eingelesen wird.
Jetzt versuche ich seit Tagen diese im Gen24 von ioBroker per Modbus TCP auszulesen, aber das klappt irgendwie nicht.ioBroker hat eine neue Modbus Instanz bekommen mit allen Registern wie Fronius Smartmeter. Gen24 kann auf diesen auch zugreifen. Ich sehe das gelesen wird, aber nach ner Sekunde wird abgebrochen. Irgendwas passt ihm noch nicht.
Hat sowas vielleicht schon mal wer erfolgreich geschafft, oder eine Idee was ich falsch mache?
Einige Register vom Fronius Smartmeter:
Gen24 bleibt auf Rot:
-
@maxx8888 Stell den Adapter mal auf DEBUG und dann poste mal den log.
Hast du eine Anleitung vom Gen24 bei der man die Register und Einstellungen sieht? -
Ja, da sieht man leider nicht viel.
Hab schon überlegt ob ich es irgendwie schaffen würde den Adapter so zu ändern das man die tatsächlichen Pakete auch sehen kann, aber des ist mir zu hoch
modbus.4 2023-01-31 20:31:26.215 silly States user redis pmessage modbus.4.*/modbus.4.info.connection:{"val":"192.168.123.30","ack":true,"ts":1675193486214,"q":0,"from":"system.adapter.modbus.4","user":"system.user.admin","lc":1675193486214} modbus.4 2023-01-31 20:31:26.172 debug connection closed, socket modbus.4 2023-01-31 20:31:26.172 debug - Client connected: 192.168.123.30 modbus.4 2023-01-31 20:31:26.169 debug sending tcp data modbus.4 2023-01-31 20:31:26.064 debug sending tcp data modbus.4 2023-01-31 20:31:25.962 debug sending tcp data modbus.4 2023-01-31 20:31:25.907 silly States user redis pmessage modbus.4.*/modbus.4.info.connection:{"val":"192.168.123.30,192.168.123.30","ack":true,"ts":1675193485906,"q":0,"from":"system.adapter.modbus.4","user":"system.user.admin","lc":1675193485490} modbus.4 2023-01-31 20:31:25.862 debug connection closed, socket modbus.4 2023-01-31 20:31:25.862 debug - Client connected: 192.168.123.30,192.168.123.30 modbus.4 2023-01-31 20:31:25.858 debug sending tcp data modbus.4 2023-01-31 20:31:25.755 debug sending tcp data modbus.4 2023-01-31 20:31:25.650 debug sending tcp data modbus.4 2023-01-31 20:31:25.548 debug sending tcp data modbus.4 2023-01-31 20:31:25.491 silly States user redis pmessage modbus.4.*/modbus.4.info.connection:{"val":"192.168.123.30,192.168.123.30","ack":true,"ts":1675193485490,"q":0,"from":"system.adapter.modbus.4","user":"system.user.admin","lc":1675193485490} modbus.4 2023-01-31 20:31:25.447 debug + Clients connected: 192.168.123.30,192.168.123.30 modbus.4 2023-01-31 20:31:25.447 debug new connection modbus.4 2023-01-31 20:31:25.443 debug sending tcp data modbus.4 2023-01-31 20:31:25.337 debug sending tcp data modbus.4 2023-01-31 20:31:25.235 debug sending tcp data modbus.4 2023-01-31 20:31:25.132 debug sending tcp data modbus.4 2023-01-31 20:31:25.030 debug sending tcp data modbus.4 2023-01-31 20:31:24.924 debug sending tcp data modbus.4 2023-01-31 20:31:24.820 debug sending tcp data modbus.4 2023-01-31 20:31:24.710 debug sending tcp data modbus.4 2023-01-31 20:31:24.607 debug sending tcp data modbus.4 2023-01-31 20:31:24.504 debug sending tcp data modbus.4 2023-01-31 20:31:24.402 debug sending tcp data modbus.4 2023-01-31 20:31:24.303 silly States user redis pmessage modbus.4.*/modbus.4.info.connection:{"val":"192.168.123.30","ack":true,"ts":1675193484302,"q":0,"from":"system.adapter.modbus.4","user":"system.user.admin","lc":1675116005234} modbus.4 2023-01-31 20:31:24.297 debug + Clients connected: 192.168.123.30 modbus.4 2023-01-31 20:31:24.293 debug new connection
-
@maxx8888 Ganz ehrlich verstehe ich nicht was du machen willst bzw. was schon funktioniert.
Du hast einen GEN24 welcher erfolgreich in iobroker eingebunden ist ?
Du hast eine zweite Anlage die ebenfalls per Modbus eingelesen wird ?
Du willst die Daten der zweiten kleinen Anlage aus dem Gen24 auslesen ?
Wovon ist der untere Screenshot ?
-
Hi,
Also im Gen24 kann man beliebig viele Zähler anmelden um eben in der Fronius Welt auf Solarweb diese Daten anzeigen zu lassen. Das Problem das ich habe ist das tagsüber Solarweb eben einen zu geringen Eigenverbrauch anzeigt und berechnet da diese kleine zusätzliche Anlage (1kwp mit Letrika Modulwechselrichter) auch erzeugt aber der Gen24 nichts davon weiß. Gen24 sieht nur das am Einspeisepunkt Zähler immer weniger gebraucht wird.
Ich würde mir jetzt gerne ersparen hier einen zusätzlichen Smartmeter von Fronius zu verwenden weil aufwendig zu verkabeln da anderes Gebäude...
Die Idee daher war, ich "simuliere" mit ioBroker und Modbus Adapter einen Fronius Smartmeter und lasse diesen vom Gen24 lesen.
Ich habe ja alle Register die im Smartmeter vorhanden sind (kann man bei Fronius downloaden). Dann habe ich diese im ioBroker Modbus Adapter angelegt und starte diesen im Slave Mode.
Dann hab ich eben im Gen24 einen zusätzlichen Smartmeter angelegt (siehe Screenshot unten) und gehofft das der Gen24 den ioBroker Modbus Slave als Smartmeter erkennt und pollen anfängt.
So wäre dann alles im ioBroker vorhanden und auch im Solarweb korrekt dargestellt. -
@maxx8888 Aha! Jetzt habe ich auch verstanden was du möchtest
Ich habe für ein etwas anderes Projekt einen EM24 von Carlo Gavazzi (Wechselrichter Victron etc) auch als Slave in IObroker "nachgebaut".Du kannst mit wireshark oder einer anderen Software dir die Kommunikation bzgl. der Modbus instanz angucken und daraus Schlüsse ziehen was abgefragt und was geantwortet wird.
Bevor ich oder jemand anders jetzt aber nach Anleitungen und Registern sucht (und evtl das falsche findet) verlink doch mal die Anleitung der Modbusregister die du genutzt hast.
Was mir auch nicht ganz klar ist: wie ist die Verdrahtung?
Du hast aktuell einen Zähler der wie angeschlossen ist? TCP IP, RS485?
Wie soll/wird der andere Zähler gelesen werden? TCP IP, RS485 mit Adapter auf IP?Wer/Was pollt denn den neuen Slave? Der bereits vorhandene Zähler, der Wechselrichter oder eine übergeordnete Steuerung?
-
-
@wendy2702 said in Fronius Gen24 Einspeisezähler ioBroker Modbus Client:
Du willst also per Modbus werte in den GEN24 schreiben.
Nein, so wie ich ihn verstehe, will er mit ioBroker einen Zähler simulieren (Modbus Slave) und der Gen24 soll die definierten Werte dann als Modbus Master pollen.
Ich habe ioBroker noch nie als Slave genutzt und habe ein wenig experimentiert.
Was mir aufgefallen ist: Man muss anscheinend bei den definierten Holding Registers das Häkchen für "Abfrage" setzen. Sonst antwortet der Adapter mit der Exception "Invalid Data Address". Setzt man das Häkchen, kommt eine Antwort.
Allerdings kamen in meinem kurzen Test immer nur Nullen, auch wenn ich den entsprechenden State auf einen anderen Wert gesetzt habe:
Tx:000268-07 DD 00 00 00 06 01 03 00 00 00 02 Rx:000269-07 DD 00 00 00 07 01 03 04 00 00 00 00
Die letzten vier Nullen sollten hier eigentlich einen anderen Wert haben. Ein ähnliches Problem hatte anscheinend schon mal jemand: https://forum.iobroker.net/topic/46511/modbus-liefert-nur-nullen
Also auf jeden Fall kannst du mal prüfen, ob du das Häkchen für alle Register auf "Abfrage" gesetzt hast, evtl. bringt dich das weiter.
-
Hi!
Vielen Dank für eure Unterstützung
Also offizieller download ist hier:
https://www.fronius.com/~/downloads/Solar Energy/Operating Instructions/gen24-modbus-api-external-docs.zipDarin sind 2 Files enthalten für Smartmeter. Einmal mit Float Abfrage und einmal mit Int + Scale Faktoren. Hab beide bisher ohne Erfolg probiert.
Was ich dazu sagen muß ist, daß ich die Register immer um eines runtergezählt habe, also laut Excel Sheet 40001, habe ich als 40000 hinterlegt. Das hab ich gemacht, da beim Abruf vom Gen24, daß auch so problemlos läuft.
Abfrage Haken habe ich überall gesetzt.
Wireshark ist gute Idee, sieht man da halbwegs im Klartext was übermittelt wird? Da muß ich mich halt Netzwerk technisch irgendwie dazwischen Klemmen das ich auch den Verkehr von Gen24 zu ioBroker mithören kann. Muß ich wohl schaun ob ich irgendwo einen uralt Netzwerk Hub finde :-P.
Hatte gehofft das man den Modbus Adapter selbst dazu bewegen könnte einfach bei "silly" Loglevel wirklich jede Message auszugeben.... tut er aber leider nicht ... -
@maxx8888 said in Fronius Gen24 Einspeisezähler ioBroker Modbus Client:
Wireshark ist gute Idee, sieht man da halbwegs im Klartext was übermittelt wird?
Wireshark kann Modbus und stellt die Telegramme lesbar dar.
@maxx8888 said in Fronius Gen24 Einspeisezähler ioBroker Modbus Client:
Da muß ich mich halt Netzwerk technisch irgendwie dazwischen Klemmen das ich auch den Verkehr von Gen24 zu ioBroker mithören kann.
Lass doch Wireshark einfach auf dem ioBroker Rechner laufen. Per Command line Interface mitschneiden und dann auf nem Windows Rechner auswerten. Oder du installierst ioBroker testweise unter Windows und kopierst die Modbus Einstellungen rüber. Hub geht natürlich auch, wenn du noch einen hast.
-
Ha perfekt,
tcpdump läuft ja unter debian... perfekt!
Aufgezeichnet... ausgewertet.Das sieht eigentlich nicht so schlecht aus, Gen24 liest tatsächlich eigentlich ALLE Register aus.
Aber, da gibt es noch zusätzliche Anfragen 0x3 (Holding Register) auf komische Adressen die nicht im Excel enthalten sind.Hier der Ablauf laut Wireshark:
Request -> Response768, 1Register -> 0 (3x wiederholt)
1706, 1Register -> 0 (6x wiederholt)
... Hier kommen jetzt mehrere Anfragen auf die vorhandenen Register ... Replies scheinen OK
11, 1Register -> 0 (3x wiederholt)58sek Pause und dann wieder von vorne los
-
Also beantwortet ioBroker alle Anfragen, auch die Register, die du nicht konfiguriert hast. Verstehe ich das richtig? Kommt wirklich nie eine Exception?
In dem Fall passen dem Gen24 wohl irgendwelche Werte nicht. Evtl. kannst du ja mal den Traffic zum funktionierenden Zähler mitschneiden und vergleichen.
-
@maxx8888 mit tcpdump habe ich es auch gemacht.
Vielleicht kannst du auch davon mal ein paar Daten hier zeigen.Was mir bei meinen Versuchen aufgefallen ist (habe dazu auch 2 Issues aufgemacht) vielleicht treten bei dir Ähnliche Fehler/Probleme auf:
- Der Modbus Adapter braucht etwa 100ms zum Antworten und bei meinem Wechselrichter war das zu lang und der Wechselrichter hat alle Antworten die länger brauchen als ~50ms nicht beachtet. Das original Smartmeter braucht etwa 10-20ms. #262
- Der Modbus Adapter antwortet auf alle Geräte-ID´s. Stellst du also in den Adaptereinstellungen ein der Slave hat die ID1 und dann kommt eine Anfrage für den Slave mit der Geräte ID2 antwortet der IObroker trotzdem (mit der Geräte ID2) #260
@gaspode said in Fronius Gen24 Einspeisezähler ioBroker Modbus Client:
Also beantwortet ioBroker alle Anfragen, auch die Register, die du nicht konfiguriert hast. Verstehe ich das richtig? Kommt wirklich nie eine Exception?
ioBroker antwortet Tatsächlich auf alle Anfragen. Nicht angelegte Werte werden einfach mit dem Wert 0 benatwortet.
-
Vielen Dank Klamm! Hatte jetzt wieder mal Zeit mich damit zu beschäftigen.
Die Lösung scheint tatsächlich das Delay von 100ms zu sein. Habe das auch wie in dem Issue #262 beschrieben auf 10ms gesetzt, jetzt gehts.
Wäre wirklich genial wenn das eine Konfig Option wird... -
Hallo,
könntest du mir bitte screenshot von deinen Modbus einstellungen machen, ich würde das auch gerne versuchen komme aber nicht weiter
Danke
-
@maxx8888
Hi,
ich möchte gerne auch mein Balkon PV Kraftwerk in die Fronius Welt einbinden. Könntest du hier nochmal eine kleine Anleitung schreiben, bzw. die Daten für den Modbus adapter zur Verfügung stellen?
Vielen Dank
Marius -
Hallo in die Runde,
ich habe mein Adapter soweit vorbereitet und leider wird der "virtuelle" Zähler in der Fronius Welt noch nicht akzeptiert. Ich würde jetzt gerne mal die Lösung mit den 100ms ausprobieren. Allerdings habe ich keine Idee, wie ich den Adapter bearbeiten kann. Kann mir das jemand Schritt-für-Schritt erklären?
Vielen Dank
Marius