Tastendruck bei Hand- und Wandsendern auswerten

Bei den Hand- und Wandsendern des HomeMatic Systems werden Tastendrücke nur über einen geänderten Zeitstempel der jeweiligen Variablen detektiert. Es findet also kein Wechsel von TRUE nach FALSE statt. Jedoch ist es möglich einen kurzen von einem langen Tastendrück zu unterscheiden. In IP-Symcon gibt es hierzu zwei Variablen: PRESS_SORT, PRESS_LONG.
Die beiden folgenden Beispiele zeigen, wie die Tastendrucke bei Hand- und Wandsendern ausgewertet werden.

Hinweis: In den Kanaleinstellungen des jeweiligen Key muss der Übertragungsmodus auf „Standard“ stehen!
(HomeMatic Konfiguration)

Beispiel 1: Toggeln (Wechsel TRUE<>FALSE) einer Variable

[ul]
[li] legen Sie eine neue Variable ‚Toggle Test‘ vom Typ Boolean an[/li][li] legen Sie eine neues Skript ‚Toggle Test‘ an[/li][li] geben Sie den u.g. Code ein[/li][li] passen Sie die ID der Variablen an[/li][li] fügen Sie dem Skript ein ‚Ausgelöstes Ereignis / Bei Variablenaktualisierung‘[/li][li] und wählen Sie die Variable ‚ PRESS_SHORT‘ aus[/li][/ul]

SetValue(44929, !GetValue(44929));

Bei kurzen Tastendrücken sollte sich nun der Status der Variablen von TRUE<>FALSE wechseln.

Beispiel 2: Toggeln (Schalten Ein<>Aus) eines Aktors bzw. Beleuchtung (hier HomeMatic)

[ul]
[li] legen Sie eine neues Skript ‚Licht…‘ an[/li][li] geben Sie u.g. Code ein[/li][li] passen Sie die beiden IDs des Aktors an (HM Device, STATE)[/li][li] fügen Sie dem Skript ein ‚Ausgelöstes Ereignis / Bei Variablenaktualisierung‘[/li][li] und wählen Sie die Variable ‚PRESS_LONG‘ aus[/li][/ul]

HM_WriteValueBoolean(40403, "STATE" , !GetValue(53077));

Bei langen Tastendrücken sollte nun die Lampe ein- und ausgeschaltet werden.

Beispiel-Screenshot:

MST

Servus

wäre es denn nicht sinnvoll dies gleich in der Instanz IPS zu integrieren ? Das kann ja eigentlich keine große Wissenschaft sein.
Dazu ein passender Konfigurationsdialog zum Anhackerln was man denn nun möchte.

Ich mein als geübter IPSler ist ist die aktuelle Situation kein Problem.
Aber für Neulinge erstmal eine grobe Stolperfalle. - Wer liest schon alle Forums - oder Hilfeseiten.
Gerade HM ist ja für viele das Einstiegssystem.

gruß
bb

Es sollte auch mit gesicherter Übertragung funktionieren, dazu muss man jedoch in der Zentrale CCU Dummy-Skripts anlegen. Für jeden Kanal des Senders muss für Tastendruck kurz und lang jeweils eine Aktion ausgeführt werden, dazu reicht es aber, eine Systemvariable zu setzen. Dazu habe ich eine Variable „SwitchDummy“ als Systemvariable vom Typ String in der CCU angelegt und pro Sender ein Skript nach folgender Weise eingerichtet:

Grüße,
Martin