ModBus TCP Interface

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Balisto
Beiträge: 50
Registriert: 14.03.2016, 08:11
Hat sich bedankt: 10 Mal
Danksagung erhalten: 1 Mal

Re: ModBus TCP Interface

Beitrag von Balisto » 18.08.2023, 17:24

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?

Matsch
Beiträge: 5452
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 116 Mal
Danksagung erhalten: 743 Mal

Re: ModBus TCP Interface

Beitrag von Matsch » 18.08.2023, 19:35

Balisto hat geschrieben:
18.08.2023, 17:24
Mit welcher Hardware geht ihr an den ModBus?
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.

drose28357
Beiträge: 183
Registriert: 14.10.2011, 09:05
System: CCU
Wohnort: Bremen
Hat sich bedankt: 57 Mal
Danksagung erhalten: 7 Mal

ModBus TCP Interface für Huawei Wechselrichter

Beitrag von drose28357 » 26.08.2023, 14:12

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.
Dateianhänge
Huawei-Solaranlage_NodeRed-flows.zip
(8.98 KiB) 45-mal heruntergeladen
Huawei-Solaranlage-Dashboard.png
Huawei-Solaranlage-Darstellung.png
Huawei-Solaranlage-Abfragen.png
Homematic_SUN2000_Modbus-Nutzung.pdf
(365.65 KiB) 62-mal heruntergeladen
RaspberryMatic auf Raspberry Pi 4 2Gbyte

Tincup
Beiträge: 37
Registriert: 16.05.2020, 21:24
System: CCU
Hat sich bedankt: 5 Mal
Danksagung erhalten: 4 Mal

Re: ModBus TCP Interface

Beitrag von Tincup » 27.08.2023, 08:23

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

drose28357
Beiträge: 183
Registriert: 14.10.2011, 09:05
System: CCU
Wohnort: Bremen
Hat sich bedankt: 57 Mal
Danksagung erhalten: 7 Mal

Re: ModBus TCP Interface

Beitrag von drose28357 » 28.08.2023, 16:58

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.
RaspberryMatic auf Raspberry Pi 4 2Gbyte

drose28357
Beiträge: 183
Registriert: 14.10.2011, 09:05
System: CCU
Wohnort: Bremen
Hat sich bedankt: 57 Mal
Danksagung erhalten: 7 Mal

Re: ModBus TCP Interface

Beitrag von drose28357 » 28.08.2023, 17:02

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 :roll: :lol:
Zuletzt geändert von drose28357 am 28.08.2023, 17:26, insgesamt 1-mal geändert.
RaspberryMatic auf Raspberry Pi 4 2Gbyte

drose28357
Beiträge: 183
Registriert: 14.10.2011, 09:05
System: CCU
Wohnort: Bremen
Hat sich bedankt: 57 Mal
Danksagung erhalten: 7 Mal

Re: ModBus TCP Interface

Beitrag von drose28357 » 28.08.2023, 17:24

be.pe hat geschrieben:
06.08.2023, 13:13
Hallo,
Kann mir jemand mal den Unterschied der vier Lese Register erklären:
01 read coils
02 read discrete inputs
03 read holding registers
04 read input registers
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. :shock:

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

Balisto
Beiträge: 50
Registriert: 14.03.2016, 08:11
Hat sich bedankt: 10 Mal
Danksagung erhalten: 1 Mal

Re: ModBus TCP Interface

Beitrag von Balisto » 16.09.2023, 18:06

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
Screenshot 2023-09-16 175723.png
Screenshot 2023-09-16 175723.png (22.07 KiB) 1061 mal betrachtet
Info zur WWP:
Screenshot 2023-09-16 175929.png
Screenshot 2023-09-16 180029.png
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);
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?

Omen
Beiträge: 10
Registriert: 26.02.2019, 11:07
Hat sich bedankt: 2 Mal

Re: ModBus TCP Interface für Huawei Wechselrichter

Beitrag von Omen » 21.10.2023, 22:20

Danke für dienen Beitrag ... :D
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:12
Hallo 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.

Tincup
Beiträge: 37
Registriert: 16.05.2020, 21:24
System: CCU
Hat sich bedankt: 5 Mal
Danksagung erhalten: 4 Mal

Re: ModBus TCP Interface

Beitrag von Tincup » 22.10.2023, 09:14

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.

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“