Verbindng eines Modbus-Adapters mit drei Stromzählern

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Optimus#1978#
Beiträge: 26
Registriert: 6. Feb 2024 14:29
Answers: 0

Verbindng eines Modbus-Adapters mit drei Stromzählern

Beitrag von Optimus#1978# »

Hallo,

ich möchte die Stromverbrauchswerte meiner beiden Wärmepumpen (Heizung und Warmwasser) sowie die Stromproduktion meiner Solaranlage auslesen und in OpenHAB weiterverarbeiten. Zu diesem Zweck habe ich mir von meinem Elektroinstallateur drei (interne) Stromzähler installieren lassen. Die Stromzähler sind über eine Busleitung an einen Modbus-Adapter angeschlossen. Der Modbus-Adapter wiederum ist über ein LAN-Kabel mit meinem Computer-Netzwerk und damit an mein CMatic-Automatierungssystem (Raspberry Pi4) angeschlossen.

Bislang kommen jedoch noch keine Daten in OpenHAB an.

In OpenHAB werden in meiner "Thing"-Liste drei Einträge mit der Bezeichnung „Modbus TCP Slave“ (modbus:tcp:meter 1 , 2, 3) angezeigt. Hier wird der Status „ONLINE“ in grün angezeigt. Nach meinem Verständnis betreffen diese Einträge den Modbus-Adapter.
Des Weiteren gibt es sechs Einträge „Modbus Data“ mit dem Status „Error:Bridge“ in rot (= Fehler) und weitere sechs Einträge „Regular Poll“, die ebenfalls einen roten Status: „Error:Comm“ haben.

Wie kann ich die Fehlerursache eingrenzen?

oh73
Beiträge: 286
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: Verbindng eines Modbus-Adapters mit drei Stromzählern

Beitrag von oh73 »

Hallo,
da ich die letzten 14 Tage gerade etwas mit dem Modbus von meinem Goodwe Wechselrichter beschäftigt war,
meine Erfahrung dazu.

drei Geräte sollte kein Problem sein, aber um überhaupt eine Chance auf Erfolg zu bekommen,
muss erst mal klar gestellt werden,

hat jeder Zähler eine eigene Ip-Adresse oder zumindest eine eigene Garäte ID?

dann ist die Modbus Abfrage ja so aufgebaut,

erst brauchst du in Thing welches als Bridge eingereichtet wird mit Ip, Id, usw.
dieses Thing geht meisten sof0rt auf Online, egal ob die Parameter stimmen oder nicht!

dann brauchst du einen Poller der sich mit der Bridge verbindet, hier müssen allerdings alle Parameter passen sonst geht der nicht online!

hier mal ein Beispiel aus meiner Things Datei ( ich richte fast immer alles über Text Dateien ein)

Code: Alles auswählen

Bridge modbus:tcp:inverter "Goodwe Inverter 1 Bridge" [ host="192.168.178.78", id=2, timeBetweenReconnectMillis=10000, connectMaxTries=3 ] {

	Bridge poller Vpv1_2 "G-Poll-Vpv" 	[ refresh=6000,  start=35103, length=14, type="holding" ] {
        
		 Thing data	vpv1_35103 	"U16-10_Inverter1_Volt"		[ readStart="35103", readValueType="int16", readTransform="JS(smalimit10_undef.js)" ]
		 Thing data	ipv1_35104	"U16-10_Inverter1_Ampere"	[ readStart="35104", readValueType="int16", readTransform="JS(smalimit10_undef.js)" ]
		 Thing data	Wpv1_35105	"U32-10_Inverter1_Watt"		[ readStart="35105", readValueType="int32" ]
	}
}
die Bridge dürfe dabei noch einfach sein,
schwieriger wird es bei dem Poller,
refresh, muss man versuchen was man da am besten nimmt,
start, ist wichtig und muss passen, aus deiner Zähler Dokumation, falls du sowas hast! ist die erste von mehreren Adressen aus dem Modbus Register.
lenght, ist die Anzahl der Register die du auslesen willst!
dann kommt noch type ! hier unbedingt nachschauen was du brauchst sonst geht gar nichts!

vom stöbern im Internet weiß ich das viele Geräte mit dem type="input" arbeiten,
mein Wechselrichter wollte da aber Type="holding" haben!

wenn das alles stimmt geht auch der Poller auf online!

darunter kommt jetzt noch ein oder mehrer Things vom Typ data .

readStart ist das Register welches du lesen willst,
readValueType sollte in der Dokumation zu finden sein,
readTransform muss nicht sein, bei mir habe ich das allerdings um die Werte gleich durch 10 zu teilen.

das ganze musst du dann für 3 Zähler auch 3 mal haben.

um den Modbus zu testen gibt es aber auch für den Raspi ein gutes Testprogramm "modbus" kann man einfach installieren!
OH 4.0.3 auf HP 26o G1 Dm Mini Pc mit MX_Linux

Antworten