NEWS
Ausgelesene Werte in Datenpunkte schreiben (Node Red)
-
@haselchen Aus dem javascript.0.Sonoff.Bewässerung_Terrasse kommt doch nur true und false raus - da muss man nichts konvertieren. Wenn Du das on off nicht brauchst - dann kannst ja den javascript.0.Sonoff.Bewässerung_Terrasse mit dem eWeLinkNode verbinden. Da ist aber nicht das Array bzw. JSON enthalten.
Du kannst zwar den on node auch noch auf Boolean= true setzen, aber das ist wie gesagt nonsens - da aus der javascript.0.Sonoff.Bewässerung_Terrasse Node ja nur true und false rauskommt.
Welchen Datenpunkt liest denn Dein VIS Widget aus?
Sonst mach einen Screenshot von Deinem kompletten Flow - und ich sag Dir welche Nodes Du exportieren muss, damit ich mir das anschauen kann. (Exportieren von ausgewählten Nodes über die Zwischenablage und hier als Code einfügen, damit ich das bei mir importieren kann.
-
Zu dem Auslesen....das Widget erwartet 0 1 true oder false.
Zu dem Anderen komme ich gleich
Alter Mann ist ja kein D-Zug2020-08-22 01:17:16.027 - error: node-red.0 (2035) 22 Aug 01:17:16 - [error] [ewelink-power-state-write:XXXXXXXXXX] TypeError: msg.payload.toLowerCase is not a function at PowerStateWriteNode.eWeLinkConnect.initializeDeviceNode.msg (/opt/iobroker/node_modules/node-red-contrib-ewelink/src/power-state-write/power-state-write.js:17:103) at PowerStateWriteNode.node.on [as _inputCallback] (/opt/iobroker/node_modules/node-red-contrib-ewelink/src/utils/ewelink-connect.js:65:65) at PowerStateWriteNode.Node._emitInput (/opt/iobroker/node_modules/iobroker.node-red/node_modules/@node-red/runtime/lib/nodes/Node.js:200:18) at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.node-red/node_modules/@node-red/runtime/lib/nodes/Node.js:179:33) at runCallback (timers.js:705:18) at tryOnImmediate (timers.js:676:5) at processImmediate (timers.js:658:5)
Er schreibt jetzt überall false rein, aber bringt diesen Fehler in Bezug auf den Flow, den ich eben schon gepostet habe.
-
@haselchen Wie gesagt ich habe leider überhaupt keinen Überblick über den gesamten Flow.
Es sieht also so aus, als ob der eWeLink eben doch "on" und "off" brauchen.
Ich weiß wie gesagt - was Du da brauchst - aber warum nimmst Du in Deiner vis nicht den javascript.0.Sonoff.Bewässerung_Terrasse Punkt - der sollte doch true oder false haben?
-
@mickym
Ja eben nicht. Das ist doch das Problem. Da steht nur on oder off in dem Datenpunkt. -
@haselchen In diesem javascript.0.Sonoff.Bewässerung_Terrasse Punkt ? Das kann ich nicht glauben, denn sonst würde der Flow den ich gemacht habe - gar nicht funktionieren, da da nur Nachrichten mit true oder false weitergeleitet werden.
-
Darüber reden wir doch seit Stunden
-
@haselchen Also wie gesagt, wenn in
javascript.0.Sonoff.Bewässerung_Terrasse Punkt on/off ist kann der flow gar nicht funktioniert haben.dann muss der switch on/off trennen und dann der change true und false setzen.
Wenn also on/off in dem Datenpunkt ist und du möchtest true/false dann müsste der Flow ja so aussehen - und der alte hätte nie funktionieren dürfen:
[ { "id": "d7ea3d2b.d9bd", "type": "ioBroker in", "z": "77e93dc8.7c1914", "name": "", "topic": "javascript.0.Sonoff.Bewässerung_Terrasse", "payloadType": "value", "onlyack": "", "func": "all", "gap": "", "fireOnStart": "false", "x": 400, "y": 280, "wires": [ [ "3cbe2a0f.69b176" ] ] }, { "id": "3cbe2a0f.69b176", "type": "switch", "z": "77e93dc8.7c1914", "name": "", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "on", "vt": "str" }, { "t": "eq", "v": "off", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 650, "y": 280, "wires": [ [ "321763b3.53eafc" ], [ "b7a82d72.4b1ef" ] ] }, { "id": "321763b3.53eafc", "type": "change", "z": "77e93dc8.7c1914", "name": "setze true", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "true", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 840, "y": 260, "wires": [ [] ] }, { "id": "b7a82d72.4b1ef", "type": "change", "z": "77e93dc8.7c1914", "name": "setze false", "rules": [ { "t": "set", "p": "payload", "pt": "msg", "to": "false", "tot": "bool" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 850, "y": 300, "wires": [ [] ] } ]
-
Ich bin dir unendlich dankbar für deine Ausdauer.
Ich habe es jetzt, weil mir das echt auf den Sack geht, einen Umweg genommen.
Habe einen Alias Datenpunkt erstellt und wandel mit einem Blockly on/off zu 0 und 1 um.Damit geht es.
-
@haselchen Na ok - wie gesagt das hätte man sicher auch hingebracht, wenn ich den ganzen Flow gesehen hätte.
Im Übrigen brauchst Du wenn Du einen Alias definierst - kein Blockly. Das kann man in die Alias Definition des Datenpunktes direkt reinschreiben.
"alias": {
"id": "Datenpunkt - den Du mit dem Alias definierst",
"read": "val === 'on' ? true : false"
} -
Da bist du mir weit voraus.
Ich bin der, der die Axt rausholt
Im Grunde macht es am Ende Spass , wenn es funktioniert, egal welcher WegSchlaf gut und bis bald
-
@haselchen said in Ausgelesene Werte in Datenpunkte schreiben (Node Red):
Da bist du mir weit voraus.
Nee - bin ich nicht. - Du kennst Dich dafür im Blockly aus. Aber dafür ist das Forum ja da.
Schlaf gut.