NEWS
Switch funktioniert nur einmal nach deploy
-
Hallo
Hallo ich versuche gerade meine Lichter mit dem node-red-contrib-alexa-home per Alexa zu steuern. Dabei habe ich ein Probleme mit dem switch node. Er funktioniert genau einmal nach einem deploy. Dann läuft alles sauber durch und meine Lampen schalten wenn ich dann nochmal schalten will reagiert der Switch node nicht und ich muss z.b. eine Debug node rausschmeißen neu deploy und danach funktioniert er wieder genau ein mal. Hat jemand eine Idee was ich falsch mache?
Nachtrag: Jetzt scheint der join node dieses verhalten zu zeigen, ohne das ich etwas am rest geändert habe.
Schönen Gruß
-
@nftvirus Packe das was aus der Alexa Node rauskommt in eine Inject Node und schau, ob Du das Verhalten nachvollziehen kannst, wenn Du manuell den Flow mit verschiedenen Daten der Alexa Node triggerst. Vielleicht gibt die Alexa Node ja auch unterschiedliche Nachrichten aus und diese Alexa Node wird durch jedes deploy zurückgesetzt.
-
@mickym erst mal danke für deine Antwort! Habe jetzt einen inject reingebaut und das selbe Verhalten. Beim ersten mal läuft mein JSON Befehl durch. Bei zweiten mal macht der Switch Node wieder nichts mehr.
-
@nftvirus Habe leider immer noch keine Ahnung woran es liegt. An sich arbeitet Node Red gut aber es ist total reproduzierbar das der Flow nur einmal komplett durch läuft und danach immer an einem Join hängt. Eventuell hat ja noch jemand eine Idee:
[ { "id": "5251b05d8dcb44d2", "type": "function", "z": "9f5b324af15fbb32", "name": "function 2", "func": "msg.topic = \"brightness\";\nmsg.payload = msg.payload.bri;\nreturn msg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 400, "y": 260, "wires": [ [ "2f3b67eee446ea0a", "23458ad4a09fab41" ] ] }, { "id": "2f3b67eee446ea0a", "type": "join", "z": "9f5b324af15fbb32", "name": "", "mode": "custom", "build": "object", "property": "payload", "propertyType": "msg", "key": "topic", "joiner": "\\n", "joinerType": "str", "accumulate": true, "timeout": "0.1", "count": "", "reduceRight": false, "reduceExp": "", "reduceInit": "", "reduceInitType": "", "reduceFixup": "", "x": 870, "y": 260, "wires": [ [ "4e320b068f1edb88", "6f3cbe12a233222c" ] ] }, { "id": "4e320b068f1edb88", "type": "json", "z": "9f5b324af15fbb32", "name": "", "property": "payload", "action": "", "pretty": false, "x": 1010, "y": 260, "wires": [ [ "cc8e59201c4bdc82" ] ] }, { "id": "3703e00eef57da29", "type": "switch", "z": "9f5b324af15fbb32", "name": "", "property": "payload.on", "propertyType": "msg", "rules": [ { "t": "true" }, { "t": "false" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 390, "y": 140, "wires": [ [ "60a90d3ada282185" ], [ "bd2ee7ed033d59ba", "1e330702139ad824" ] ] }, { "id": "60a90d3ada282185", "type": "function", "z": "9f5b324af15fbb32", "name": "function 14", "func": "msg.topic = \"state\"\nmsg.payload.on = \"ON\"\nmsg.payload = msg.payload.on\nreturn msg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 690, "y": 180, "wires": [ [ "2f3b67eee446ea0a" ] ] }, { "id": "bd2ee7ed033d59ba", "type": "function", "z": "9f5b324af15fbb32", "name": "function 15", "func": "msg.topic = \"state\"\nmsg.payload.on = \"OFF\"\nmsg.payload = msg.payload.on\nreturn msg;", "outputs": 1, "timeout": 0, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 690, "y": 240, "wires": [ [ "2f3b67eee446ea0a", "c79431d898a3fb85" ] ] }, { "id": "1e330702139ad824", "type": "debug", "z": "9f5b324af15fbb32", "name": "debug 1", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 620, "y": 100, "wires": [] }, { "id": "6f3cbe12a233222c", "type": "debug", "z": "9f5b324af15fbb32", "name": "debug 2", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 1080, "y": 100, "wires": [] }, { "id": "1e5fd043fc06b201", "type": "inject", "z": "9f5b324af15fbb32", "name": "", "props": [ { "p": "payload" }, { "p": "topic", "vt": "str" } ], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "{\"on\":false,\"bri\":254,\"command\":\"switch\",\"bri_normalized\":100}", "payloadType": "json", "x": 150, "y": 220, "wires": [ [ "5251b05d8dcb44d2", "3703e00eef57da29" ] ] }, { "id": "c79431d898a3fb85", "type": "debug", "z": "9f5b324af15fbb32", "name": "debug 4", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 940, "y": 40, "wires": [] }, { "id": "23458ad4a09fab41", "type": "debug", "z": "9f5b324af15fbb32", "name": "debug 3", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "statusVal": "", "statusType": "auto", "x": 750, "y": 340, "wires": [] } ]```
-
Doppelpost deleted
-
Also in meinen Augen hast Du die JOIN Node auch falsch konfiguriert.
Dieser Haken bezieht sich nur auf die Anzahl. Da Du 2 topics hast, nämlich brightness und state würde ich das ganze eh nach der Anzahl konfigurieren. Ich zeige es Dir gleich.
Ausserdem ist es Käse schon vorher ein Objekt zu machen, das macht die JOIN Node doch selbst.
Soll so Dein Objekt zum Schluss aussehen?
Nachdem doch alles schon in einem Objekt rauskommt, musst Du es auch nicht splitten.
-
@mickym ja muss nur mein state von true/false in ON/OFF umwandeln
-
@nftvirus und bri in brightness?
-
Wärst Du hiermit auch zufrieden?
Wenn ihr nur mal aufhört mit function nodes Javascript zu schreiben.
-
@mickym Oh danke so funktioniert es! Ich habe noch einiges zu lernen Wirklich Vielen Dank für die Hilfe!
-
@nftvirus Deine Join Node hätte auch funktioniert - nur
der Haken mit jeder nachfolgenden Nachricht ist fehl am Platz - da sich das oben auf die Anzahl bezieht. Sprich dann hättest Du da was eintragen müssen.
Du hast die JOIN Node ja auf Zeit konfiguriert - was man auch nur im Notfall machen sollte.
Da Du Dein Objekt ja auseinandergerissen hast, hätte auch das funktioniert, da ja immer 2 Nachrichten ankommen:
Aber wie gesagt alles zu umständlich, da Du ja bereits ein Objekt hattest.