Hallo zusammen,
ich würde gerne mein DOIF mit mehreren Tastern versehen die man anklicken kann, kurz aufleuchten und dann gleich wieder erlischen. Und das unabhängig von irgendweinem Zustand. Stehe dabei gerade ein wenig auf dem Schlauch, hat jemand eine elegante Lösung?
Mein Lösungsansatz wäre mit uiTable:
defmod RollladenSteuerung DOIF {
my $foo = [$SELF:foo];
if ($foo eq 'on') {
set_Reading('foo', 'off', 1);
}
}
attr RollladenSteuerung readingList foo
attr RollladenSteuerung setList foo
attr RollladenSteuerung uiTable {\
package ui_Table;;\
}\
## schaltbares Icons in der Webansicht\
switch([$SELF:foo]) |
Ist ein wenig "buggy" wenn man schnell immer wieder drauf klickt, funktioniert allerdings grundsätzlich. Hat jemand sonst noch eine Idee?
Beste Grüsse, Aurel
Hier ein Beispiel für Taster/Button, den man anklicken und etwas ausführen kann. Die Ausführung hier setzt den Zustand nach zwei Sekunden wieder zurück.
defmod Licht_Gesamt DOIF {if ([$SELF:"^Licht_AN:.AN$"]){\
set_Exec("ICON",2,'set_Reading("Licht_AN","inaktiv",1)');;\
}\
}
attr Licht_Gesamt readingList Licht_AN
attr Licht_Gesamt uiTable { package ui_Table}\
\
"Licht_AN"\
switch([$SELF:Licht_AN],"general_aus","general_an\@red","inaktiv","AN")\
widget([$SELF:Licht_AN],"iconRadio,\@red,AN,general_an,inaktiv,general_aus")
Mehrere Taster und eine Lampe (kurzes Treppenhaus) oder mehrere Lampen? Für Ersteres gibt es genügend Beispiele, Letzteres kommt an seine Grenzen, wenn verschiedene Taster innerhalb der Haltezeit gedrückt werden. Dafür bietet sich eher Perl-DOIF mit dynamisch erstellten Timern an.
Danke euch, die Lösung von Damian gefällt mir sehr gut da haptisch schlau weil das Icon noch 2 Sekunden "an" bleibt bevor es wieder erlischt (im Gegensatz zu meiner Lösung). Es sind mehrere Taster und quasi 1 Lampe (=hier Rollladen), daher sollte es gut gehen mit dieser Lösung. Danke!