NEWS
Modbus adapter
Modbus adapter
-
Hallo zusammen,
ich habe 2 Instanzen des Modbus-Adapter im Einsatz (1xWechselrichter PV-Anlage, 1x Batteriewechselrichter).
Läuft seit ca. 1 Jahr alles prima.
Habe nach Neuinstallation des gesamten Systems Probleme, deren Ursache (Zeitpunkt/Versionen) ich leider nicht mehr nachvollziehen kann.
Ich berechne den Gesamtverbrauch des Hauses mit:

Alle Werte aus dem Adapter in kWh, da quasi Zählerstände.
Ich ziehe vom PV-Ertrag die Batterieladung und die Netzeinspeisung ab und addiere die Batteieentladung und den Netzbezug auf.
Funktioniert auch tadellos.
Der Adapter setzt die Werte für PV-Ertrag, Batterie(ent-)ladung um Mitternacht auf "0", weshalb meine Berechnung durcheinanderkommt.
PV-Ertrag:

Batterieladung:

Batterie-Entladung:

Die "0"-Werte machen ja bei dem "Zählerstand" keinen Sinn. Kann ich in den Einstellungen des Adapters verhindern, dass die "0"-Werte geschrieben werden?
Viele Grüße
onkel-ede -
Hallo,
Ich bin ein umsteiger von OpenHab zu IoBroker.
Habe mit dem Modbus ähnliche probleme wie @TimoS .
Ich kann mit dem Adapter die Werte (Holding und Eingangsregister) aus mein Lüftungsgerät auslesen. Kann aber nicht ins Holding schreiben.
modbus.0 2019-12-21 13:42:24.032 warn (7404) Poll error count: 1 code: "App Timeout" modbus.0 2019-12-21 13:42:23.189 error (7404) Cannot write [1003]: {"err":"timeout"} modbus.0 2019-12-21 13:42:23.187 error (7404) Request timed out. modbus.0 2019-12-21 13:42:23.184 warn (7404) Error: undefined modbus.0 2019-12-21 13:42:18.212 error (7404) unknown function code: 134Dieses hatte bei OpenHab ohne probleme Funktioniert.
Link zur Docu vom Lüftungsgerät
ZurZeit ist der Modbus 2.0.9 installiert. den 3.0.0 kann ich nicht Installieren weder über SSH mit npm i iobroker.modbus oder über das Webinterface.adapter etc. sind alle soweit aktuell. (Laut Webinterface)
MfG Umsteiger
Edit: Ok habe herrausgefunden wie man den Modbus3.0 installiert.
Wird der FC06 oder der FC16 beim schreiben verwendet.kann man das evtl. im log sehen?
@Umsteiger Hast du dein Gerät irgendwie mit dem Modbusadapter ansprechen können? Mein Gerät akzeptiert immer noch keine Werte. Es kann definitiv nur etwas mit FC16 anfangen.
EDIT: Habe einen weg gefunden: https://github.com/ioBroker/ioBroker.modbus/issues/54
Wenn man in der master.js (Version 3.1.4) die Zeile:if (objects[id].native.len > 1 && !options.config.doNotUseWriteMultipleRegisters) {
auskommentiert bzw. löscht und stattdessen:
if ( !options.config.doNotUseWriteMultipleRegisters) {
nutzt, funktioniert es mit dem Schreiben eines Wertes.
-
Servus zusammen,
weiß nicht ob das Problem schon mal angesprochen wurde, aber bei mir stehen in den Objekten andere ID´s als im Eingangsregister des Adapters.
Jemand eine Idee woran das liegen kann?!EDIT: Problem gefunden bzw. Logik. In den Objekten wird jede ID eine Stufe tiefer erstellt!!
Aus 30002 wird dann 30001. Wtf?!PS: wenn ich die Werte im Eingangsregister eintrage, übernimmt er die Nummern auch nicht, sondern zählt fortlaufend weiter...
-
Servus zusammen,
weiß nicht ob das Problem schon mal angesprochen wurde, aber bei mir stehen in den Objekten andere ID´s als im Eingangsregister des Adapters.
Jemand eine Idee woran das liegen kann?!EDIT: Problem gefunden bzw. Logik. In den Objekten wird jede ID eine Stufe tiefer erstellt!!
Aus 30002 wird dann 30001. Wtf?!PS: wenn ich die Werte im Eingangsregister eintrage, übernimmt er die Nummern auch nicht, sondern zählt fortlaufend weiter...
@Habedere
Ich habe eine neue Heizung bekommen die ich nun einbinden wollte, da dachte das ist ja einfach es gibt ja schon einen Adapter. Den ganzen Tag probiere ich es.
Mit ModBus Scanner die Adressen ausgelesen ob die laut Hersteller auch stimmen. Klappte auch ohne Probleme, nur im Adapter lief das nicht. Bis mir eben aufgefallen ist, dass wenn man den Adapter STOPPT und die Werte nun ändert und danach den Adapter wieder aktiviert, läuft alles wie es soll und der liest auch die richtigen Werte aus von der richtigen Adresse. -
@Habedere
Ich habe eine neue Heizung bekommen die ich nun einbinden wollte, da dachte das ist ja einfach es gibt ja schon einen Adapter. Den ganzen Tag probiere ich es.
Mit ModBus Scanner die Adressen ausgelesen ob die laut Hersteller auch stimmen. Klappte auch ohne Probleme, nur im Adapter lief das nicht. Bis mir eben aufgefallen ist, dass wenn man den Adapter STOPPT und die Werte nun ändert und danach den Adapter wieder aktiviert, läuft alles wie es soll und der liest auch die richtigen Werte aus von der richtigen Adresse.@oliver2017 Danke, gut zu wissen.
-
@Habedere
Ich habe eine neue Heizung bekommen die ich nun einbinden wollte, da dachte das ist ja einfach es gibt ja schon einen Adapter. Den ganzen Tag probiere ich es.
Mit ModBus Scanner die Adressen ausgelesen ob die laut Hersteller auch stimmen. Klappte auch ohne Probleme, nur im Adapter lief das nicht. Bis mir eben aufgefallen ist, dass wenn man den Adapter STOPPT und die Werte nun ändert und danach den Adapter wieder aktiviert, läuft alles wie es soll und der liest auch die richtigen Werte aus von der richtigen Adresse.@oliver2017 sagte in Modbus adapter:
@Habedere
Ich habe eine neue Heizung bekommen die ich nun einbinden wollte, da dachte das ist ja einfach es gibt ja schon einen Adapter. Den ganzen Tag probiere ich es.
Mit ModBus Scanner die Adressen ausgelesen ob die laut Hersteller auch stimmen. Klappte auch ohne Probleme, nur im Adapter lief das nicht. Bis mir eben aufgefallen ist, dass wenn man den Adapter STOPPT und die Werte nun ändert und danach den Adapter wieder aktiviert, läuft alles wie es soll und der liest auch die richtigen Werte aus von der richtigen Adresse.Hmm aber der Adapter macht ja automatisch einen restart wenn man etwas ändert oder?
-
@oliver2017 sagte in Modbus adapter:
@Habedere
Ich habe eine neue Heizung bekommen die ich nun einbinden wollte, da dachte das ist ja einfach es gibt ja schon einen Adapter. Den ganzen Tag probiere ich es.
Mit ModBus Scanner die Adressen ausgelesen ob die laut Hersteller auch stimmen. Klappte auch ohne Probleme, nur im Adapter lief das nicht. Bis mir eben aufgefallen ist, dass wenn man den Adapter STOPPT und die Werte nun ändert und danach den Adapter wieder aktiviert, läuft alles wie es soll und der liest auch die richtigen Werte aus von der richtigen Adresse.Hmm aber der Adapter macht ja automatisch einen restart wenn man etwas ändert oder?
-
Hi
Hat schon mal wer die Verbindung zum CMI von TA geschafft? Mit einer Slave App lässt sich das cmi problemlos erreichen, mit ioBroker bekomm ich keine Verbindung... Ideen?Die Einstellung Master im Adapter... heißt das, dass der Adapter Master ist oder ist es dann der Partner?
-
Hi
Hat schon mal wer die Verbindung zum CMI von TA geschafft? Mit einer Slave App lässt sich das cmi problemlos erreichen, mit ioBroker bekomm ich keine Verbindung... Ideen?Die Einstellung Master im Adapter... heißt das, dass der Adapter Master ist oder ist es dann der Partner?
-
Hi
Hat schon mal wer die Verbindung zum CMI von TA geschafft? Mit einer Slave App lässt sich das cmi problemlos erreichen, mit ioBroker bekomm ich keine Verbindung... Ideen?Die Einstellung Master im Adapter... heißt das, dass der Adapter Master ist oder ist es dann der Partner?
-
Hallo zusammen,
ich habe mir einen SDM230 gekauft, um mit dem Todbus-Adapter die Daten auszulesen. Ich haben den IObroker auf einem RaspberryPi4, welcher per USB einen RS485-Adapter hat. Ich bekomme den Modbus-Adapter auf "Gründ" und es kommen auch werte. Nur habe ich leider keine Ahnung, wie ich die Register einstelle.
Hat zufällig einer von den SDM230 und kann mir weiter helfen?
Danke schon mal
-
Hi, danke für die Tips, hab das probiert aber leider ohne Erfolg ...
ich bekomme folgende Logs: (mit Adresse 0.0.0.0 und mit der IP des CMI)

kann wer was damit anfangen?
UPDATE: geht wohl um Port 502 ... bei 5020 funkts ...
Hallo
Im Cmi kannst du unter Ethernet den Port einstellen. Bei mir zb. 502. Hast du schon mal Daten zum CMI ueber Modbus gesendet. Bei funktioniert lesen sehr gut, schreiben geht nur wenn ich den Wert im Holding Register mit der Hand eintippe. Sobald ich einen Wert zb mit Blockly aus der Homematic lese und in das Register schreibe ändert sich diese im CMI nicht. Hat hier jemand eine Idee? Vielleicht unterschiedliche Datentypen!?
Nachtrag:
Habe eben mir mal die Datentypen der Homematic angeschaut. Temperatur Sollwert wird als float also als eine 32 Bit Real Zahl definiert. Ab und zu nach der Aenderung überträgt er jetzt. Ergebnis folgt.Gruß
Andreas
-
Hallo
Im Cmi kannst du unter Ethernet den Port einstellen. Bei mir zb. 502. Hast du schon mal Daten zum CMI ueber Modbus gesendet. Bei funktioniert lesen sehr gut, schreiben geht nur wenn ich den Wert im Holding Register mit der Hand eintippe. Sobald ich einen Wert zb mit Blockly aus der Homematic lese und in das Register schreibe ändert sich diese im CMI nicht. Hat hier jemand eine Idee? Vielleicht unterschiedliche Datentypen!?
Nachtrag:
Habe eben mir mal die Datentypen der Homematic angeschaut. Temperatur Sollwert wird als float also als eine 32 Bit Real Zahl definiert. Ab und zu nach der Aenderung überträgt er jetzt. Ergebnis folgt.Gruß
Andreas
@Almi bei mir funktioniert mittlerweile die Kommunikation in beide Richtungen ohne Probleme. Man muss auf die Datentypen aufpassen (primäre signed, unsigned). Auch die Faktoren sind teilweise komisch ... bei den holding Register brauche ich Faktor 10 bei den Eingangsregister Faktor 0,1.
Von den Einstellungen funktioniert’s beim Modbus Adapter mit IP 0.0.0.0, Port habe ich auf 5020 gestellt und Slave

-
@Almi bei mir funktioniert mittlerweile die Kommunikation in beide Richtungen ohne Probleme. Man muss auf die Datentypen aufpassen (primäre signed, unsigned). Auch die Faktoren sind teilweise komisch ... bei den holding Register brauche ich Faktor 10 bei den Eingangsregister Faktor 0,1.
Von den Einstellungen funktioniert’s beim Modbus Adapter mit IP 0.0.0.0, Port habe ich auf 5020 gestellt und Slave

-
Danke Peter für die Antwort, wann verwende ich das holding und wann das Eingangsregister. Mir ist der Unterschied nicht ganz klar.
Gruss
Andreas
-
@Almi
Holding sind die Werte die aus dem C.M.I. importiert werden, Eingangsregister sind die Werte die ich an das C.M.I. sende@peterk34
OK vielen Dank. Wie kann ich ein Eingangsregister hinzufügen? Bei mir ist da kein "+" rechts. Jedes mal wenn ich die Werte eingeben kann ich diese nicht speichern. Wo werden die definiert bzw. wie kann ich was an die Liste anhängen?Gruss
Andreas
-
@peterk34
OK vielen Dank. Wie kann ich ein Eingangsregister hinzufügen? Bei mir ist da kein "+" rechts. Jedes mal wenn ich die Werte eingeben kann ich diese nicht speichern. Wo werden die definiert bzw. wie kann ich was an die Liste anhängen?Gruss
Andreas
-
@Almi
bei mir ist da ein Plus ...
Es funktioniert normalerweise auch wenn du einfach oben in die Felder eingibst und enter drückst
Mmm bei erscheint das Plus nur wenn ich auf Master für den Iobroker Modbus Adapter umstelle. Komischerweise bleibt dann die Einstellung erhalten wenn ich wieder auf Slave umstelle. Einfach eingeben reicht leider zum speichern nicht. Er bietet dann unten nicht die Speicherung an. Ich bleibe drann. Danke für deine Infos
Gruß Andreas
-
Hallo Leute , ich möchte von meinen ABB eQ Energiezähler B-Serie Werte aus der Mapping Tabelle in den Modbusadapter eintragen…
Hardware - Tinkerboard mit USB to serial to RS485. Verbunden mit oben genannten Energiezählern siehe Foto....
Davon habe ich 3 Stück. Für jede Phase einen. L1 hat Modbus Adresse 2 , L2 die 3 und L3 die 4. konfiguriert sind diese mit Baudrate 9600.
Soweit so klar... hoffentlich
Aber jetzt kommt meine mangelnde Kenntnis mit Modbus zum Tragen...
Wie trage ich für die 3 Meßgeräte Werte aus der Mapping Tabelle in den Modbusadapter ein?
Die Werte in der Mappingtabelle sind in hex...Iobroker scheint aber dezimal zu wollen...
Vlt kann mir jemand nur mal für einen Wert aus meiner Mappingtabelle erklären wie ich das für jeweils ein Meßgerät mit z.B dem Wert für KW/h in Hex 5000 ( Dezimal 20480 ) in den IOBroker eintrage...Ich denke dann komme ich klar...
Alias benutzen habe ich nicht selektieret. Die Werte sind sicher unter dem Reiter Holding Register einzutragen...Aber bei Werten um die 20480 bekomme ich nur Fehlermeldungen im Log: invalid holding register adress...
ost.tinkerboard 2018-04-30 02:15:25.795 info instance system.adapter.modbus.0 terminated with code 0 (OK) email.0 2018-04-30 02:15:25.782 info Send email: {"text":"System Adapter meldet Probleme modbus.0.alive","from":"unitybox.de","to":"unitybox.de","subject":"ioBroker"} modbus.0 2018-04-30 02:15:25.768 info terminating host.tinkerboard 2018-04-30 02:15:25.748 info stopInstance system.adapter.modbus.0 killing pid 11926 host.tinkerboard 2018-04-30 02:15:25.748 info stopInstance system.adapter.modbus.0 host.tinkerboard 2018-04-30 02:15:25.747 info object change system.adapter.modbus.0 modbus.0 2018-04-30 02:11:35.063 info List of port: [{"comName":"/dev/ttyS0"},{"comName":"/dev/ttyS3"},{"comName":"/dev/ttyS1"},{"manufacturer":"FTDI","serialNumber":"A600LNZO","pnpId":"usb-FTDI_FT232R_USB_UART_A600LNZO-if00-port0","vend modbus.0 2018-04-30 02:11:23.550 info Connected to slave modbus.0 2018-04-30 02:11:23.322 error Invalid holding register address: -16705
@smartboart
Hast Du das damals hinbekommen? hier: https://forum.iobroker.net/post/149807
Habe einen ABB Zähler da, in der Anleitung steht sowas:
*Dies wird genau so ausgedrückt, wie es auf dem Bus gesendet wird. Das heißt es sollte nicht mit 40 000 subtrahiert oder um 1 vermindert werden, wie das bei Modbus-Produkten üblich ist.
Seite 105 hier https://search.abb.com/library/Download.aspx?DocumentID=2CMC486007M0101&LanguageCode=de&DocumentPartId=&Action=LaunchAllerdings bekomme ich keine Antwort vom Zähler...
@Bluefox wäre es möglich, im Debug oder Silly genau die Kommunikation auszugeben? Ich meine Anfrage-Antwort in hex...

.