NEWS
Skript bringt rflink zum reboot - nur warum? :-/
-
Hi,
hab' hier ein (wie ich finde) wirklich einfaches Blockly (hab mal alles raus gestrippt und nur den Crashgrund über gelassen).
Wird es getriggert, veranlasst es den rflink adapter neu zu starten.
Sehe leider nicht, wieso...
Vielleicht sieht ja jemand mehr als ich...Der Neustart im Log:
rflink.0 2019-11-23 14:41:30.626 info Connected rflink.0 2019-11-23 14:41:30.612 info Serial port opened rflink.0 2019-11-23 14:41:29.933 info starting. Version 1.2.0 in /opt/iobroker/node_modules/iobroker.rflink, node: v8.11.4 host.raspberrypi 2019-11-23 14:41:28.639 info instance system.adapter.rflink.0 started with pid 19974 host.raspberrypi 2019-11-23 14:40:58.614 info Restart adapter system.adapter.rflink.0 because enabled host.raspberrypi 2019-11-23 14:40:58.614 error instance system.adapter.rflink.0 terminated with code 0 (OK) host.raspberrypi 2019-11-23 14:40:58.614 error Caught by controller[0]: at processImmediate [as _immediateCallback] (timers.js:745:5) host.raspberrypi 2019-11-23 14:40:58.613 error Caught by controller[0]: at tryOnImmediate (timers.js:768:5) host.raspberrypi 2019-11-23 14:40:58.613 error Caught by controller[0]: at runCallback (timers.js:810:20) host.raspberrypi 2019-11-23 14:40:58.613 error Caught by controller[0]: at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3429:38) host.raspberrypi 2019-11-23 14:40:58.613 error Caught by controller[0]: at Adapter.emit (events.js:214:7) host.raspberrypi 2019-11-23 14:40:58.613 error Caught by controller[0]: at emitTwo (events.js:126:13) host.raspberrypi 2019-11-23 14:40:58.612 error Caught by controller[0]: at Adapter.<anonymous> (/opt/iobroker/node_modules/iobroker.rflink/main.js:146:9) host.raspberrypi 2019-11-23 14:40:58.612 error Caught by controller[0]: at writeCommand (/opt/iobroker/node_modules/iobroker.rflink/main.js:181:66) host.raspberrypi 2019-11-23 14:40:58.612 error Caught by controller[0]: at Object.encodeValue (/opt/iobroker/node_modules/iobroker.rflink/admin/parse.js:243:30) host.raspberrypi 2019-11-23 14:40:58.612 error Caught by controller[0]: at Object.ID (/opt/iobroker/node_modules/iobroker.rflink/admin/parse.js:112:27) host.raspberrypi 2019-11-23 14:40:58.611 error Caught by controller[0]: TypeError: Cannot read property 'toString' of undefined
Das Blockly:
... als Javascript
var temp_temp; on({id: "rflink.0.channels.InoValley_SM200_1.TEMP"/*InoValley_SM200_ 1 Temperature*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; temp_temp = (obj.state ? obj.state.val : ""); setState("rflink.0.channels.InoValley_SM200_1.TEMP_fixed"/*TEMP_fixed*/, temp_temp); });
Der Datenpunkt "InoValley_SM200_ 1 Temperature" (von rflink angelegt):
{ "from": "system.adapter.rflink.0", "ts": 1550502448006, "common": { "name": "InoValley_SM200_ 1 Temperature", "role": "value.temperature", "unit": "C°", "type": "number", "read": true, "write": true }, "native": { "brand": "InoValley_SM200", "attr": "TEMP", "ID": 418, "offset": 0 }, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "rflink.0.channels.InoValley_SM200_1.TEMP", "type": "state" }
Und der Datenpunkt "TEMP_fixed" (von mir angelegt):
{ "_id": "rflink.0.channels.InoValley_SM200_1.TEMP_fixed", "type": "state", "common": { "name": "TEMP_fixed", "role": "", "type": "number", "read": true, "write": true, "desc": "Manuell erzeugt", "unit": "°C" }, "native": {}, "from": "system.adapter.admin.0", "ts": 1574287787498, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
"desc": "Manuell erzeugt",
Man soll keine eigenen Datenpunkte unter "fremden" Instanzen erstellen !
-
Hm, aber davon habe ich im rflink eine Menge, und das ganz ohne Probleme.
Wie z.B. (nur BAT, HUM und TEMP sind original):
-
@paul53
Und wie soll man sowas aufgeräumt hin bekommen, wenn man es nicht an Ort und Stelle packen soll? -
@padrino sagte:
Und wie soll man sowas aufgeräumt hin bekommen
Mit createState() unter javascript.0 oder manuell / per Skript unter 0_userdata.0.
-
@paul53
Das fühlt sich für mich aber auch nicht aufgeräumt an.
So muss ich ja auch die ganzen Strukturen der Adapter meinerseits klonen...Übrigens, eben festgestellt, wenn ich den "steuere" Befehl in "aktualiere" ändere, dann crasht der rflink adapter nicht und startet nicht neu.
-
@padrino sagte :
"steuere" Befehl in "aktualiere" ändere, dann crasht der rflink adapter nicht
Wenn Du damit leben kannst ? Eigene Datenpunkte sollte man immer mit "aktualisiere" schreiben.