NEWS
Modbus adapter
-
Die Lösung stand übrigens im Issue 204.
Wenn der Adapter als Slave konfiguriert ist und die Holdingregister abgefragt werden sollen, dann muss ein haken in das Feld poll / Abfrage rein. Damit gehts dann.
Morgen kann ich mich also dran setzten und Alle Holdingregister des Zählers anlegen.
-
Hallo zusammen,
ich habe meine Hargassner Pellet Heizung per ModBus an den IOBroker gekopelt und kann so alle Betriebsdaten auslesen bzw. auch steuern.
Das funktioniert aktuell ohne Probleme.
Allerdings möchte ich jetzt die Wochenprogramme der Heizkreise auslesen.
Die sind in 5 zusammenhängenden HoldingRegsiter hinterlegt, z.b: Startadresse 42055 - 42059
Ich kann aber max. 4 Register im Format Unsigned 64 bit (BigEdian) auslesen (bzw. im Dropdownmenü auswählen)
Wenn ich es als String mit Länge 5 auslese funktioniert es, ich bekomme aber keine Daten (nur Blanks) übergeben.
Gibt es eine Möglichkeit 5 zusammenhängende Register im Dezimal Format auszulesen?
Mit den Programm QModMaster kann ich die Werte sauber auslesen (siehe Bild), aber wie bekomme ich sie so in den IOBroker?
Die Zeiten werden in Minuten ab 00:00 Uhr angegeben (dec.) z.B. Startwert1 --> 360 entspricht also 06:00 Uhr --> 6h60 + 0m0 = 360 -
Hallo!
Ich bin schon um einiges weiter gekommen aber stehe vor dem nächsten Problem:
Der Modbusadapter ist als Slave mit der Geräte ID 1 eingerichtet.
Verbindung passt und Werte kann ich auch abfragen.
Problem: Der Modbus Adapter antwortet auf alle ID´s, die auf der IP und dem Port kommen.
Ist auch in Radzio! schön zu sehen. Unabhängig davon welche Geräte ID ich eintippe es wird immer der gleiche Wert ausgegeben.
Ich möchte aber eigentlich nur dieses eine Gerät simulieren. Alle anfragen für andere Geräte ID´s sollen einfach unbeantwortet bleiben.Gibts dafür eine Lösung oder soll ich ein Issue auf Github öffnen?
-
Hallo zusammen,
ich habe auch eine Modbus Karte genau wie @chinaboy in meinem Nano.
Nun habe ich die neueste Firmware an meinem Nano geflasht V14.0n2, hier kann man nun sich die Liste erstellen lassen was man alles auslesen kann.
Jetzt kommen bei mir keine Werte mehr an, kann der Adapter das auslesen? Wenn ja kann einer mal anhand einer Adresse ein Beispiel zeigen?Danke
-
@acidsubway
Servus,
Das sind meine Einstellungen vom Adapterund das die Einstellungen von Holding Register:
Du musst aus deiner CSV Datei in der Spalte Alternative Register die Adresse nehmen und 40000 dazu addieren, das ist dann die richtige Adresse.
Mach mal am Anfang nur einen Wert rein bei den Holding Registern (z.B. 40001) und schau ob der Adapter grün wird. -
-
Danke das klappt, ich wollte schon immer aus meinem ioBroker dem Kessel die Raumtemperatur mitteilen.
Wie machst du das?MfG
-
@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.