Mehrere Funktionen auf einem Taster mit Doppel- oder Dreifachklick

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Antworten
Zebbelin
Beiträge: 2
Registriert: 30.04.2019, 21:45

Mehrere Funktionen auf einem Taster mit Doppel- oder Dreifachklick

Beitrag von Zebbelin » 10.06.2019, 18:08

Hallo zusammen,

ich war auf der Suche, um mit einem Taster durch Doppel- oder Dreifachklick verschiedene Funktionen zu starten.
Nachdem ich nichts Passendes gefunden habe, hier meine Lösung:

Schritt 1:
Variable anlegen
MultiTasterVar.png
Schritt 2:
Programm anlegen
MultiTasterProg_LI.jpg
Schritt 3:
Variable mit "0" befüllen – z.B. über ein temporäres Programm

Verwendete Skripte:
Skript 1 (rot):

Code: Alles auswählen

object o = dom.GetObject ("VarBüroTaster");
string s = o.Value();

if (s == 1) {
    string hue = "/usr/local/addons/hue/hue.tcl 001788fffe2ad9fd light 2 on:true bri:254 transitiontime:20";
    dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State (hue);
    o.State ("0");
}
Skript 2 (grün):

Code: Alles auswählen

object o = dom.GetObject ("VarBüroTaster");
string s = o.Value();

if (s == 2) {
    string hue = "/usr/local/addons/hue/hue.tcl 001788fffe2ad9fd light 2 on:false transitiontime:20";
    dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State (hue);
    o.State ("0");
}
Skript 3 (blau):

Code: Alles auswählen

object o = dom.GetObject ("VarBüroTaster");
string s = o.Value();

if (s == 3) {
    string hue = "/usr/local/addons/hue/hue.tcl 001788fffe2ad9fd light 2 on:true bri:100 transitiontime:20";
    dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State (hue);
    o.State ("0");
}
Vorteile:
  • Mehrere Funktionen auf einem Taster
  • Geld sparen, da vielleicht der 2fach Taster genügt und man nicht den 6fach Taster benötigt
Nachteile:
  • Geräte lassen sich im Programm nicht direkt steuern, sondern nur per Skript
  • Eine Sekunde Verzögerung, bis Aktion ausgeführt wird
  • Man darf nicht zu schnell mehrfach klicken

In meinem Beispiel passiert folgendes (CUxD und Hue Addon installiert):
  • Einmal drücken: Licht an
  • Zweimal drücken: Licht aus
  • Dreimal drücken: Licht gedimmt an
Dies war natürlich nur ein Test ob es überhaupt funktioniert, aber so kann ich z.B. Licht und Rolladen getrennt über einen Taster steuern.

Funktionsweise:
Beim ersten Drücken wird die Variable VarBüroTaster sofort auf 1 gesetzt
Das Skript wird um eine Sekunde verzögert, da man ja noch öfter drücken könnte.
Das Skript prüft ob die Variable auf 1 steht und wenn ja wird (in meinem Beispiel) das Licht eingeschalten und die Variable wieder auf 0 gesetzt.

Drückt man zwei Mal innerhalb kurzer Zeit, wird die Variable erst auf 1 dann auf 2 gesetzt.
Das erste Skript läuft verzögert los, macht aber wegen der eingebauten if-Abfrage nichts.
Das zweite Skript läuft verzögert auch los, schaltet das Licht aus und setzt die Variable auf 0.

Drückt man drei Mal innerhalb kurzer Zeit, wird die Variable erst auf 1, dann 2, dann 3 gesetzt.
Das erste und zweite Skript läuft verzögert los, macht aber wegen der eingebauten if-Abfrage nichts.
Das dritte Skript läuft verzögert auch los, dimmt das Licht und setzt die Variable auf 0


Viele Grüße,

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“