Aussehen Integer-Button

Hallo Leute,

ich habe mal wieder ein kleines Problem und komme einfach auf keinen grünen Zweig.

Ich würde gerne die Button einer Integer-Variable als Taster verwenden. Aktuell habe ich drei Button nebeneinander. Öffnen, Schatten, und Schließen. Wenn ich jetzt auf z. B. Öffnen drücke ist dieser Schalter aktiv und bleibt es halt auch. Ich möchte aber das der Button nach dem drücken kurz Aktiv wird und nach ca. einer Sekunde wieder inaktiv.

Hat jemand einen Tipp für mich?

Eine Idee war es in dem Actionscript am ende die Integer-Variable, mit einer Verzögerung (sleep) von 1 Sekunde, auf einen höheren Wert (z. B. 5) zu setzten damit die 3 Taster alle optisch deaktiviert erscheinen. Das funktioniert auch beim ersten mal, nur danach ändert sich beim betätigen überhaupt nichts mehr.

Gruß Stephan

Hi Stephan!

Ich mache das genau so, wie du es am Ende beschreibst. Und das seit bald einem Jahr ohne Probleme.

Ich drücke einen Integer-Button, ein EVENT-TRIGGER startet ein Skript und macht irgendwas, derweil bleibt der Button aktiv, wenn alle Aufgaben erledigt sind, dann setzte ich einen nicht vorhandenen Wert und alle Buttons sind wieder farblich deaktiviert.

Action-Script ist bei mir nur der magische Teil mit IPS-Variable und IPS-Value… Vielleicht liegt darin bei dir das Problem?!

Bei Aufgaben die länger dauern arbeite ich zusätzlich noch mit einer Hilfsvariable, damit man nicht erneut drücken kann, bis der fertig ist. Zum Beispiel bei „ALL OFF in 3 Minuten“ oder bis AV-Receiver gestartet haben usw.

Grüße,
Chris

Hallo Chris,

oh man, ich Idiot!

klar das es nicht funktiniert wenn man nur 100 ms bei sleep angibt, so schnell reagiert das WF einfach nicht. Mit einer 0 mehr läuft es dann auch :rolleyes:

Danke für dein Feedback!

Gruß Stephan

Eher nicht, weil ‚eigentlich‘ ist das mit dem zweiten Event bei Dir eher Unklug.
Man ‚sollte‘ in dem nicht magischen Script (es setzt ja nur die angeklickte Variable $_IPS[‚Variable‘] auf den angeklickten Wert $_IPS[‚Value‘]) zuerste alle durchzuführenden Aktionen starten und nur am Ende dann mit SetValue den neuen Wert schreiben und somit anzeigen.
Im Fehlerfall bleibt dann der Wert nämlich alt und am besten noch per echo eine Fehlermeldung senden.
Diese erscheint dann als ERROR auch im Webfront und der Bediener sieht gleich … das hat nicht funktioniert.
So machen dies auch alle IPS-Instanzen.

Außerdem besteht bei der Variante mit dem zusätzlichen Event noch die Gefahr eine Endlosschleife zu bauen.
Aktion im Webfront - > Wert geändert.
Event startet Script -> Gerät/Aktion wird angesteuert/ausgeführt -> neuer Wert wird angezeigt -> Event startet Skript…usw…

Michael

Hi Michael!

An sich richtig…aber ich habe einige Stellen, wo ich einen solchen speziellen Konstrukt benötige. Je nachdem, ob die Bedienung nur über WebFront erfolgt oder auch kreuz und quer von anderen Skripten, … Bei sowas gibt es halt nicht „die eine Lösung“, sondern es ist etwas komplexer :wink: Aber du kennst das sicher :slight_smile:

Und eben bei meinem Beispiel, da ist das Action-Skript zwar das gleiche Skript was auch über Event-Trigger aufgerufen wird, aber alles etwas speziell :smiley: Das alles genauer zu beschreiben, würde meine Finger unnötig quälen :smiley: Loop in meinem Fall ausgeschlossen :slight_smile:

Grüße,
Chris