Ausführliches HowTo für einen ersten einfachen Flow

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

Moderator: Co-Administratoren

Hypnos
Beiträge: 460
Registriert: 06.01.2018, 12:48
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 57 Mal
Danksagung erhalten: 39 Mal

Re: Ausführliches HowTo für einen ersten einfachen Flow

Beitrag von Hypnos » 24.01.2019, 21:57

spiegelmarkus hat geschrieben:
24.01.2019, 20:32
Hypnos hat geschrieben:
24.01.2019, 13:22
Dafür braucht man keine Function Node. Das geht auch mit Change und Switch Nodes.
Dies setzt aber voraus, dass ich den aktuellen Status (An/Aus) kenne. Ich wüsste auf Anhieb nicht, wie ich den Status von der Lampe abfragen kann.
Wenn man ein Gerät schaltet, was nicht den aktuellen Status ausgiebt, ist das theoretisch schon richtig.

Praktisch geht es auch, sofern man die Lampe aber durch keinen anderen Weg schaltet, kann man einfach den letzten Schaltstatus merken und davon abhängig schalten. Damit stimmt der Status spätestens nach dem ersten Schalten.

Mal ein Beispiel:
2019-01-24_21h55_00.png

Code: Alles auswählen

[{"id":"3e125210.2b6f1e","type":"inject","z":"80f1f74f.3896a8","name":"ein Button","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":160,"y":180,"wires":[["8da5285f.88cb48"]]},{"id":"8da5285f.88cb48","type":"switch","z":"80f1f74f.3896a8","name":"","property":"lampenStatus","propertyType":"flow","rules":[{"t":"false"},{"t":"else"}],"checkall":"false","repair":false,"outputs":2,"x":340,"y":180,"wires":[["b1f2d404.d9fc78"],["1b3f604f.b5c4c"]]},{"id":"b1f2d404.d9fc78","type":"change","z":"80f1f74f.3896a8","name":"true","rules":[{"t":"set","p":"payload","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":170,"wires":[["a8c03204.72e62"]]},{"id":"1b3f604f.b5c4c","type":"change","z":"80f1f74f.3896a8","name":"false","rules":[{"t":"set","p":"payload","pt":"msg","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":220,"wires":[["a8c03204.72e62"]]},{"id":"a8c03204.72e62","type":"change","z":"80f1f74f.3896a8","name":"","rules":[{"t":"set","p":"lampenStatus","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":720,"y":190,"wires":[["2db2bb3d.6dae84"]]},{"id":"2db2bb3d.6dae84","type":"debug","z":"80f1f74f.3896a8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":940,"y":190,"wires":[]}]
Anstelle des Inject und des Debug Node nimmt man dann halt die entsprechende Nodes für Taster/Lampe (z.B. CCU value).

Das speichert den letzten Status und schaltet davon abhängig.
Wenn man die Lampe zwischendurch anders geschalten hat, muss man den Taster halt maximal 2-mal drücken und dann stimmt es wieder. Wenn man damit leben kann, kann man es so auch machen.

Wenn man hingegen den Aktuellen Status geliefert bekommt, geht es einfacher:
Bild 920.png
Bild 920.png (16.15 KiB) 14066 mal betrachtet

Code: Alles auswählen

[{"id":"a41ff615.47d898","type":"inject","z":"57a37a0d.6fcd54","name":"ein Button","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":160,"y":320,"wires":[["550caa5b.760694"]]},{"id":"550caa5b.760694","type":"switch","z":"57a37a0d.6fcd54","name":"","property":"lampenStatus","propertyType":"flow","rules":[{"t":"false"},{"t":"else"}],"checkall":"false","repair":false,"outputs":2,"x":340,"y":320,"wires":[["94e370cc.4bc4c"],["49e49910.cc6208"]]},{"id":"94e370cc.4bc4c","type":"change","z":"57a37a0d.6fcd54","name":"true","rules":[{"t":"set","p":"payload","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":300,"wires":[["5657830e.98156c"]]},{"id":"49e49910.cc6208","type":"change","z":"57a37a0d.6fcd54","name":"false","rules":[{"t":"set","p":"payload","pt":"msg","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":340,"wires":[["5657830e.98156c"]]},{"id":"5c9f1b2.9723fe4","type":"change","z":"57a37a0d.6fcd54","name":"","rules":[{"t":"set","p":"lampenStatus","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":900,"y":320,"wires":[["13ee88c0.739d87"]]},{"id":"13ee88c0.739d87","type":"debug","z":"57a37a0d.6fcd54","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":1120,"y":320,"wires":[]},{"id":"5657830e.98156c","type":"ccu-value","z":"57a37a0d.6fcd54","name":"","iface":"","channel":"","datapoint":"","mode":"","start":true,"change":true,"cache":false,"on":"","onType":"undefined","ramp":"","rampType":"undefined","working":false,"ccuConfig":"localhost","topic":"${CCU}/${Interface}/${channel}/${datapoint}","x":670,"y":320,"wires":[["5c9f1b2.9723fe4"]]}]
Hier muss man anstelle der value Node dann die entsprechende Node nehmen. Der letzte Schalt-Status wird hier dann von dem Ausgang genommen und das Betätigen des Tasters ist damit auch dann richtig, wenn man die Lampe von woanders schaltet.

Gruß
Zuletzt geändert von Hypnos am 25.01.2019, 10:54, insgesamt 3-mal geändert.

Heinz71
Beiträge: 26
Registriert: 18.11.2012, 14:40
Hat sich bedankt: 2 Mal

Re: Ausführliches HowTo für einen ersten einfachen Flow

Beitrag von Heinz71 » 24.01.2019, 22:31

Vielen Dank,
Habs gerade importiert und musste nur den change node „false“ ändern, der schaltete auch „true“.
Das funktioniert erstmal, auch sehr schnell.
Unschön ist es halt mit dem zweimal drücken, wenn mal wieder mit Siri oder sonstigem geschaltet wurde.
Besuch ist es halt ein bisschen schwer zu erklären, dass man eventuell zweimal drücken muss.
Schönen Abend
Heinz

d3h56r
Beiträge: 192
Registriert: 29.10.2017, 10:23
Hat sich bedankt: 24 Mal
Danksagung erhalten: 4 Mal

Re: Ausführliches HowTo für einen ersten einfachen Flow

Beitrag von d3h56r » 25.01.2019, 07:26

Hey,

Deine Lampe hat doch auch einen Output, oder nicht? Den könntest Du doch wieder mit dem Input Deines Tasters verbinden. Dann musst Du im ersten Switch noch zwischen den beiden Inputs unterscheiden (bzw. eine Puffervariable beschreiben) und schon sollte sich auch das Doppel-Drück-Problem lösen, da sich der Lampenstatus ja auch ändern sollte, wenn Du anders als über den Flow schaltest.
186 Kanäle in 59 Geräten:
1x HM-LC-Sw1-FM, 10x HM-CC-RT-DN, 1x HM-OU-LED16, 2x HM-LC-Sw1-Pl-DN-R1, 18x HM-Sec-SCo, 1x HM-Sec-TiS, 1x HM-LC-Sw1-Pl-CT-R1, 2x HM-LC-Sw2-FM, 5x HM-LC-Bl1PBU-FM, 3x HM-LC-Sw1PBU-FM, 12x HM-RC-2-PBU-FM, 1x HM-ES-PMSw1-Pl, 1x HM-WDS100-C6-O, 1x HmIP-RCV-50

Hypnos
Beiträge: 460
Registriert: 06.01.2018, 12:48
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 57 Mal
Danksagung erhalten: 39 Mal

Re: Ausführliches HowTo für einen ersten einfachen Flow

Beitrag von Hypnos » 25.01.2019, 10:53

Heinz71 hat geschrieben:
24.01.2019, 22:31
Habs gerade importiert und musste nur den change node „false“ ändern, der schaltete auch „true“.
Danke, hab ich oben korrigiert.
d3h56r hat geschrieben:
25.01.2019, 07:26
Deine Lampe hat doch auch einen Output, oder nicht? Den könntest Du doch wieder mit dem Input Deines Tasters verbinden.
Bin davon ausgegangen das es keinen Output hat. (Kenne die Hue Nodes nicht.) Ich hab den Post oben ebenfalls mit einem Beispiel erweitert mit der Möglichkeit, wenn man eine Node hat, welche den aktuellen Status liefert. Damit geht das einfacher und die Probleme mit dem 2-mal schalten entfallen.

Heinz71
Beiträge: 26
Registriert: 18.11.2012, 14:40
Hat sich bedankt: 2 Mal

Re: Ausführliches HowTo für einen ersten einfachen Flow

Beitrag von Heinz71 » 25.01.2019, 20:36

N'abend,
habs mal wieder getestet, aber Hue ist zickig.
Kommt folgendes:

Error: Philips Hue: 201, parameter, ct, is not modifiable. Device is set to off.

Aber naja, ist Hobby, probiere ich halt weiter, ob ich das hinbekomme.

Heinz71
Beiträge: 26
Registriert: 18.11.2012, 14:40
Hat sich bedankt: 2 Mal

Re: Ausführliches HowTo für einen ersten einfachen Flow

Beitrag von Heinz71 » 26.01.2019, 22:18

Hi,
ich noch mal. Habe erstmal eine Lösung gefunden. Vielleicht nicht die eleganteste, aber hat erste Tests überstanden.
test.JPG

Code: Alles auswählen

[{"id":"38455fd4.4b273","type":"tab","label":"Test","disabled":false,"info":""},{"id":"53a350d9.eb789","type":"ccu-value","z":"38455fd4.4b273","name":"","iface":"BidCos-RF","channel":"KEQ0180572:6 HM-PB-6-WM55 KEQ0180572:6","datapoint":"PRESS_SHORT","mode":"","start":true,"change":true,"cache":false,"on":0,"onType":"undefined","ramp":0,"rampType":"undefined","working":false,"ccuConfig":"38263145.35ea0e","topic":"${CCU}/${Interface}/${channel}/${datapoint}","x":210,"y":100,"wires":[["deb41ff5.566d7"]]},{"id":"deb41ff5.566d7","type":"http request","z":"38455fd4.4b273","name":"","method":"GET","ret":"txt","url":"http://192.168.178.6/api/newdeveloper/lights/14","tls":"","x":310,"y":240,"wires":[["b0626345.16e33","5c44b783.08faa8"]]},{"id":"35acffbe.37bb6","type":"hue-light","z":"38455fd4.4b273","name":"Esszimmertür","bridge":"52d2f409.3bd44c","lightid":"14","colornamer":true,"x":860,"y":240,"wires":[[]]},{"id":"aa1cdb81.3c6d8","type":"inject","z":"38455fd4.4b273","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":240,"wires":[["deb41ff5.566d7"]]},{"id":"5c44b783.08faa8","type":"debug","z":"38455fd4.4b273","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":890,"y":120,"wires":[]},{"id":"b0626345.16e33","type":"switch","z":"38455fd4.4b273","name":"","property":"payload","propertyType":"msg","rules":[{"t":"regex","v":"true","vt":"str","case":false},{"t":"regex","v":"false","vt":"str","case":false}],"checkall":"true","repair":false,"outputs":2,"x":520,"y":240,"wires":[["48304430.49727c"],["27449158.ac40ae"]]},{"id":"48304430.49727c","type":"change","z":"38455fd4.4b273","name":"false","rules":[{"t":"set","p":"payload","pt":"msg","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":670,"y":200,"wires":[["35acffbe.37bb6"]]},{"id":"27449158.ac40ae","type":"change","z":"38455fd4.4b273","name":"true","rules":[{"t":"set","p":"payload","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":670,"y":260,"wires":[["35acffbe.37bb6"]]},{"id":"38263145.35ea0e","type":"ccu-connection","z":"","name":"localhost","host":"localhost","regaEnabled":true,"bcrfEnabled":true,"iprfEnabled":true,"virtEnabled":true,"bcwiEnabled":false,"cuxdEnabled":false,"regaPoll":true,"regaInterval":"30","rpcPingTimeout":"60","rpcInitAddress":"127.0.0.1","rpcServerHost":"127.0.0.1","rpcBinPort":"2047","rpcXmlPort":"2048"},{"id":"52d2f409.3bd44c","type":"hue-bridge","z":"","name":"Philips hue","bridge":"192.168.178.6","key":"zK0MK2IaPhUBQK5ImOC3jrWAqFLnavjpErQrNrmQ","interval":"3000"}]
Schönen Abend
Heinz

Bastelgeselle
Beiträge: 36
Registriert: 11.12.2018, 18:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: St.Gallen
Hat sich bedankt: 9 Mal

Re: Ausführliches HowTo für einen ersten mqtt Flow

Beitrag von Bastelgeselle » 04.04.2019, 17:25

Hypnos hat geschrieben:
01.11.2018, 14:06
Wenn noch Wünsche/Ideen für andere einfache Beispiele da sind, einfach melden. Dann werde ich versuchen das im Wiki aufzuschreiben.
edit 01.05.2019 => präzisiert
Ausgangslage:
RedMatic und Mosquitto auf Raspberymatic laufen, SonOff mit Tasmota geflasht.
Ziel:
Sonoff ist schaltbar (Pocketcontrol / Alexa via Cloudmatic),
Aktueller Status des SonOff ist sichtbar (in Homematic / Pocketcontrol),
unabhängig, ob direkt am SonOff die Taste gedrückt wird,
oder am virtuellen Taster oder physischem (HmIP-) Taster.
Problem:
Als Anfänger finde ich nur virtuelle Taster (short/long) und keinen Switch mit sichtbarem Status
Auch das einschleifen einer Systemvariable (die den Status enthält) fällt mir schwer.
Das Beispiel mit dem "Lampenflow" im Switch funktioniert nur, wenn nicht am SonOff direkt geschaltet wird.

Christian
Raspberrymatic auf Tinkerboard - Firmware 3.65.11.20221005
CUxD 2.10.1 - RedMatic 7.2.1

jbachmann
Beiträge: 8
Registriert: 19.09.2019, 19:33

Re: Ausführliches HowTo für einen ersten einfachen Flow

Beitrag von jbachmann » 19.09.2019, 19:45

Hallo!

Vielen Dank für die Beispiele.

Ich habe eine Frage, die vielleicht etwas blöd ist. Beim RPC Event Node wird ein CannelIndex verlangt. Was trage ich da ein und ist der zwingend notwendig?

LG Jürgen

Hypnos
Beiträge: 460
Registriert: 06.01.2018, 12:48
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 57 Mal
Danksagung erhalten: 39 Mal

Re: Ausführliches HowTo für einen ersten einfachen Flow

Beitrag von Hypnos » 19.09.2019, 20:55

Hallo Jürgen,

du musst nicht alles ausfüllen. Du kannst auch nur ein Feld ausfüllen:
2019-09-19_20h52 001.png
2019-09-19_20h54 001.png
Wenn das eingegebene auf mehreres zutrifft, sendet die Node für alle passenden Datenpunktänderungen eine Nachricht.

Für einen einzelnen Datenpunkt, nutze ich lieber die Value Node, aber das geht mit der rpc event Node genauso.

Beim Channelindex vermute ich, das dies die Nummer des Kanals ist.

Gruß

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

Re: Ausführliches HowTo für einen ersten einfachen Flow

Beitrag von hobbyquaker » 19.09.2019, 21:33

Hypnos hat geschrieben:
19.09.2019, 20:55
Beim Channelindex vermute ich, das dies die Nummer des Kanals ist.
Jap.

Antworten

Zurück zu „RedMatic“