ModBus TCP Interface
Moderator: Co-Administratoren
-
- Beiträge: 50
- Registriert: 14.03.2016, 08:11
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 1 Mal
Re: ModBus TCP Interface
Habe es mal schnell überflogen, super Sache.
Muss mich da jetzt rein arbeiten.
Hat jemand Erfahrung mit einer Ochsner Warmwasserwärmepumpe genius 333?
Diese hat auch ModBus
Mit welcher Hardware geht ihr an den ModBus?
Muss mich da jetzt rein arbeiten.
Hat jemand Erfahrung mit einer Ochsner Warmwasserwärmepumpe genius 333?
Diese hat auch ModBus
Mit welcher Hardware geht ihr an den ModBus?
-
- Beiträge: 5497
- Registriert: 30.05.2019, 11:37
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Chemnitz
- Hat sich bedankt: 118 Mal
- Danksagung erhalten: 751 Mal
Re: ModBus TCP Interface
Gibt's sicher viele Möglichkeiten. Bei mir geht es um einen Zweirichtungs-Drehstromzähler mit Modbus RTU (RS485) Ausgang.
Daran hängt der weitverbreitete Stick ELFIN EW11A, der auf Modbus TCP (WLAN) umsetzt. So kann ich die Daten in der CCU mit Node-RED empfangen und auswerten.
-
- Beiträge: 184
- Registriert: 14.10.2011, 09:05
- System: CCU
- Wohnort: Bremen
- Hat sich bedankt: 58 Mal
- Danksagung erhalten: 7 Mal
ModBus TCP Interface für Huawei Wechselrichter
Hallo Huawei-"Freunde",
hier die Register, die ich in NodeRed benutze. Habe die Excel-Datei in eine Texttabelle konvertiert.
Grundlage ist das Dokument
"Solar Inverter Modbus Interface Definitions"
in der Version "Issue 04" vom "date 2022-03-29"
Mein Wechselrichter ist ein SUN2000-8KTL-M1 mit dem WLan-Dongle, dem Energie-Meter DTSU666-H Smart PowerSensor (3-Phasig) und zwei LUNA2000-Spericher.
In der anhängenden Tabelle im PDF-Format habe ich die Register herausgesucht, die für mich relevant sind. Die grün markierten werden tatsächlich für mein Dashboard genutzt.
Als Appetizer noch ein paar Screenshots im Anhang.
Ich habe meinen Flow in der Anlage hochgeladen.
hier die Register, die ich in NodeRed benutze. Habe die Excel-Datei in eine Texttabelle konvertiert.
Grundlage ist das Dokument
"Solar Inverter Modbus Interface Definitions"
in der Version "Issue 04" vom "date 2022-03-29"
Mein Wechselrichter ist ein SUN2000-8KTL-M1 mit dem WLan-Dongle, dem Energie-Meter DTSU666-H Smart PowerSensor (3-Phasig) und zwei LUNA2000-Spericher.
In der anhängenden Tabelle im PDF-Format habe ich die Register herausgesucht, die für mich relevant sind. Die grün markierten werden tatsächlich für mein Dashboard genutzt.
Als Appetizer noch ein paar Screenshots im Anhang.
Ich habe meinen Flow in der Anlage hochgeladen.
- Dateianhänge
-
- Huawei-Solaranlage_NodeRed-flows.zip
- (8.98 KiB) 49-mal heruntergeladen
-
- Homematic_SUN2000_Modbus-Nutzung.pdf
- (365.65 KiB) 67-mal heruntergeladen
RaspberryMatic auf Raspberry Pi 4 2Gbyte
-
- Beiträge: 37
- Registriert: 16.05.2020, 21:24
- System: CCU
- Hat sich bedankt: 5 Mal
- Danksagung erhalten: 4 Mal
Re: ModBus TCP Interface
Hallo drose28357,
sieht sehr interessant aus, werde ich mal probieren. Welche zusätzlichen Pakete brauche ich dafür in Redmatic?
EDIT: Habe jetzt alles zum Laufen bekommen. Fehlende node über Palette installiert. Nur die Junctions musste ich bei mir auflösen. Den Node habe ich bei meiner Redmatic/Node Red nirgens gefunden/bekommen. Läuft super. Danke!!
VG Tincup
sieht sehr interessant aus, werde ich mal probieren. Welche zusätzlichen Pakete brauche ich dafür in Redmatic?
EDIT: Habe jetzt alles zum Laufen bekommen. Fehlende node über Palette installiert. Nur die Junctions musste ich bei mir auflösen. Den Node habe ich bei meiner Redmatic/Node Red nirgens gefunden/bekommen. Läuft super. Danke!!
VG Tincup
-
- Beiträge: 184
- Registriert: 14.10.2011, 09:05
- System: CCU
- Wohnort: Bremen
- Hat sich bedankt: 58 Mal
- Danksagung erhalten: 7 Mal
Re: ModBus TCP Interface
Hallo Tinycup,
hatte vergessen zu erwähnen, das ich mein NodeRed auf einen neuen Stand aktualisiert hatte, dort sind dann diese Junctions als Formatierhilfe verfügbar.
Junction mit Rechts-Klick auf eine Verbindung : Einfügen/Kreuzung
Die Aktualisierung funktioniert über in Nodered gestartete Scripte, Den Flow dazu kann man hier runterladen:
viewtopic.php?f=77&t=78208#p770549
Hier steht, wie man das Script durch klicken auf "inject"-Nodes ausführen kann. Dabei sollte das Debug-Fenster offen sein, weil man dort Ergebnisse sehen kann, z.B. vom "Check Version node-red" injector.
viewtopic.php?f=77&t=78208&sid=eccb5ae5 ... 40#p773162
1) Beim ersten ausführen des Flows:
"Patch, nur einmal nötig" klicken, geht schnell, dann .... 2)
2) "Update NodeRed, nur einmal nötig" und warten bis der Node "Ausführen" fertig ist.
3) Jetzt NodeRed neu starten.
4) Dann "True" um neue (aktuelle) node.js zu laden.
(Dieser Zweig wird täglich einmal automatisch durchlaufen)
5) Mit "Nach CCU Update oder bei neuer node.js" installieren,
dauer länger und wenn es fertig ist,
6) die CCU neu starten.
hatte vergessen zu erwähnen, das ich mein NodeRed auf einen neuen Stand aktualisiert hatte, dort sind dann diese Junctions als Formatierhilfe verfügbar.
Junction mit Rechts-Klick auf eine Verbindung : Einfügen/Kreuzung
Die Aktualisierung funktioniert über in Nodered gestartete Scripte, Den Flow dazu kann man hier runterladen:
viewtopic.php?f=77&t=78208#p770549
Hier steht, wie man das Script durch klicken auf "inject"-Nodes ausführen kann. Dabei sollte das Debug-Fenster offen sein, weil man dort Ergebnisse sehen kann, z.B. vom "Check Version node-red" injector.
viewtopic.php?f=77&t=78208&sid=eccb5ae5 ... 40#p773162
1) Beim ersten ausführen des Flows:
"Patch, nur einmal nötig" klicken, geht schnell, dann .... 2)
2) "Update NodeRed, nur einmal nötig" und warten bis der Node "Ausführen" fertig ist.
3) Jetzt NodeRed neu starten.
4) Dann "True" um neue (aktuelle) node.js zu laden.
(Dieser Zweig wird täglich einmal automatisch durchlaufen)
5) Mit "Nach CCU Update oder bei neuer node.js" installieren,
dauer länger und wenn es fertig ist,
6) die CCU neu starten.
RaspberryMatic auf Raspberry Pi 4 2Gbyte
-
- Beiträge: 184
- Registriert: 14.10.2011, 09:05
- System: CCU
- Wohnort: Bremen
- Hat sich bedankt: 58 Mal
- Danksagung erhalten: 7 Mal
Re: ModBus TCP Interface
Noch ein Hinweis zu meinem Flow:
Der Hausverbrauch wird im Flow berechnet, und nicht über ModBus abgefragt.
Dazu werden die Werte Solarleistung - Netzeinspeisung - Batterieladung berechnet, wenn einer der drei Werte eintrifft. D.h. die Werte sind nicht synchronisiert und erzeugen dadurch manchmal unplausible Ergebnisse, besonders wenn Wolken über die Panels ziehen und der Wert für Batterieladung drei Zyklen alt ist
P.S. mein Flow liest alle 15 Sec die Werte aus dem Wechselrichter. Das Fusion Portal nur alle 5 Minuten. Dadurch sehen die Charts im Fusion Portal wesentlich glatter aus
Der Hausverbrauch wird im Flow berechnet, und nicht über ModBus abgefragt.
Dazu werden die Werte Solarleistung - Netzeinspeisung - Batterieladung berechnet, wenn einer der drei Werte eintrifft. D.h. die Werte sind nicht synchronisiert und erzeugen dadurch manchmal unplausible Ergebnisse, besonders wenn Wolken über die Panels ziehen und der Wert für Batterieladung drei Zyklen alt ist
P.S. mein Flow liest alle 15 Sec die Werte aus dem Wechselrichter. Das Fusion Portal nur alle 5 Minuten. Dadurch sehen die Charts im Fusion Portal wesentlich glatter aus
Zuletzt geändert von drose28357 am 28.08.2023, 17:26, insgesamt 1-mal geändert.
RaspberryMatic auf Raspberry Pi 4 2Gbyte
-
- Beiträge: 184
- Registriert: 14.10.2011, 09:05
- System: CCU
- Wohnort: Bremen
- Hat sich bedankt: 58 Mal
- Danksagung erhalten: 7 Mal
Re: ModBus TCP Interface
Der Wert für den Lesenden Zugriff findest du in der Tabelle der auslesbaren Register der SUN-WR. Bei mir sit es ausschließlich "03".
Der Modbaus kommt aus der Urzeit der programierbaren Steuerungen. Daher kann das Protokoll z.B. einzelne Bits in einem Register setzen oder lesen. Dabei muss man wissen, das das Aktivieren eines Bits gleichbedeutend ist mit dem Einschalten und Auschalten eines Relais. Daher read coils" um den Status einer Ralais-Spule auszulesen.
Wir die Abfrage von Werten werden eigentlich immer "read holding register" benutzt.
Im Huawei-Dokument steht dann z.B.
Code: Alles auswählen
No. Signal Name Read/Write Type Unit Gain Address Quantity Scope
56 [Power meter collection] Active power* RO I32 W 1 37113 2 > 0: feeding power to the power grid
< 0: obtaining power from the power grid
ReadWrite = RO = Functioncode 03
Datentyp Integer 32 = 2 x 16 Bit Register. Das kann man in NodeRed mit dem Parse-Node gut umrechnen
Unit = Watt
Gain: Skalierung = 1
Quatity: Die Abfrage sollte ab der Adresse zwei 16-Bit Register liefern
P.S. Man kann mit modbus aus Daten schreiben, das ist jedoch sehr gefährlich.... Dazu verwendet man andere function codes als die oben angezeigten.
RaspberryMatic auf Raspberry Pi 4 2Gbyte
-
- Beiträge: 50
- Registriert: 14.03.2016, 08:11
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 1 Mal
Re: ModBus TCP Interface
Guten Tag,
evtl kann mir jemand weiterhelfen?
Ich habe eine Ochsner Warmwasserwärmepumpe Europa 333 Genius.
Diese hat modbus RTU.
Die Verbindung, Datenabfrage mit PC (RMMS) funktioniert, und auch mit dem handy android modbus viewer funktioniert auch.
Meine hardware um auf den modbus RTU zu gehen: "Waveshare Industrial Serial Server RS485 to RJ45 Ethernet TCP/IP to Serial Module Support Rail-Mount Modbus Gateway"
Firmeware raspberrymatic: Aktuelle Firmwareversion: 3.71.12.20230826
tcl scripte sind abgelegt und freigegeben Info zur WWP: Bekomme nur eine Null zurück:
auch über cuxD hat es nicht funktioniert.
Ich habe auch im tcl script die modbus parität auf even geändert, auch leider ohne Erfolg.
Wo könnte ich noch nachschauen, oder was testen?
evtl kann mir jemand weiterhelfen?
Ich habe eine Ochsner Warmwasserwärmepumpe Europa 333 Genius.
Diese hat modbus RTU.
Die Verbindung, Datenabfrage mit PC (RMMS) funktioniert, und auch mit dem handy android modbus viewer funktioniert auch.
Meine hardware um auf den modbus RTU zu gehen: "Waveshare Industrial Serial Server RS485 to RJ45 Ethernet TCP/IP to Serial Module Support Rail-Mount Modbus Gateway"
Firmeware raspberrymatic: Aktuelle Firmwareversion: 3.71.12.20230826
tcl scripte sind abgelegt und freigegeben Info zur WWP: Bekomme nur eine Null zurück:
Code: Alles auswählen
string lGetOut;
string lGetErr;
var WWP_Warmwassertemperatur;
var WWP_Warmwassertemperatur = system.Exec("tclsh /usr/local/addons/modbus/modbus_interface.tcl 192.168.178.185 502 01 04 2000 1",&lGetOut,&lGetErr);
WriteLine(WWP_Warmwassertemperatur);
Ich habe auch im tcl script die modbus parität auf even geändert, auch leider ohne Erfolg.
Wo könnte ich noch nachschauen, oder was testen?
Re: ModBus TCP Interface für Huawei Wechselrichter
Danke für dienen Beitrag ...
Da ich mich erst mit NoteRed beschäftige, wollte ich fragen ob man die Werte dann auch in eine Varible in Homematic schreiben kann ?
Dein Post gibt mir Hoffnung das ich diese Werte dann in Homematic bringe.. Aktuell habe ich einen Fornius da läuft ein Skript das problemlos einfach zu integrieren war
LG
Da ich mich erst mit NoteRed beschäftige, wollte ich fragen ob man die Werte dann auch in eine Varible in Homematic schreiben kann ?
Dein Post gibt mir Hoffnung das ich diese Werte dann in Homematic bringe.. Aktuell habe ich einen Fornius da läuft ein Skript das problemlos einfach zu integrieren war
LG
drose28357 hat geschrieben: ↑26.08.2023, 14:12Hallo Huawei-"Freunde",
hier die Register, die ich in NodeRed benutze. Habe die Excel-Datei in eine Texttabelle konvertiert........
Zuletzt geändert von Omen am 22.10.2023, 10:19, insgesamt 1-mal geändert.
-
- Beiträge: 37
- Registriert: 16.05.2020, 21:24
- System: CCU
- Hat sich bedankt: 5 Mal
- Danksagung erhalten: 4 Mal
Re: ModBus TCP Interface
Ja, das ist in nodered total simpel. In dem bereitgestellten Flow sind ja auch schon sysVars enthalten. einfach umbennen bzw. entsprechende sysVars in deiner ccu erzeugen. Diese werden dann beschrieben.