NEWS
[gelöst] Fehlermeldung Modbus: Unsupported type "undefined"
-
Hallo zusammen,
nachdem ich das Upgrade auf die neue GIT Version des Modbus Adapters gemacht habe, erhalte ich beim Adapterstart im Log folgende Fehlermeldung, und die Werte werden nicht mehr aktualisiert:
modbus-0 2016-10-30 15:17:05.182 error Unsupported type "undefined" modbus-0 2016-10-30 15:17:04.627 info starting. Version 0.4.5 in /volume1/web/iobroker/node_modules/iobroker.modbus
Einen Typ "Undefined" konnte ich nirgends finden:
Hat jemand einen Tipp für mich?
Danke und Gruß
Christian
-
Update: habe jetzt die alte Version wieder installiert (aus NPM). Keine Änderung. Der Adapter ist immernoch tot. Er zeigt zwar an dass er connected sei, es gibt aber keine Updates der Werte.
-
Hast du mal den Host neu gestartet? Bei mir hat er auch manchmal nicht die korrekten Werte im Admin angezeigt.
-
Wie sieht dein Objekt system.adapter.modbus.0 aus?
48_2016-10-31_21_35_04-iobroker.admin.png -
Den Parameter "Type" gibt es nicht:
{ "common": { "name": "modbus", "version": "0.3.11", "title": "ModBus Adapter", "license": "MIT", "platform": "Javascript/Node.js", "mode": "daemon", "loglevel": "info", "icon": "modbus.png", "extIcon": "https://raw.githubusercontent.com/ioBroker/ioBroker.modbus/master/admin/modbus.png", "readme": "https://github.com/ioBroker/ioBroker.modbus/blob/master/README.md", "type": "communication", "installedVersion": "0.3.11", "host": "NAS", "enabled": true, "news": { "0.3.11": { "en": "Fix wrong byte count in loop", "de": "Fix wrong byte count in loop", "ru": "Fix wrong byte count in loop" } }, "desc": { "en": "ModBus connection Slave or Master", "de": "ModBus Verbindung Slave oder Master", "ru": "ModBus соединение Slave или Master" }, "authors": [ "bluefox <dogafox@gmail.com>" ], "keywords": [ "ModBus" ], "config": { "minWidth": 1024, "width ": 1224 } }, "native": { "params": { "bind": "192.168.1.27", "port": "502", "deviceId": "1", "slave": "0", "showAliases": true, "round": "2", "poll": "10000", "recon": "60000", "pulsetime": "1000", "maxBlock": "100", "disInputsOffset": "10001", "coilsOffset": "1", "inputRegsOffset": "30001", "holdingRegsOffset": "40001" }, "disInputs": [], "coils": [], "inputRegs": [], "holdingRegs": [ { "_address": 40080, "name": "VAC L1-N", "description": "VAC L1-N", "unit": "", "type": "uint16be", "len": "1", "factor": "0.1", "offset": "0", "role": "level", "room": "", "poll": false, "wp": false, "cw": false, "address": 79 }, { "_address": 40081, "name": "VAC L2-N", "description": "VAC L2-N", "unit": "", "type": "uint16be", "len": "1", "factor": "0.1", "offset": "0", "role": "level", "room": "", "poll": false, "wp": false, "cw": false, "address": 80 }, { "_address": 40082, "name": "VAC L3-N", "description": "VAC L3-N", "unit": "", "type": "uint16be", "len": "1", "factor": "0.1", "offset": "0", "role": "level", "room": "", "poll": false, "wp": false, "cw": false, "address": 81 }, { "_address": 40086, "name": "Frequenz", "description": "Frequenz", "unit": "", "type": "uint16be", "len": "1", "factor": "0.01", "offset": "0", "role": "level", "room": "", "poll": false, "wp": false, "cw": false, "address": 85 }, { "_address": 40084, "name": "CurrentPower-AC", "description": "aktuelle AC Leistung", "unit": "", "type": "int16be", "len": "1", "factor": "0", "offset": "0", "role": "level", "room": "", "poll": false, "wp": false, "cw": false, "address": 83 }, { "_address": 40099, "name": "Vdc", "description": "Spannung DC", "unit": "", "type": "int16be", "len": "1", "factor": "0.1", "offset": "0", "role": "level", "room": "", "poll": false, "wp": false, "cw": false, "address": 98 }, { "_address": 40085, "name": "ACPF", "description": "AC Power Faktor", "unit": "", "type": "int16be", "len": "1", "factor": "1", "offset": "0", "role": "level", "room": "", "poll": false, "wp": false, "cw": false, "address": 84 }, { "_address": 40108, "name": "OP-State", "description": "Operating_State", "unit": "", "type": "uint16be", "len": "1", "factor": "1", "offset": "0", "role": "level", "room": "", "poll": false, "wp": false, "cw": false, "address": 107 }, { "_address": 40104, "name": "Temp", "description": "Temperatur", "unit": "", "type": "uint16be", "len": "1", "factor": "0.01", "offset": "0", "role": "level", "room": "", "poll": false, "wp": false, "cw": false, "address": 103 } ] }, "acl": { "object": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "_id": "system.adapter.modbus.0", "type": "instance" }</dogafox@gmail.com>
Habe ihn testweise wie auf dem Bild eingefügt, was zu folgenden Logeinträgen führt:
host.NAS 2016-11-01 21:30:02.445 error instance system.adapter.modbus.0 terminated with code 0 (OK) modbus.0 2016-11-01 21:30:02.432 info terminating TypeError: 2016-11-01 21:30:01.925 error at Client.Readable.push (_stream_readable.js:126:10) TypeError: 2016-11-01 21:30:01.925 error at readableAddChunk (_stream_readable.js:163:16) TypeError: 2016-11-01 21:30:01.925 error at Client.StackEmitter.emit (/volume1/web/iobroker/node_modules/iobroker.modbus/node_modules/modbus-stack/node_modules/stream-stack/stream-stack.js:198:28) TypeError: 2016-11-01 21:30:01.925 error at Client.emit [as _origEmit] (events.js:107:17) TypeError: 2016-11-01 21:30:01.925 error at ModbusRequestStack._onData (/volume1/web/iobroker/node_modules/iobroker.modbus/node_modules/modbus-stack/modbus-stack.js:128:10) TypeError: 2016-11-01 21:30:01.925 error at ModbusRequestStack._onData (/volume1/web/iobroker/node_modules/iobroker.modbus/node_modules/modbus-stack/modbus-stack.js:133:10) TypeError: 2016-11-01 21:30:01.925 error at ModbusRequestStack._onData (/volume1/web/iobroker/node_modules/iobroker.modbus/node_modules/modbus-stack/modbus-stack.js:157:12) TypeError: 2016-11-01 21:30:01.925 error at ModbusRequestStack.emit (events.js:107:17) TypeError: 2016-11-01 21:30:01.925 error at ModbusRequestStack. (/volume1/web/iobroker/node_modules/iobroker.modbus/node_modules/modbus-stack/modbus-stack.js:98:9) TypeError: 2016-11-01 21:30:01.925 error at /volume1/web/iobroker/node_modules/iobroker.modbus/main.js:1563:53 TypeError: 2016-11-01 21:30:01.925 error Cannot read property 'id' of undefined uncaught 2016-11-01 21:30:01.915 error exception: Cannot read property 'id' of undefined
Weiterhin wiederholt sich laufend diese Fehlermeldung:
NAS 2016-11-01 21:30:35.063 info host.NAS Restart adapter system.adapter.modbus.0 because enabled NAS 2016-11-01 21:30:35.063 error host.NAS instance system.adapter.modbus.0 terminated with code 0 (OK) modbus.0 2016-11-01 21:30:34.529 error TypeError: Cannot read property 'id' of undefined at /volume1/web/iobroker/node_modules/iobroker.modbus/main.js:1563:53 at ModbusRequestStack. (/volume1/web/iobroker/node_modules/io modbus.0 2016-11-01 21:30:34.527 error uncaught exception: Cannot read property 'id' of undefined modbus.0 2016-11-01 21:30:33.486 info modbus.0 Connected to slave 192.168.1.27 modbus.0 2016-11-01 21:30:33.401 info modbus.0 starting. Version 0.3.11 in /volume1/web/iobroker/node_modules/iobroker.modbus NAS 2016-11-01 21:30:32.466 info host.NAS instance system.adapter.modbus.0 started with pid 21249
Der Host ist mehrfach neu gestartet, keine Änderung. Auch das Verschieben auf einen anderen Host und zurück hat jeweils nichts gebracht.
Habe erneut testweise die neue Version vom Git installiert. Nun passiert folgendes:
modbus.0 2016-11-01 21:36:30.700 warn modbus.0 Poll error count: 1 code: {"err":"timeout"} modbus.0 2016-11-01 21:36:30.700 info modbus.0 Disconnected from slave 192.168.1.27 modbus.0 2016-11-01 21:36:30.699 warn modbus.0 Error: undefined modbus.0 2016-11-01 21:36:25.686 info modbus.0 Connected to slave modbus.0 2016-11-01 21:36:25.588 info modbus.0 starting. Version 0.4.5 in /volume1/web/iobroker/node_modules/iobroker.modbus NAS 2016-11-01 21:36:24.253 info host.NAS instance system.adapter.modbus.0 started with pid 22189
-
Du kannst bei ältere Version die Zeile 1563 editieren:
von
var id = main.holdingRegs[n].id;
auf
if (! main.holdingRegs[n]) continue; var id = main.holdingRegs[n].id;
Bei neue Version man sollte config einmal aufmachen irgendwas ändern und wieder zumachen. Und schalte log level auf debug.
-
Danke für die Hilfe
Habe gerade die neue Version installiert und hab Deinen Tippp ausprobiert. Hier das Ergebnis:
inMem 2016-11-06 23:02:10.924 debug message modbus.0.* modbus.0.info.connection val=false, ack=true, ts=1478469730921, q=0, from=system.adapter.modbus.0, lc=1478469730921 modbus.0 2016-11-06 23:02:10.920 warn Poll error count: 1 code: "App Timeout" inMem 2016-11-06 23:02:05.823 debug message modbus.0.* modbus.0.info.connection val=true, ack=true, ts=1478469725820, q=0, from=system.adapter.modbus.0, lc=1478469725820 modbus.0 2016-11-06 23:02:05.715 info Connected to slave modbus.0 2016-11-06 23:02:05.213 info starting. Version 0.4.5 in /volume1/web/iobroker/node_modules/iobroker.modbus modbus.0 2016-11-06 23:02:05.149 debug statesDB connected modbus.0 2016-11-06 23:02:05.133 debug objectDB connected host.NAS 2016-11-06 23:02:03.815 info instance system.adapter.modbus.0 started with pid 1276 host.NAS 2016-11-06 23:02:03.790 info object change system.adapter.modbus.0 host.NAS 2016-11-06 23:01:47.603 info object change system.adapter.modbus.0 host.NAS 2016-11-06 23:01:26.492 info object change system.adapter.modbus.0
Leider bleibt der Adapter trotzdem auf gelb stehen.. gehe jetzt mal auf die alte Version zurück und probiere die andere Änderung.
-
Werde morgen dein Konfig einspielen und schauen.
-
Brauchst Du nicht mehr
Habe gerade alles einmal platt gemacht und neu eingespielt. Siehe da: läuft perfekt!
Danke für Deine Hilfe!!!
-
Brauchst Du nicht mehr
Habe gerade alles einmal platt gemacht und neu eingespielt. Siehe da: läuft perfekt!
Danke für Deine Hilfe!!! `
Neue oder alte Version? -
0.4.5
Die alte wurde mir gar nicht mehr angeboten.
Ist eigentlich geplant, für Modbus RTU auch einen Master anzubieten? Das würde mir beim Stromzähler noch helfen
-
0.4.5
Die alte wurde mir gar nicht mehr angeboten.
Ist eigentlich geplant, für Modbus RTU auch einen Master anzubieten? Das würde mir beim Stromzähler noch helfen
`
Ich dachte, dass es kein Anwendungsfall dafür gibt.Kannst genauer beschreiben, wie du das benutzen willst?
Die implementierung sollte jetzt nicht so komplex sein.
-
Ist eigentlich geplant, für Modbus RTU auch einen Master anzubieten? Das würde mir beim Stromzähler noch helfen
`
Ich dachte, dass es kein Anwendungsfall dafür gibt.Kannst genauer beschreiben, wie du das benutzen willst? `
Na klar gibt es dafür eine Anwendung
Und zwar gerade für alle, die eine Photovoltaik-Anlage auf dem Dach haben oder zum Beispiel eine Wärmepumpe.
Hintergrund:
Ich habe zwei Stromzähler vom Typ SDM630-Modbus. Einer misst den Gesamtverbrauch des Hauses und der andere das, was meine Wärmepumpe an Strom verbraucht. Der RS485 Bus hängt mittels eines einfachen China-RS485-to-USB-Converters am Raspi. Auf dem Raspi läuft ein Modbus-RTU-to-Modbus-TCP Converter, der aber extrem unzuverlässig ist und mit viel Glück jeden 10. übermittelten Wert auch richtig überträgt. Das funktioniert also von vorne bis hinten nicht.
Von daher war ich schon extrem happy als es auf einmal hieß "Modbus RTU wird unterstützt", aber leider nur als Slave
Da die Stromzähler und der Solar-Wechselrichter aber Slaves sind, fehlt dementsprechend ein Master
Mein ganz konkreter Anwendungsfall: wenn Solaranlage mehr Strom produziert als das Haus verbraucht, kann Homematic einen Verbraucher wie zB den Wäschetrockner dazu schalten. Ich habe unsere Waschmaschine und unseren Trockner dazu schon "homematisiert", sodass einschalten und Programm starten nun auch von Ferne und vor allem über Programme möglich ist.
Das Programm ist ganz einfach: wenn Solaranlage mehr Strom verbraucht, wird eine SV gesetzt. Steigt die Überproduktion für einen längeren Zeitraum über einen Schwellenwert, werden Hausgeräte eingeschaltet, zB bei über 2000W Überschuss der Trockner (sofern was drin ist). Damit auch kleine Überschüsse sinnvoll genutzt werden können, steigt bei 180W Überproduktion zB die Lüftungsanlage ein. Irgendwann ist der Plan, dass bei hohen Überschüssen mal ein Speicher oder sogar ein E-Auto geladen wird (wobei die Ladestation dann wieder eine RS485 Schnittstelle hätte
).
Wir sehen: viele Anwendungszwecke für Modbus RTU Master
Viele Grüße
Christian