NEWS
Modbus adapter
-
Ok das Problem mit den diskreten Eingängen hat sich erledigt. Ich verstehe zwar nich warum aber nachdem ich mit verschiedenen höheren Zahlen probiert habe, klappt das jetzt.
Haut jetzt alles wie es soll hin.
-
OK.
Nach dem ersten starten das ich das Device auswählen.
Modbus_RTU_Device.JPG
Wenn ich das gemacht habe, Speicher und beende kommt das im log:
! ````
host.openmediavault 2017-01-17 14:55:27.723 info Restart adapter system.adapter.modbus.1 because enabled
host.openmediavault 2017-01-17 14:55:27.723 error instance system.adapter.modbus.1 terminated with code 0 (OK)
modbus.1 2017-01-17 14:55:27.715 info terminating
modbus.1 2017-01-17 14:55:27.695 error at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20)
modbus.1 2017-01-17 14:55:27.695 error at Socket. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15)
modbus.1 2017-01-17 14:55:27.695 error at Manager.ondata (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:322:16)
modbus.1 2017-01-17 14:55:27.695 error at Decoder.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/socket.io-parser/index.js:246:12)
modbus.1 2017-01-17 14:55:27.695 error at Decoder.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter/index.js:134:20)
modbus.1 2017-01-17 14:55:27.695 error at Decoder. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15)
modbus.1 2017-01-17 14:55:27.695 error at Manager.ondecoded (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:332:8)
modbus.1 2017-01-17 14:55:27.695 error at Manager.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20)
modbus.1 2017-01-17 14:55:27.695 error at Manager. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15)
modbus.1 2017-01-17 14:55:27.695 error at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:236:12)
modbus.1 2017-01-17 14:55:27.695 error at Socket.onack (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:312:9)
modbus.1 2017-01-17 14:55:27.695 error at Socket. (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1253:35)
modbus.1 2017-01-17 14:55:27.695 error at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1365:21
modbus.1 2017-01-17 14:55:27.695 error at /opt/iobroker/node_modules/iobroker.modbus/main.js:1332:13
modbus.1 2017-01-17 14:55:27.695 error at clear (/opt/iobroker/node_modules/iobroker.modbus/main.js:1328:22)
modbus.1 2017-01-17 14:55:27.695 error at Object.main.start (/opt/iobroker/node_modules/iobroker.modbus/main.js:1740:25)
modbus.1 2017-01-17 14:55:27.695 error TypeError: Cannot read property 'on' of null
modbus.1 2017-01-17 14:55:27.694 error uncaught exception: Cannot read property 'on' of null
modbus.1 2017-01-17 14:55:27.693 error Cannot open port "/dev/ttyUSB1" [9600]: TypeError: Cannot read property 'complete' of undefined>! Ich weiß nur nicht warum der Port nicht geöffnet werden kann. >! Und wenn ich jetzt die Instanz wieder öffne, ist der Port Eintrag wieder weg bzw. nicht mehr sichtbar. >! Im Log kommt ständig: >! ```` openmediavault 2017-01-17 15:07:07.966 info host.openmediavault Restart adapter system.adapter.modbus.1 because enabled openmediavault 2017-01-17 15:07:07.966 error host.openmediavault instance system.adapter.modbus.1 terminated with code 0 (OK) modbus.1 2017-01-17 15:07:07.939 error modbus.1 TypeError: Cannot read property 'on' of null at Object.main.start (/opt/iobroker/node_modules/iobroker.modbus/main.js:1740:25) at clear (/opt/iobroker/node_modules/iobroker.modbus/mai modbus.1 2017-01-17 15:07:07.939 error modbus.1 uncaught exception: Cannot read property 'on' of null modbus.1 2017-01-17 15:07:07.937 error modbus.1 Cannot open port "/dev/ttyUSB1" [9600]: TypeError: Cannot read property 'complete' of undefined
Mal alle USB Devices abgezogen und nur den USB-RS485 Adapter angeschlossen.
Dann sehe ich das der ttyUSB0 wird. Aber auch wenn ich den als Port auswähle kommt die gleiche Fehlermeldung. `
Ich habe das gleiche Problem.
mein Log sieht so aus:
`host.raspi3 2017-02-01 01:46:15.092 info Do not restart adapter system.adapter.modbus.0 because disabled or deleted host.raspi3 2017-02-01 01:46:15.084 error instance system.adapter.modbus.0 terminated with code 3 (Adapter disabled or invalid config) host.raspi3 2017-02-01 01:45:50.362 info "system.adapter.modbus.0" disabled host.raspi3 2017-02-01 01:45:50.361 info object change system.adapter.modbus.0 host.raspi3 2017-02-01 01:45:49.076 info instance system.adapter.javascript.0 terminated with code 0 (OK) javascript.0 2017-02-01 01:45:49.016 info Adapter is disabled => stop host.raspi3 2017-02-01 01:45:48.993 info stopInstance system.adapter.javascript.0 killing pid 30477 host.raspi3 2017-02-01 01:45:48.992 info stopInstance system.adapter.javascript.0 host.raspi3 2017-02-01 01:45:48.988 info "system.adapter.javascript.0" disabled host.raspi3 2017-02-01 01:45:48.987 info object change system.adapter.javascript.0 host.raspi3 2017-02-01 01:45:41.861 info Restart adapter system.adapter.modbus.0 because enabled host.raspi3 2017-02-01 01:45:41.860 error instance system.adapter.modbus.0 terminated with code 0 (OK) modbus.0 2017-02-01 01:45:41.795 info terminating modbus.0 2017-02-01 01:45:41.750 error at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20) modbus.0 2017-02-01 01:45:41.750 error at Socket. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15) modbus.0 2017-02-01 01:45:41.750 error at Manager.ondata (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:322:16) modbus.0 2017-02-01 01:45:41.750 error at Decoder.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/socket.io-parser/index.js:246:12) modbus.0 2017-02-01 01:45:41.750 error at Decoder.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/socket.io-parser/node_modules/component-emitter/index.js:134:20) modbus.0 2017-02-01 01:45:41.750 error at Decoder. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15) modbus.0 2017-02-01 01:45:41.750 error at Manager.ondecoded (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:332:8) modbus.0 2017-02-01 01:45:41.750 error at Manager.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-emitter/index.js:133:20) modbus.0 2017-02-01 01:45:41.750 error at Manager. (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/node_modules/component-bind/index.js:21:15) modbus.0 2017-02-01 01:45:41.750 error at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:236:12) modbus.0 2017-02-01 01:45:41.750 error at Socket.onack (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:312:9) modbus.0 2017-02-01 01:45:41.750 error at Socket. (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1253:35) modbus.0 2017-02-01 01:45:41.750 error at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1365:21 modbus.0 2017-02-01 01:45:41.750 error at /opt/iobroker/node_modules/iobroker.modbus/main.js:1332:13 modbus.0 2017-02-01 01:45:41.750 error at clear (/opt/iobroker/node_modules/iobroker.modbus/main.js:1328:22) modbus.0 2017-02-01 01:45:41.750 error at Object.main.start (/opt/iobroker/node_modules/iobroker.modbus/main.js:1740:25) modbus.0 2017-02-01 01:45:41.750 error TypeError: Cannot read property 'on' of null modbus.0 2017-02-01 01:45:41.736 error uncaught exception: Cannot read property 'on' of null modbus.0 2017-02-01 01:45:41.720 error Cannot open port "/dev/ttyUSB0" [9600]: TypeError: Cannot read property 'complete' of undefined modbus.0 2017-02-01 01:45:40.406 info starting. Version 0.4.7 in /opt/iobroker/node_modules/iobroker.modbus, node: v4.7.2 ... ... modbus.0 2017-02-01 01:44:25.958 info List of port: [{"comName":"/dev/ttyAMA0"},{"comName":"/dev/ttyUSB0","manufacturer":"FTDI","serialNumber":"FTDI_FT232R_USB_UART_A603O55Y","pnpId":"usb-FTDI_FT232R_USB_UART_A603O55Y-if00-port0","vendor[/code]` Der rs-485 Adapter stammt aus dem Laden mit dem blauen C. Wie kann ich mich nützlich machen, damit das Problem behoben werden kann?
-
Bluefox wollte sich die Hardware besorgen und dann untersuchen. Glaube bis dahin können wir nicht viel machen außer einen Workaround zu nutzen.
Gesendet von iPhone mit Tapatalk Pro
-
Ich habe mir das auf einem PI installiert
Den USB-RS485 Adapter an den pi und das dann über den iobroker Modbus Adapter per TCP angesprochen.
Gesendet von iPhone mit Tapatalk Pro
-
Aha; verstehe die Idee. Muss ich am Abend testen…
Ich könnte auch vom pi die Daten an node-red senden oder per js vom alten python crawler pollen.
Ist eh etwas trickig, da ich 2 modbus Zähler hab. Das lässt sich aktuell noch nicht mit dem Adapter instanzieren.
Mal sehen wie's weiter geht. Habe nun gesehen, das auch schon ein SmartMeter Adapter gibt.
Wenn der Modbus könnte ! oder man die zwei linken kann ... -> Es hört nie auf :lol:
-
Du kannst doch auch zwei Modbus Adapter installieren
Gesendet von iPhone mit Tapatalk Pro
-
Könnt ich schon; aber ob die dann mit dem einen USB-Adapter und dem einen Bus-Kabel so richtig klar kommen?? :roll:
-
Also wenn du das über mbusd von rs485 zu TCP machst kannst du jeder Instanz eine andere Id geben.und die einzeln abfragen.
Hab so 3 slaves angesprochen. War bei mir aber instabil also mbusd ist ganz gerne Mal ausgestiegen.
Und jede Instanz will ca 30mb RAM.
Bei mir werden es 20-30 slaves wenn alles aus gebaut ist. Werde dann wohl 2-3 Pi nehmen. Dann ist auch nicht alles platt wenn Mal einer ausfällt.
Gesendet von meinem Pixel mit Tapatalk
-
Leider kann ich das zZ noch nicht testen, da bei mir der modbus Adapter nicht läuft.
Jedoch habe ich mir ein paar Gedanken dazu gemacht.
Installieren von mehreren Instanzen des Adapters gegen die gleiche Schnittstelle macht womöglich Probleme.
Möglicherweise ist das (mit @Bluefox 's Hilfe) auch nicht nötig. Der Adapter hat ev. eine kleine Designschwäche. -> :idea:
Da die Client-Adresse mit der Connection nichts zu tun hat, sondern im modbus-Paket zur Adressierung verwendet wird, könnte mann diesen Parameter auch bei jedem einzelnen Datenpunkt einstellen. Somit wäre es möglich so viele Clients anzusprechen bis der Bus platzt (mit nur einer Instanz). Eine weitere Instanz wäre dann nur Nötig, wenn ein zusätzlicher USB-Adapter von Nöten wäre.
-
Endlich noch jemand der den Wunsch äußert das die ID bei den Registern jeweils festgelegt wird.
Ich bin nicht allein….[emoji23]
Gesendet von meinem Pixel mit Tapatalk
-
So: Modbus Adapter schein nun rudimentär zu laufen. Muss dann morgen etwas genauer schauen wieso die Register nicht gleich adressiert werden müssen wie im Handbuch vom Gerät??
-
Hast du ihn mit nem serial USB Adapter laufen ?
Gesendet von meinem Pixel mit Tapatalk
-
Jepp. so ein ^noname?^Ding vom blauen C (CH).
-
OK welchen Chip hast da drauf
Gesendet von meinem Pixel mit Tapatalk
-
who knows.
Aber das ist aus dem Log:```
modbus.0 2017-02-01 01:44:25.958 info List of port: [{"comName":"/dev/ttyAMA0"},{"comName":"/dev/ttyUSB0","manufacturer":"FTDI","serialNumber":"FTDI_FT232R_USB_UART_A603O55Y","pnpId":"usb-FTDI_FT232R_USB_UART_A603O55Y-if00-port0","vendor[/code]
Nachtrag: Habe noch folgenden Hinweis in meinen Unterlagen gefunden: Conrad Y-1081->RS485Zudem hatte ich davor mit raspicomm versucht und bin gescheitert. - Das war aber noch mit dem Python Crawler
-
So: Modbus Adapter schein nun rudimentär zu laufen. Muss dann morgen etwas genauer schauen wieso die Register nicht gleich adressiert werden müssen wie im Handbuch vom Gerät?? `
Musst mal schauen ob das eventuell etwas mit dem Haken "verwende Aliase" zu tun hat.
Kann gerade nicht genau sagen wie der heißt da kein Zugriff auf den Adapter.
Gesendet von iPhone mit Tapatalk Pro
-
Das Alias-Dingens muss bei mir raus. Das zerlegt die Adressen. Hab aber noch nicht gecheckt, wie?!
-
Ok.
Dann meinst z.b. "Holding Register" usw!?
Das habe ich bei meinem Zaehler auch.
Hatte da mal irgendwo in den unweiten des WWW ne Erklärung zu gefunden warum das manchmal "anders" abgefragt werden muss.
Aber ich weiß nicht mehr wo das war [emoji20]
Gesendet von iPhone mit Tapatalk Pro
-
Das ist sowiso -pain in the ass-
Mein Schneider Zähler hat so ein komisches Big-Endian Problem und will zudem die meisten Angaben in Float-Registern.
Zu allem Übel haut das aber meine Adressen über den Haufen. Je nach Werkzeug (Programm) muss ich die Adressen schieben, damit die Werte richtig kommen.
Z.B. steht in meinem Handbuch zum Thema Spannung auslesen: Register:3036 Action:R Länge:2 Typ:Float32 Einheit:V Beschreibung:Spannung L–N Mittel.
Wenn ich nun das mit MinimalModbus(Python) lesen möchte, muss ich die Adresse 3036 verwenden. Jedoch bei bei PyModbus oder ioBroker.Modbus die Adresse 3035.
Ich habe dann einfach mal von 3030..3040 eingerichtet und geschaut wo Werte um 235 zurückkommen -> Glück gehabt bei 3035
-
Bei mir haben sich die Fehler Meldung stark reduziert.
Aber sobald ich mit meinem Slave verbinden will gibt es timeouts und dann disconnect allerdings komischerweise von 127.0.0.1.
Mit mbusd läuft es aber.
Zu erst hat er auch keine serial Ports gefunden und das Feld war Grau hinterlegt. Nach dem vierten Mal öffnen ging es dann endlich
Gesendet von meinem Pixel mit Tapatalk