hallo, super erklärt :-) wie geht man vor wenn man folgendes möchte: ein Node liefert ein true oder false und ein anderer Node einen Temperaturwert z.B. 15.4. Nun möchte ich eine if-Bedingung erstellen. Wenn true und >20, dann Rollladen runter (true oder false senden). Mein Problem also: wie bekomme beides als Eingänge in die function-Node und wie verarbeite ich das dann in dem function-Node? (Hintergrund: mit dem Node Big Timer sende ich sonnenstandabhängig ein true oder false an die Rollladensteuerung, hier ein KNX-Node. Die Rollläden würden aber auch bei niedrigen Temperaturen runtergehen. Deshalb möchte ich die Außentemperatur mit berücksichtigen (Wetterstation) und die Rollläden nur runter lassen, wenn es draußen >20 Grad hat. Ansonsten bleiben die Rollläden oben. Also muss ich die beiden Sachen in eine if-Bedingung bringen und als Ergbnis ein true oder false erzeugen, dass dann an die Rollladensteuerung geht :-)
Hey, schönes Beispiel von dir. Schau dir den "join" Node an und stelle ihn auf Manuell. Erstelle ein Array und setze als Parameter, dass die Aktion bei 2 eingehenden Nachrichten ausgeführt wird. Wenn Node A sendet, wird gewartet bis Node B auch sendet. Dann gibt der Join Node das Payload als Array aus, und du findest die Infos zum Beispiel unter msg.payload[0].
@@markuspfaff5504 In den Join-Node Eigenschaften hast du mehrere Möglichkeiten, die kombinierten Werte weiterzuleiten. Schau mal hier vorbei: cookbook.nodered.org/basic/join-streams
@@pixeledi ok, habe das mit dem Array nun hinbekommen und im debug sieht es so aus: [1, 20.2] ! nun habe ich aber das Problem, dass die 1 in größeren Abständen gesendet wird und die Temperatur in kürzeren Abständen. Das bedeutet, dass das Array manchmal so gefüllt wird: [20.1, 21.3] :-) also ist das ein weiteres Problem. Der/das Join-Node sammelt halt hintereinander zwei Events, dann wird das Array befüllt. Mein Bauchgefühl sagt, ich muss das irgendwie über globale Variablen lösen. Habe ich aber noch nie gemacht.
Sehr interessant, danke für den Einblick. Freue mich schon auf die nächsten weiteren Projekte / Videos von dir!
hallo, super erklärt :-) wie geht man vor wenn man folgendes möchte: ein Node liefert ein true oder false und ein anderer Node einen Temperaturwert z.B. 15.4. Nun möchte ich eine if-Bedingung erstellen. Wenn true und >20, dann Rollladen runter (true oder false senden). Mein Problem also: wie bekomme beides als Eingänge in die function-Node und wie verarbeite ich das dann in dem function-Node? (Hintergrund: mit dem Node Big Timer sende ich sonnenstandabhängig ein true oder false an die Rollladensteuerung, hier ein KNX-Node. Die Rollläden würden aber auch bei niedrigen Temperaturen runtergehen. Deshalb möchte ich die Außentemperatur mit berücksichtigen (Wetterstation) und die Rollläden nur runter lassen, wenn es draußen >20 Grad hat. Ansonsten bleiben die Rollläden oben. Also muss ich die beiden Sachen in eine if-Bedingung bringen und als Ergbnis ein true oder false erzeugen, dass dann an die Rollladensteuerung geht :-)
Hey, schönes Beispiel von dir. Schau dir den "join" Node an und stelle ihn auf Manuell. Erstelle ein Array und setze als Parameter, dass die Aktion bei 2 eingehenden Nachrichten ausgeführt wird. Wenn Node A sendet, wird gewartet bis Node B auch sendet. Dann gibt der Join Node das Payload als Array aus, und du findest die Infos zum Beispiel unter msg.payload[0].
@@pixeledi hey, danke für die schnelle Antwort. Das probiere ich gleich mal aus 🙂nur hier weiß ich nicht, was du meinst: "Erstelle ein Array und ..."
@@markuspfaff5504 In den Join-Node Eigenschaften hast du mehrere Möglichkeiten, die kombinierten Werte weiterzuleiten. Schau mal hier vorbei: cookbook.nodered.org/basic/join-streams
@@pixeledi ok, habe das mit dem Array nun hinbekommen und im debug sieht es so aus: [1, 20.2] ! nun habe ich aber das Problem, dass die 1 in größeren Abständen gesendet wird und die Temperatur in kürzeren Abständen. Das bedeutet, dass das Array manchmal so gefüllt wird: [20.1, 21.3] :-) also ist das ein weiteres Problem. Der/das Join-Node sammelt halt hintereinander zwei Events, dann wird das Array befüllt. Mein Bauchgefühl sagt, ich muss das irgendwie über globale Variablen lösen. Habe ich aber noch nie gemacht.