Verbindng eines Modbus-Adapters mit drei Stromzählern

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Optimus#1978#
Beiträge: 34
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: 302
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.3.0 auf HP 26o G1 Dm Mini Pc mit MX_Linux

mad-mike
Beiträge: 491
Registriert: 6. Jan 2021 18:05
Answers: 3

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

Beitrag von mad-mike »

Moin,

Gibt es hier Erfolg?

hast du mit einem (1x) gateway (485 -> tcp) 3x zähler am auslesen??

sozusagen den 485 Bus geschliffen von Zähler zu Zähler?

Wenn ja, kannst du deine -Thing datei einstellen??
Gruss mad-mike

openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB) ;)

Benutzeravatar
udo1toni
Beiträge: 15243
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

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

Beitrag von udo1toni »

Ich habe zufällig gestern ein Video auf youtube gesehen, eine Produktvorstellung eines RS485-zu-MQTT Gateways von Eltako, mit dem sich beliebige ELTAKO RS-485 Zähler per MQTT einbinden lassen. Das Gateway wird in der nächsten Firmware Version bis zu 16 Zähler gleichzeitig unterstützen.
Es gibt wohl auch Pläne, auch Fremdgeräte zu unterstützen, wobei man da dann wieder mit den Registern kämpfen darf, was mit den ELTAKO Zählern natürlich entfällt.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

mad-mike
Beiträge: 491
Registriert: 6. Jan 2021 18:05
Answers: 3

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

Beitrag von mad-mike »

Danke für den Tipp. :!: hab's gleich Mal gespeichert...

Dennoch mal die Frage zu dem Bus an sich.

Also ich habe Test halber einen rs485 zu USB mit einem sdm 630 verbunden.

Erstmal über die ui. Dann kam auch das Symbol der Verbindung auf dem Zähler.

Nach dem ich aber versucht habe eine Thing Text datei zu erstellen, bekomme ich den USB Stick nicht mehr zum laufen. Auch nicht über die ui...

Dann Frage ich mich weiter, wie ich dann auch Differenzieren kann zwischen Zähler 1 und 2.

Sprechen ich denn direkt eine Id an? Ich weiss leider nicht wie.
Gruss mad-mike

openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB) ;)

Benutzeravatar
udo1toni
Beiträge: 15243
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

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

Beitrag von udo1toni »

RS485 ist ein Bus, das heißt, die Geräte werden alle über die selben Drähte miteinander verbunden. Der Bus ist als Kette auszulegen, das erste und das letzte Gerät in der Kette benötigt einen Abschlusswiderstand über die Datenleitung.
Und weil es ein Bus ist, muss jedes Gerät eine eindeutige Adresse bekommen, das ist die ID.
Und da liegt auch schon der Hase im Pfeffer (oder so ähnlich), denn openHAB kann in Modbus nur eine ID verwenden.
Vielleicht liege ich da aber auch komplett falsch :) ich kenne Modbus nicht aus der Praxis.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

violine21
Beiträge: 600
Registriert: 20. Sep 2019 05:49
Answers: 7

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

Beitrag von violine21 »

udo1toni hat geschrieben: 17. Aug 2024 21:23 Und da liegt auch schon der Hase im Pfeffer (oder so ähnlich), denn openHAB kann in Modbus nur eine ID verwenden.
Du kannst doch mehrere Modbus TCP Slaves/Modbus Serial Slaves mit jeweils anderen ID's anlegen. Die dienen als Bridge
für die verschiedenen Geräte. Aktuell habe ich nur ein Modbus-Gerät aber ich hatte das auch schon mit zwei Geräten laufen.

Benutzeravatar
udo1toni
Beiträge: 15243
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

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

Beitrag von udo1toni »

Mein Verständnis von Modbus ist allerdings, dass ich eine Schnittstelle nutze und alle Geräte über diese eine Schnittstelle angebunden sind. Die ID ist aber Bestandteil der Schnittstelle...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

violine21
Beiträge: 600
Registriert: 20. Sep 2019 05:49
Answers: 7

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

Beitrag von violine21 »

udo1toni hat geschrieben: 18. Aug 2024 00:59 Mein Verständnis von Modbus ist allerdings, dass ich eine Schnittstelle nutze und alle Geräte über diese eine Schnittstelle angebunden sind. Die ID ist aber Bestandteil der Schnittstelle...
Bei der Konfiguration des Geräts (nicht in OH), in diesem Fall Stromzähler legt man die ID fest. Dann hängen die Geräte am Bus und jedes hat eine andere ID (Busadresse). Jedes Gerät hat in OH dann seine eigene Modbus-Bridge.

mad-mike
Beiträge: 491
Registriert: 6. Jan 2021 18:05
Answers: 3

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

Beitrag von mad-mike »

Danke jetzt hat's klick gemacht.

Bis jetzt habe ich immer nur 1zu1 Verbindung mit modbus.

Sprich:

TCP Gateway 485 zu Wechselrichter....
Oder
USB 485 zu smart Meter....

Aber mehrere Thing datein zu erstellen ist ja absolut logisch damit ich die ID entsprechend setzen kann....

Nur irgendwie zickt der USB immer Rum.
Gruss mad-mike

openHABian 4.3.5 auf Raspberry Pi 4 Mod. b (8GB) ;)

Antworten