Seite 2 von 3

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

Verfasst: 24.01.2019, 21:57
von Hypnos
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) 14341 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ß

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

Verfasst: 24.01.2019, 22:31
von Heinz71
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

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

Verfasst: 25.01.2019, 07:26
von d3h56r
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.

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

Verfasst: 25.01.2019, 10:53
von Hypnos
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.

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

Verfasst: 25.01.2019, 20:36
von Heinz71
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.

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

Verfasst: 26.01.2019, 22:18
von Heinz71
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

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

Verfasst: 04.04.2019, 17:25
von Bastelgeselle
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

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

Verfasst: 19.09.2019, 19:45
von jbachmann
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

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

Verfasst: 19.09.2019, 20:55
von Hypnos
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ß

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

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