NEWS
Modbus adapter
-
@acidsubway
Hab ich leider auch noch nicht umgesetzt, lese momentan nur Werte aus. -
@chinaboy
wenn er die Raumtemperatur kennt, schaltet er die Pumpen ab.Jetzt ist ein anderes Problem aufgetaucht, der QMod bekommt den Wert von Puffer oben her aber, aber der Adapter bleibt leer mit Fehlern´bei dem Wert, warum ?
bitte um Hilfe
-
Hi,
ich habe aktuell auch einen ähnlichen Anwendungsfall wie du.
Ich möchte der Wärmepumpe die IST-Leistung am Einspeisepunkt vorgeben ohne einen extra Zähler mit Modbus-Interface nur für die WP zu setzen.Kannst du bei Gelegenheit bitte noch die Einstellungen vom Waveshare Gateway hier bekannt machen?
Ich bin leider noch nicht so weit, dass eine Kommunikation zwischen IObroker und Gateway besteht.Gruß
Michael
-
Hallo Leute,
ich versuche gerade einen Ultraschall-Durchflussmesser mittels Modbus-RTU in den ioBroker zu integrieren. Leider kann ich keine Verbindung aufrechterhalten.
Folgende Fehlermeldungen bekomme ich:
modbus.1
2022-09-29 21:09:05.268 error Error response: fcmodbus.1
2022-09-29 21:09:02.841 error Error response: 7fmodbus.1
2022-09-29 21:10:12.813 error Error response: f0modbus.1
2022-09-29 21:10:10.401 error Error response: 80modbus.1
2022-09-29 21:10:08.860 error Error response: feDie Instanz springt von grün auf gelb.
In der Anleitung (https://images-na.ssl-images-amazon.com/images/I/91CvZHsNYBL.pdf) des Geräts steht folgendes:
Abrufen will ich ein HOLDING Register (40001)
Habe auch schon 40000 und 40002 sowie alle Möglichkeiten und "Typ" ausprobiert (signed32 .....) Aber laut Anleitung des Geräts scheint FLOAT wohl das richtige zu sein.Kann es sein, dass hier HEX und DEZ irgendwie nicht zusammenpassen?
Was kann ich noch probieren? Sagen die Errors im Log überhaupt etwas aus?Würde mich über einen Rat sehr freuen.
Vielen Dank im Voraus
Matthias
-
@w04g005 loggen mal auf Debug stellen
-
@w04g005 manchmal muss man "alias verwenden" ankreuzen damit die Adressen stimmen
-
Erstmal vielen Dank für die schnellen Antworten. Ich habe auf debug gestellt. und Aliases benutzen aktiviert. Es kommt folgendes:
Wenn ich die 40000 weglasse und wie in der anleitung nur die Register 1 eingebe kommen nochmal andere Fehlermeldungen (Instanz bleibt aber zumindest grün):
Kann man anhand der Anleitung darauf schließen, welche Einstellungen im Modbus Adapter einzustellen sind?
Ich folgere anhand der Angabe "REAL4 is a Format of singular IEEE-754 number, also called FLOAT" dass ich Float einstellen muss.
Bin ich bei Holding-Register überhaupt richtig?
MFG
Matthias -
@w04g005 Bitte keine Screenshots posten. Kann ich mobil nicht lesen und auch nicht zitieren.
Mach eine Terminalsession mit z.B. Putty auf, schaue damit ins log und kopiere den Text hier in Code Tags rein
-
2022-09-30 08:21:28.899 - ^[[32minfo^[[39m: host.Messkoffer instance system.adapter.modbus.1 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION) 2022-09-30 08:21:30.154 - ^[[32minfo^[[39m: host.Messkoffer instance system.adapter.echarts.0 started with pid 3298 2022-09-30 08:21:31.332 - ^[[32minfo^[[39m: host.Messkoffer instance system.adapter.modbus.1 started with pid 3352 2022-09-30 08:21:33.022 - ^[[32minfo^[[39m: host.Messkoffer instance system.adapter.web.0 started with pid 3371 2022-09-30 08:21:35.054 - ^[[32minfo^[[39m: backitup.0 (3279) starting. Version 2.4.10 in /opt/iobroker/node_modules/iobroker.backitup, node: v14.20.0, js-co> 2022-09-30 08:21:35.170 - ^[[34mdebug^[[39m: modbus.1 (3352) Redis Objects: Use Redis connection: 127.0.0.1:9001 2022-09-30 08:21:35.337 - ^[[34mdebug^[[39m: modbus.1 (3352) Objects client ready ... initialize now 2022-09-30 08:21:35.417 - ^[[32minfo^[[39m: backitup.0 (3279) [iobroker] backup was activated at 02:40 every 1 day(s) 2022-09-30 08:21:35.441 - ^[[34mdebug^[[39m: modbus.1 (3352) Objects create System PubSub Client 2022-09-30 08:21:35.445 - ^[[34mdebug^[[39m: modbus.1 (3352) Objects create User PubSub Client 2022-09-30 08:21:35.624 - ^[[34mdebug^[[39m: modbus.1 (3352) Objects client initialize lua scripts 2022-09-30 08:21:35.681 - ^[[34mdebug^[[39m: modbus.1 (3352) Objects connected to redis: 127.0.0.1:9001 2022-09-30 08:21:35.840 - ^[[34mdebug^[[39m: modbus.1 (3352) Redis States: Use Redis connection: 127.0.0.1:9000 2022-09-30 08:21:35.953 - ^[[34mdebug^[[39m: modbus.1 (3352) States create System PubSub Client 2022-09-30 08:21:35.957 - ^[[34mdebug^[[39m: modbus.1 (3352) States create User PubSub Client 2022-09-30 08:21:36.108 - ^[[34mdebug^[[39m: modbus.1 (3352) States connected to redis: 127.0.0.1:9000 2022-09-30 08:21:36.318 - ^[[32minfo^[[39m: echarts.0 (3298) starting. Version 1.0.12 in /opt/iobroker/node_modules/iobroker.echarts, node: v14.20.0, js-cont> 2022-09-30 08:21:36.390 - ^[[34mdebug^[[39m: modbus.1 (3352) Plugin sentry Initialize Plugin (enabled=true) 2022-09-30 08:21:38.263 - ^[[32minfo^[[39m: modbus.1 (3352) starting. Version 5.0.4 in /opt/iobroker/node_modules/iobroker.modbus, node: v14.20.0, js-control> 2022-09-30 08:21:38.794 - ^[[34mdebug^[[39m: modbus.1 (3352) Initialize Objects for disInputs: [] 2022-09-30 08:21:38.796 - ^[[34mdebug^[[39m: modbus.1 (3352) Initialize Objects for coils: [] 2022-09-30 08:21:38.797 - ^[[34mdebug^[[39m: modbus.1 (3352) Initialize Objects for inputRegs: [] 2022-09-30 08:21:38.800 - ^[[34mdebug^[[39m: modbus.1 (3352) Initialize Objects for holdingRegs: [{"_address":"40001","name":"flow","description":"flow","uni> 2022-09-30 08:21:38.804 - ^[[34mdebug^[[39m: modbus.1 (3352) Add holdingRegisters.40001_flow: {"_id":"holdingRegisters.40001_flow","type":"state","common":{"> 2022-09-30 08:21:39.035 - ^[[32minfo^[[39m: host.Messkoffer instance system.adapter.cloud.0 started with pid 3432 2022-09-30 08:21:39.886 - ^[[34mdebug^[[39m: modbus.1 (3352) connect to serial /dev/ttyUSB0 with 9600 2022-09-30 08:21:39.905 - ^[[32minfo^[[39m: web.0 (3371) starting. Version 4.3.0 in /opt/iobroker/node_modules/iobroker.web, node: v14.20.0, js-controller: 4> 2022-09-30 08:21:39.932 - ^[[32minfo^[[39m: modbus.1 (3352) Connected to slave 2022-09-30 08:21:39.936 - ^[[34mdebug^[[39m: modbus.1 (3352) [DevID_1] Poll start --------------------- 2022-09-30 08:21:39.943 - ^[[34mdebug^[[39m: modbus.1 (3352) [DevID_1/holdingRegs] Poll address 40001 - 2 registers 2022-09-30 08:21:40.222 - ^[[31merror^[[39m: modbus.1 (3352) Error response: ba 2022-09-30 08:21:40.247 - ^[[31merror^[[39m: modbus.1 (3352) unknown function code: 0x7e, 0x3f 2022-09-30 08:21:40.272 - ^[[31merror^[[39m: modbus.1 (3352) Error response: 8a 2022-09-30 08:21:40.309 - ^[[31merror^[[39m: modbus.1 (3352) Error response: ff 2022-09-30 08:21:40.451 - ^[[31merror^[[39m: modbus.1 (3352) Error response: fe 2022-09-30 08:21:40.504 - ^[[31merror^[[39m: modbus.1 (3352) Error response: e1 2022-09-30 08:21:40.525 - ^[[31merror^[[39m: modbus.1 (3352) Error response: e2 2022-09-30 08:21:40.621 - ^[[31merror^[[39m: modbus.1 (3352) Error response: fe 2022-09-30 08:21:40.646 - ^[[31merror^[[39m: modbus.1 (3352) Error response: f6 2022-09-30 08:21:40.665 - ^[[31merror^[[39m: modbus.1 (3352) Error response: 7e 2022-09-30 08:21:40.884 - ^[[31merror^[[39m: modbus.1 (3352) unknown function code: 0x19, 0xea 2022-09-30 08:21:40.923 - ^[[31merror^[[39m: modbus.1 (3352) Wrong CRC for frame: 8,4,0,128,244 2022-09-30 08:21:40.943 - ^[[31merror^[[39m: modbus.1 (3352) Error response: ff 2022-09-30 08:21:41.021 - ^[[31merror^[[39m: modbus.1 (3352) Error response: 7e 2022-09-30 08:21:41.057 - ^[[32minfo^[[39m: web.0 (3371) socket.io server listening on port 8082 2022-09-30 08:21:41.076 - ^[[32minfo^[[39m: web.0 (3371) http server listening on port 8082 2022-09-30 08:21:41.372 - ^[[31merror^[[39m: modbus.1 (3352) Error response: fc 2022-09-30 08:21:42.027 - ^[[31merror^[[39m: modbus.1 (3352) Error response: fc 2022-09-30 08:21:42.198 - ^[[32minfo^[[39m: host.Messkoffer instance system.adapter.info.0 started with pid 3498 2022-09-30 08:21:42.253 - ^[[32minfo^[[39m: host.Messkoffer instance system.adapter.text2command.0 started with pid 3504 2022-09-30 08:21:42.461 - ^[[31merror^[[39m: modbus.1 (3352) Error response: 3e 2022-09-30 08:21:42.745 - ^[[31merror^[[39m: modbus.1 (3352) Wrong CRC for frame: 252,5,241,255,240,240,240,252 2022-09-30 08:21:42.773 - ^[[31merror^[[39m: modbus.1 (3352) unknown function code: 0x0, 0x6c 2022-09-30 08:21:42.784 - ^[[31merror^[[39m: modbus.1 (3352) Error response: fe 2022-09-30 08:21:42.795 - ^[[31merror^[[39m: modbus.1 (3352) Error response: fc 2022-09-30 08:21:42.817 - ^[[31merror^[[39m: modbus.1 (3352) Error response: ff 2022-09-30 08:21:42.826 - ^[[31merror^[[39m: modbus.1 (3352) Error response: 9e 2022-09-30 08:21:42.858 - ^[[31merror^[[39m: modbus.1 (3352) Error response: ff
Das kommt jetzt z.B.! Kann man hier irgendwie auf den Fehler schließen? Ich verstehe hier nur böhmische Dörfer.
MFG
Matthias -
Hallo zusammen!
Ich habe ein SDM630 von Eastron und dazu ein Modbus WLAN Gateway von eBay. link
Ich hab den Modbus Adapter in der Version 5.0.4 installiert.
Bei den EInstellung ist die Instanz Modbus Master, IP vom Gateway ist die 192.168.188.70 und Port 502. ID ist auf 1Ich habe Einträge im Eingangsregister sowie im Holding Register probiert. Dabei auch die 3000er sowie 4000er Register versucht.
Er holt sich einmalig beim Adapterstart die Werte und dann erst wieder nach den 60s die ja den Standart unter „ Wartezeit bis zum erneuten verbinden“ entsprechen.
Dazwischen kommen keine Werte, da anscheinend immer wieder die Verbindung zum Slave unterbrochen wird.
Wenn ich hier die zeit auf 5s einstelle bekommen ich zwar alle 5s neue Werte, aber entsprechend startet auch der Adapter wieder neu.Irgendwas ist hier Faul. Über MQTT welches das Gateway unterstützt bekomme ich alle 5s zuverlässig Werte.
Auch über die Weboberfläche des Gateway bekomme ich Werte, nur Modbus macht hier Probleme.Ich habe den Adapter mal auf „Debug“ gestellt und bekomme folgende Meldungen:
modbus.0 2022-10-01 13:42:24.321 info Disconnected from slave 192.168.188.70 modbus.0 2022-10-01 13:42:24.321 debug Closing client on purpose. modbus.0 2022-10-01 13:42:23.320 debug Cleaning up request fifo. modbus.0 2022-10-01 13:42:23.320 debug Clearing timeout of the current request. modbus.0 2022-10-01 13:42:23.320 debug Socket closed with error modbus.0 2022-10-01 13:42:23.314 debug [DevID_2/holdingRegs] Poll address 0 DONE modbus.0 2022-10-01 13:42:23.308 debug [DevID_2/holdingRegs] Poll address 0 - 88 registers modbus.0 2022-10-01 13:42:23.308 debug [DevID_2] Poll start --------------------- modbus.0 2022-10-01 13:42:23.307 info Connected to slave 192.168.188.70 modbus.0 2022-10-01 13:41:23.260 info Disconnected from slave 192.168.188.70 modbus.0 2022-10-01 13:41:23.259 debug Closing client on purpose. modbus.0 2022-10-01 13:41:22.259 debug Cleaning up request fifo. modbus.0 2022-10-01 13:41:22.259 debug Clearing timeout of the current request. modbus.0 2022-10-01 13:41:22.259 debug Socket closed with error modbus.0 2022-10-01 13:41:22.254 debug [DevID_2/holdingRegs] Poll address 0 DONE modbus.0 2022-10-01 13:41:22.247 debug [DevID_2/holdingRegs] Poll address 0 - 88 registers modbus.0 2022-10-01 13:41:22.247 debug [DevID_2] Poll start --------------------- modbus.0 2022-10-01 13:41:22.246 info Connected to slave 192.168.188.70 modbus.0 2022-10-01 13:40:22.243 info Disconnected from slave 192.168.188.70 modbus.0 2022-10-01 13:40:22.243 debug Closing client on purpose. modbus.0 2022-10-01 13:40:21.242 debug Cleaning up request fifo. modbus.0 2022-10-01 13:40:21.242 debug Clearing timeout of the current request. modbus.0 2022-10-01 13:40:21.242 debug Socket closed with error modbus.0 2022-10-01 13:40:21.234 debug [DevID_2/holdingRegs] Poll address 0 DONE modbus.0 2022-10-01 13:40:21.228 debug [DevID_2/holdingRegs] Poll address 0 - 88 registers modbus.0 2022-10-01 13:40:21.227 debug [DevID_2] Poll start --------------------- modbus.0 2022-10-01 13:40:21.227 info Connected to slave 192.168.188.70
Dabei sind die Meldungen „Socket closed with error“ und „ Clearing timeout of the current request“ auffällig.
Hätte hier jemand noch eine Idee was ich probieren könnte?
Vielen Dank!LG Pierre
-
@sidm Da würde ich auf Dein RS485 <-> LAN TCP Interface oder Einstellungsfehler tippen.
Denn der Anverwandte SDM120 läuft bei mir prima, wie ich in jenem Thread beschrieben habe. Auch 2 laufen damit gut.
Normalerweise hole ich die Daten alle 30 Sekunden, weil das für meine Anwendung reicht. Ich habe jetzt mal testweise auf 3sec, also 3000ms gestellt und das geht.
Ich nutze Interfaces von USRIOT.
In einem anderen Thread hat ein user berichtet, daß auch der SDM72 so läuft. Er wird o.g. Thread um seine Erfahrungen ergänzen.Edit:
Beim mir Modbus 5.0.4
Läuft bei Dir MQTT parallel mit Zugriff auf denselben TCP Server? Wie viel Anfragen kann dieser Server gleichzeitig bedienen? -
@klassisch Danke für deine Antwort!
Das ist auch meine Vermutung und habe Parallel schon mal den Hersteller/Verkäufer angefragt. Die Antwort steht dazu noch aus!
Vielleicht kann ja trotzdem jemand was mit LOG anfragen?
Ich werde auf jeden Fall berichten, wenn es etwas neues dazu gibt!Ich habe es mit eingeschalteten MQTT sowie ausgeschaltet probiert. Bei Beiden habe ich das gleiche verhalten.
-
@sidm Bin jetzt nicht der große Modbus-Adapter Experte - eher sehr weit ab davon. Aber vielleicht kannst Du ja mal die Einstellungen im Adapter und im Interface prüfen bzw. die Parallelaktivitäten wie MQTT oder Webinterface stoppen. Vielleicht ist das Ding überlastet oder kann immer nur einen Zugang gleichzeitig offen halten.
Jedenfalls schnurrt mein SDM120 mit dem USRIOT Interface und dem Modbus Adapter auch bei 3000ms klaglos.
Oder ist der SDM630 damit überfordert? Kenne den nicht und er ist auch die nächsten 8 Monate nicht lieferbar. -
@klassisch Nicht Lieferbar? Schau mal bei Amazon! Da ist er sogar günstiger als sonstwo und sofort lieferbar!
Das Webinterface selber, kann man nicht abschalten, bzw. Gibt es keine Einstellung/Option dafür.
Wie gesagt MQTT habe ich im Gateway abgeschaltet und das war auch im Default auf aus.
Als Modbus dann nicht ging, habe ich einfach mal MQTT ausprobiert und das liefert mir zuverlässig alle 5s die Werte.In den Einstellungen vom Modbus Adapter habe ich schon verschiedene Zeiten ausprobiert, aber der Adapter verliert immer wieder die Verbindung.
Ich habe schon mit dem Sacha aus der Facebook „IoBroker SmartHome und IOT“ Gruppe geschrieben und Telefoniert.
Dieser hat die gleiche Kombination wie ich und dort geht es einwandfrei.Wir sind die Einstellung nochmal durchgegangen und konnten keine Abweichungen feststellen.
-
@sidm Probleme mit der RS485 Verkabelung? Eher nicht, dann würde MQTT auch nicht funktionieren.
WLAN-Thema? eher auch nicht, MQTT geht ja.
Seltsame Sache, wenn es andernorts so geht.Hat der Facebook Kollegen den SDM630 aus der selben Quelle wie Du? Vielleicht gibt es dort kleine Unterschiede.
-
@klassisch
Habe gerade diesen Thread gesehen und vielleicht kann wer von Euch mich bezüglich meiner Frage informieren:Ich möchte gerne nachfolgend beschriebe Einrichtung vornehmen, bin mir aber nicht sicher ob das möglich ist!
Router TP Link Archer 600, daran angeschlossen per LAN:
PowerLan adapter Devolo dLAN 1200+ mit gleicher SSID plus 2 Adapter dLAN 1200+ WiFi ac
und
TP Link Deco M4 als Router (Haupt Deco) mit eigener SSID plus 3 Decos => Mesh SystemIst bei dieser Ausführung auch einen Master und ein Slave, wie im Adapter-Info beschrieben, konfigurierbar oder sind zusätzliche Maßnahmen erforderlich?
-
@opa75 Nachtrag; Ich möchte mit den beiden Einrichtungen meine Geräte über einen Iobroker steuern. Geht das überhaupt?
-
@opa75 Offen gestanden habe ich jetzt die Verbindung zu Modbus nicht verstanden. Das scheint eine Frage zur Netzwerkkonfiguration zu sein.
-
@klassisch Meine Frage ist, kann man Iobroker, installiert auf einem Raspy 4, mit 2 verschieden WLAN IP und SSID, Geräte verwalten.
Ich habe gelesen, dass man mit Master und Slave sowas machen kann.Sind dafür meine Geräte geeignet?
-
Ich hab jetzt mal den Stick und das Gerät an meinen PC angeschlossen und hier klappt das Abrufen der Daten wunderbar.
Folgende Einstellungen hab ich dort gewählt. (leider ein screenshot)
Protocol: Modbus RTU
Adressing convention: Register adress (starting from 0)
Bitrate: 9600
Parity: NONE
Stop bits: 1
DTR: Active
RTS: Active
Timeout: 1000ms
Delay between polls: 10ms
Device ID: 1
Holding Registers
Adress: 33 (hab ich jetzt mal beispielsweise ausgewählt)
Length: 10
Display options: 32bit sw. floatJetzt würde mich interressieren, was ich korrekterweise im ioBroker einstellen muss.
DTR /RTS finde ich z.B. gar nichtWelchem TYPE entspricht 32 bit sw. float?
Muss ich als Register bei Holding immer die 40000 voranstellen oder wirklich die 1 oder eben 33?
MFG
Matthias