Node Red Weiche

ich suche in Node Red eine Funktion, die eine UND / ODER Weiche für ein Event unter Prüfung eines Parameters aus einem anderen Zweig darstellt.

Ich habe eine JSON Message die nur weitergeleitet wird, wenn eine globale Variable der Vorgabe entspricht. Kann mir da jemand weiterhelfen ??? Danke!!!

Eine Variante wäre ein Switch-Node in dem du prüfst, ob deine Context-Variable den gewünschten Wert hat. Poste mal deinen Flow und beschreibe nochmal wann du was weiterleiten möchtest.

Ich arbeite immer gern mit
node-red-contrib-simple-gate
da muss ich dann nicht auf globals oder flows zurückgreifen sondern feuer einfach ein topic control mit dem payload open, close, toggle ab der das gate entsprechend schaltet, und das pack ich dann in den flow in dem etwas entweder durchgehen soll oder geblockt werden soll.

Eignet sich ganz gut als Ersatz für den “wait until” aus der HA contrib.
Wenn man z.B. verhindern möchte das etwas weiterläuft obwohl ein gerade angestossener Prozess noch nicht komplett durchlaufen wurde z.B. wegen delays oder sonstigen Dingen.

ansonsten ein function node mit

var x = global.get("xyz") ?? undefined;
if (x == "soll") {
  node.send(msg);
}
node.done();

Gibt ja zum Glück in NR verschiedenste Wege das Ziel zu erreichen. In der Anfrage ging es ja explizit um die Weiterleitung basierend auf einer globalen (Context-)Variable. Wobei der Vorschlag mit dem Switch-Node genau das macht, wie deine Lösung mit dem Function-Node (nur einfacher :wink:).

Find ich umständlicher, ich muss da zu viel klicken da tipp ich lieber schnell mal ein paar Zeilen. Ist wie Helfer oder YAML, da entscheide ich mich auch in der Regel gegen die Helfer die sind einfach zu umständlich und dem geschuldet was die grafische Umsetzung erlaubt.

Kann ja jeder so machen wie er möchte. Aber wo du jetzt in dem Switch Node viel klicken musst, keine Ahnung was du da machst. Gerade für Anfänger ist es in NR viel einfacher, die vorhandenen Nodes und ihre Möglichkeiten zu nutzen, ohne in JavaScript zu coden. Für spezielle Dinge dann der Function-Node, wobei ich da eher JSONATA wähle.

Vielen Dank an die Helfer. Ich habe eine funktionierende Lösung hinbekommen:

Aufgabe war, WAREMA Jalousien aus HA über Node Red via einer API und Warema Web Control Pro zu steuern. Jede Jalousie kann nur separat angesteuert werden. Die Jalousien sollen einzeln und in Gruppen angesteuert werden. Das soll sich via Button aber auch sofort stoppen lassen.

Bedienung

flows.json.txt (21,3 KB)

Ich bin Neuling und die Sache lässt sich sicher noch eleganter lösen, aber es funktioniert wie gewünscht.

Nochmals Danke für die Unterstützung !!!