Hauptmenü

DOIF mit Taster und Verzögerung

Begonnen von rih, 08 November 2017, 23:09:50

Vorheriges Thema - Nächstes Thema

rih

Hallo,
ich habe folgendes Problem: ich möchte mit einem Taster meine Rollläden schliessen (funktioniert, mit Komma-separierten Befehlen und ohne die Waits). Die Rollläden sollen nun aber zeitlich nacheinander schliessen, auch wenn ich den Taster bereits los gelassen habe. So sieht der modifizierte DOIF-Code aus:

([Wemos_Taster3:Switch] eq "on") (set EZ_Rolladen_L down) (set EZ_Rolladen_R down) (set WZ_Rolladen_L down) (set WZ_Rolladen_R down) (set Flur_Rolladen down)

Attr Alle_Rolladen_zu_Wemos wait 1,1,1,1


Das funktioniert zwar so mit den zeitlichen Verzögerungen, aber nur solange ich den Taster gedrückt halte.  Der Taster soll aber ein Taster bleiben. Grund: wenn ich nochmal drücke, kann ich die Rollläden so stoppen (ggf. nach Ablauf der Zeitverzögerung). Wie kann ich das Problem lösen?

Ellert


Per

Zitat von: rih am 08 November 2017, 23:09:50Der Taster soll aber ein Taster bleiben. Grund: wenn ich nochmal drücke, kann ich die Rollläden so stoppen
Erweitere doch erstmal dein DOIF dahingehend, die Lösung mit dem do always funktioniert nur mit einem Einzeiler.

amenomade

#3
do always allein wird nicht helfen. Mit einem notify und sleep lässt sich es aber einfach realisieren.

Mit DOIF sehe ich nur diese Möglichkeit:
([Wemos_Taster3:Switch] eq "on")
    (set EZ_Rolladen_L down)
    (set EZ_Rolladen_R down)
    (set WZ_Rolladen_L down)
    (set WZ_Rolladen_R down)
    (set Flur_Rolladen down)
    (set $SELF cmd_0)
DOELSEIF (0)

und mit
attr do always
att wait 0,1,1,1,1,0


Ich weiss aber nicht, was Du noch im DOIF plannst. Mit set $SELF cmd_2 würde es auch funktionieren. Wichtig ist, dass:
- der DOIF keine Möglichkeit hat, in einem anderen Zustand zu wechseln, wenn der Taster nicht mehr "on" ist, dewegen das DOELSEIF (0)
- am Ende der Befehlsequenz, er nicht bei cmd_1 blockiert bleibt (deswegen das set $SELF)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Per

Zitat von: amenomade am 12 November 2017, 23:44:07    (set $SELF cmd_0)
Wobei ich eher auf cmd_2 setzen würde. cmd_0 sehe ich eher bei "noch nicht ausgelöst".