Nachricht bedingt weitergeben (wenn Schalter aktiviert ist)

Node-RED als CCU3/RaspberryMatic Addon, WebApp, HomeKit, ...

Moderator: Co-Administratoren

Antworten
eltoro3124
Beiträge: 27
Registriert: 15.03.2019, 21:54
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Nachricht bedingt weitergeben (wenn Schalter aktiviert ist)

Beitrag von eltoro3124 » 18.05.2019, 17:23

Hallo zusammen,

ich bräuchte mal einen Tipp bei der Umsetzung einer Steuerung.
Meine Wohzimmerrollade soll bestimmte Werte je nach Uhrzeit anfahren damit sich die Sonne nicht im Fernseher spiegelt. Die Steuerung soll allerdings nur aktiv sein wenn ich diese über einen separaten Schalter (Auto/Man ) aktiviere. Es sollen quasi nur die % Werte ausgegeben weder wenn auch automatik an ist.
Aktuell hab ich keine konkrete Idee für die Umsetzung. Da ich mich mit der Function Node noch ein wenig schwer tue wäre ich für ein paar Tipps sehr dankbar. Programmierung über "normale" Nodes wäre mir auch ganz recht :)

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: Ausgabe von % Werten bei automatik Modus

Beitrag von hobbyquaker » 18.05.2019, 18:12

Das kannst z.B. mit dem "combine - if" node recht einfach bewerkstelligen. Bei dem kannst ein bestimmtes Topic angeben ("condition topic") und Nachrichten die mit diesem topic reinkommen bestimmen dann darüber ob er andere Nachrichten durchlässt oder nicht.

eltoro3124
Beiträge: 27
Registriert: 15.03.2019, 21:54
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: Ausgabe von % Werten bei automatik Modus

Beitrag von eltoro3124 » 18.05.2019, 21:00

Danke für die Antwort.
Funktioniert schon fast wie gewollt.
Wie sähen denn eine Funktion Node Variante aus? Man will ja schießlich dazulernen :)

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: Ausgabe von % Werten bei automatik Modus

Beitrag von hobbyquaker » 18.05.2019, 22:59

Da führen soooo viele Wege zum Ziel ;-) Beim function Node müsstest Du mit dem Context arbeiten, also den Wert Deines Auto/Man Schalters im function Node lesen und im Function Node oder anderswo schreiben. Du könntest Ihn z.B. mit einem Change Node in den Context schreiben und im Function Node dann wieder lesen. Oder statt einem Function Node ein Switch Node verwenden. Der Vorteil des If Nodes ist halt einfach dass Du auf die Nutzung des Context verzichten kannst, wenn Du die Variable aber eh mehrfach und auch anderswo verwendest ist die Nutzung des Context aber vielleicht auch der bessere Weg. Die Nutzung des Function Nodes würde ich nur dann empfehlen wenn es mit "normalen" Nodes nicht oder nicht komfortabel machbar ist.

Hier noch ein Beispiel mit Context, Switch und alternativ Function Node:

Code: Alles auswählen

[{"id":"65e7df19.e957d","type":"tab","label":"Flow 6","disabled":false,"info":""},{"id":"ffa78326.bc23b","type":"change","z":"65e7df19.e957d","name":"","rules":[{"t":"set","p":"rollladen_automatik","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":370,"y":200,"wires":[[]]},{"id":"538b8f93.b4ba2","type":"inject","z":"65e7df19.e957d","name":"","topic":"","payload":"true","payloadType":"bool","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":180,"wires":[["ffa78326.bc23b"]]},{"id":"ecf960ce.f186c","type":"inject","z":"65e7df19.e957d","name":"","topic":"","payload":"false","payloadType":"bool","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":220,"wires":[["ffa78326.bc23b"]]},{"id":"51e6d718.0b8fc8","type":"inject","z":"65e7df19.e957d","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":100,"y":320,"wires":[["605d4570.841c2c"]]},{"id":"8649c533.d4cdb8","type":"debug","z":"65e7df19.e957d","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":500,"y":320,"wires":[]},{"id":"605d4570.841c2c","type":"function","z":"65e7df19.e957d","name":"","func":"if (global.get('rollladen_automatik')) {\n    return msg;\n}\n","outputs":1,"noerr":0,"x":290,"y":320,"wires":[["8649c533.d4cdb8"]]},{"id":"30329b4a.913cf4","type":"inject","z":"65e7df19.e957d","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":100,"y":380,"wires":[["1cc8829f.11609d"]]},{"id":"e67db90a.57b248","type":"debug","z":"65e7df19.e957d","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":500,"y":380,"wires":[]},{"id":"1cc8829f.11609d","type":"switch","z":"65e7df19.e957d","name":"","property":"rollladen_automatik","propertyType":"global","rules":[{"t":"true"}],"checkall":"true","repair":false,"outputs":1,"x":280,"y":380,"wires":[["e67db90a.57b248"]]}]

Schattenschimmer
Beiträge: 137
Registriert: 20.03.2016, 20:49
Hat sich bedankt: 3 Mal
Danksagung erhalten: 1 Mal

Re: Ausgabe von % Werten bei automatik Modus

Beitrag von Schattenschimmer » 05.04.2021, 16:56

hobbyquaker hat geschrieben:
18.05.2019, 18:12
Das kannst z.B. mit dem "combine - if" node recht einfach bewerkstelligen. Bei dem kannst ein bestimmtes Topic angeben ("condition topic") und Nachrichten die mit diesem topic reinkommen bestimmen dann darüber ob er andere Nachrichten durchlässt oder nicht.
Wie kann so ein "condition topic" aussehen?

Ich mache meine ersten Versuche mit NodeRed und schaffe es einfach nicht, daß dieser if-Node über den ersten Ausgang (true) etwas durchläßt.
Die gewünschten Meldungen gehen immer über den zweiten Ausgang (false) raus.

Eine bestimmte Funktion habe ich noch nicht im Sinn, ich bin noch im Spiel-, Forschungs- und Testmodus.

Ein Beispiel könnte mir weiterhelfen, wie man z.B. auf bestimmte Zustände (offen, Sabotage, Batterie leer) eines Fenstersensors mit dem if-Node reagieren könnte, wenn die Meldung von einem rpc-event kommt.

Oder bin ich hier völlig auf dem Holzweg?


Danke vorab und sonnige Grüße! :)
Gerade bei Smart Home Systemen sollte die (IP-) Sicherheit immer berücksichtigt werden!

Antworten

Zurück zu „RedMatic“