state auslesen und zwischenspeichern

Begonnen von der_da, 03 Februar 2016, 16:17:50

Vorheriges Thema - Nächstes Thema

der_da

Habe mal zum Testen folgendes gebaut:

define du_Testdummy2 dummy
attr du_Testdummy2 devStatIcon up:fts_shutter_10 down:fts_shutter_100 9\d.*:fts_shutter_10 8\d.*:fts_shutter_20 7\d.*:fts_shutter_30 6\d.*:fts_shutter_40 5\d.*:fts_shutter_50 4\d.*:fts_shutter_60 3\d.*:fts_shutter_70 2\d.*:fts_shutter_80 1\d.*:fts_shutter_90 0\d.*:fts_shutter_100

define du_Testschalter dummy
attr webCmd klick:stop

define do_TestRollo DOIF (([du_Testschalter:"klick"]) and [du_Testdummy2] eq "up") (set du_Testdummy2 up;sleep 3;set du_Testdummy2 90;sleep 3;set du_Testdummy2 80;sleep 3;set du_Testdummy2 70;sleep 3;set du_Testdummy2 60;sleep 3;set du_Testdummy2 50;sleep 3;set du_Testdummy2 40;sleep 3;set du_Testdummy2 30;sleep 3;set du_Testdummy2 20;sleep 3;set du_Testdummy2 10;sleep 3;set du_Testdummy2 down;set du_Testschalter off)
DOELSEIF
(([du_Testschalter:"klick"]) and [du_Testdummy2] eq "down") (set du_Testdummy2 down;sleep 3;set du_Testdummy2 10;sleep 3;set du_Testdummy2 20;sleep 3;set du_Testdummy2 30;sleep 3;set du_Testdummy2 40;sleep 3;set du_Testdummy2 50;sleep 3;set du_Testdummy2 60;sleep 3;set du_Testdummy2 70;sleep 3;set du_Testdummy2 80;sleep 3;set du_Testdummy2 90;sleep 3;set du_Testdummy2 up;set du_Testschalter off)
DOELSEIF
([du_Testschalter:"stop"]) (set du_Testdummy2 [i]<aktueller Wert hier einsetzen>[/i])


Beim Klick auf "Klick" fährt der (Pseudo-)Rollladen, abhängig vom aktuellen Zustand oben oder unten, in die jeweilige Richtung.
Nun hätte ich es gerne so, dass beim Klick auf "stop" der aktuelle Zustand von du_Testdummy2 abgefragt und irgendwo gespeichert wird, damit ich es im letzten DOELSEIF verwenden kann. Wie kann man das realisieren?

Edit: Fragezeichen ergänzt  ;)

Ellert

ZitatNun hätte ich es gerne so, dass beim Klick auf "stop" der aktuelle Zustand von du_Testdummy2 abgefragt und irgendwo gespeichert wird

Etwa so?
([<Bei Klick auf stop> ]) (setreading du_Testdummy2 irgendwo [du_Testdummy2])

der_da

Nein, ich glaube nicht so. Der Testdummy durchläuft ja mit der Zeit solche states wie:
up
90
80
70
60
50
40
30
20
10
down


Wenn ich nun zwischendrin (z.B. wenn state = 50 ist) auf "stop" klicke, dann soll dieser state (in einem weiteren dummy?) gespeichert werden, damit ich später noch weiß, dass man nun von dort aus wieder starten muss. Und gleichzeitig soll das DOIF sozusagen gestoppt werden, derzeit läuft es ja unbeeindruckt weiter bis "up" oder "down".

Ellert

Du könntest mit wait, statt mit sleep arbeiten, zum Abbrechen des wait gibt es resetwait.