HmIP-BSM sendet Tastendruck-Lang mehrfach

HMIP lokale Installation

Moderator: Co-Administratoren

Benutzeravatar
BFOne
Beiträge: 7
Registriert: 21.03.2017, 10:03

HmIP-BSM sendet Tastendruck-Lang mehrfach

Beitrag von BFOne » 04.04.2019, 00:16

Habe bei einem HmIP-BSM eine Direktverknüpfung zwischen Taste 2 und internem Aktor hergestellt und per Experten-Modus an der Verknüpfung den langen Tastendruck deaktiviert.

Diesen möchte ich jetzt in einem Programm nutzen und damit einen HM-LC-Sw1-DR an/aus schalten. Dazu habe ich das beigefügte Programm geschrieben. Wenn man zwischen 0.4 und 0.8 Sekunden lang drückt, macht das Programm auch das, was es soll, hält man die Taste 2 allerdings dauerhaft gedrückt, so geht das Licht des HM-LC-Sw1-DR abwechselnd (ich schätze im 0.4-Sekunden-Takt?) an und wieder aus, anscheinend wird mein Tastendruck mehrfach betätigt, wenn ich die Taste gedrückt halte. Wie sorge ich dafür, dass der lange Tastendruck nur einmal gezählt wird, bis ich die Taste wieder loslasse?

ccu-programm.JPG
CCU3 + 40 Geräte (HomeMatic und HomeMatic IP)

RalphP
Beiträge: 123
Registriert: 17.05.2018, 10:58
Hat sich bedankt: 2 Mal
Danksagung erhalten: 8 Mal

Re: HmIP-BSM sendet Tastendruck-Lang mehrfach

Beitrag von RalphP » 11.04.2019, 15:55

Klingt ja fast so als wäre der Long_Profile_Action_Type nicht auch inactive und Long_Multiexecute enabled.
Ich nutze den langen Tastendruck auch bei einem BSM ohne Probleme. Habe das direkt mal mit einem langen Tastendruck über mehrere sekunden ausprobiert, läuft sauber durch.
Lass mal den sonst Zweig weg bzw lösche das Programm und schreibe es neu (ohne sonst).

Hier mein Prg. Ausschnitt (BSM hat die FW 1.12.6 ) :
Unbenannt.JPG

Matsch
Beiträge: 5427
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 114 Mal
Danksagung erhalten: 734 Mal

Re: HmIP-BSM sendet Tastendruck-Lang mehrfach

Beitrag von Matsch » 30.05.2019, 19:14

Generell im System ist es so, dass solange eine Taste mehr als 400ms gedrückt ist (Zeit ist modifizierbar), zyklisch die Info "Tastendruck lang" gesendet wird, aller 250ms. Der Wegfall der Botschaft bedeutet "Taste losgelassen".
Normalerweise wird intern ein Timer von 300ms mit jeder Botschaft regetriggert. Das ist m.E. programmtechnisch so nicht zu machen, da die kürzeste einstellbare Verzögerungszeit 1s ist.
Deshalb werte ich solche Botschaften mit einem 1s-Timer aus. Leider resultiert dadurch ein 1s-Nachlauf nach dem Loslassen.
Ich würde mir wünschen, man könnte auch 300ms als Verzögerungszeit einstellen.

Matsch
Beiträge: 5427
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 114 Mal
Danksagung erhalten: 734 Mal

Re: HmIP-BSM sendet Tastendruck-Lang mehrfach

Beitrag von Matsch » 31.05.2019, 16:20

RalphP hat geschrieben:
11.04.2019, 15:55
Lass mal den sonst Zweig weg ...
Genau! Das funktioniert bei zyklischen Botschaften nicht!

Du könntest beispielsweise den Tastenzustand in einer Systemvariablen SV_Status_Taste abfangen wie hier:
Taste_lang.jpg
Mit dem Zustand wahr der Variablen könntest du weitere Aktionen triggern, z.B. das Toggeln. Da bei jeder neuen Botschaft aller 250ms die Verzögerung regetriggert wird, bleibt der Zustand der Variablen stabil auf wahr, solange Botschaften kommen.

Hier wird nun auch klar, warum ich gerne eine Verzögerung von 300ms einstellen können möchte.

Benutzeravatar
BFOne
Beiträge: 7
Registriert: 21.03.2017, 10:03

Re: HmIP-BSM sendet Tastendruck-Lang mehrfach

Beitrag von BFOne » 02.08.2019, 21:57

Die korrekte Antwort lautet wie folgt:

An Kanal 2 des Schalters die Einstellung "Timeout für langen Tastendruck" auf "Nicht aktiv" setzen.

nichtAktiv.JPG
CCU3 + 40 Geräte (HomeMatic und HomeMatic IP)

Matsch
Beiträge: 5427
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 114 Mal
Danksagung erhalten: 734 Mal

Re: HmIP-BSM sendet Tastendruck-Lang mehrfach

Beitrag von Matsch » 03.08.2019, 11:51

Damit kannst du aber nicht das Ende des langen Tastendrucks erkennen. Es ist eine sehr "spezielle" Lösung.
Vielleicht brauchst du das ja auch nicht, aber wenn ich z.B. bei einem langen Tastendruck dimmen will solange gedrückt, ist diese Einstellung kontraproduktiv.

MichaelN
Beiträge: 9656
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1617 Mal

Re: HmIP-BSM sendet Tastendruck-Lang mehrfach

Beitrag von MichaelN » 27.08.2020, 20:28

Ich kapere mal diesen alten Thread. Mir ist die Wirkung der Einstellung "Timeout für langen Tastendruck" auf "Nicht aktiv" trotz Recherche und Handbuch-Lesen immer noch nicht ganz klar. Meine Experimente in der Hinsicht waren auch nicht wirklich aufschlussreich.

Wenn ich die Taste nun 10 Sekunden festhalte, dann wird mit dieser Einstellung nur 1x "Tastendruck lang" gesendet? Und nach den 10 Sekunden "Tastendruck lang Ende"?
Und bei der Einstellung "100ms" würde alle nach 100ms "Tastendruck lang Ende" gesendet? Und dann wieder "Tastendruck lang". Immer im Wechsel, 10 Sekunden lang?
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Matsch
Beiträge: 5427
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 114 Mal
Danksagung erhalten: 734 Mal

Re: HmIP-BSM sendet Tastendruck-Lang mehrfach

Beitrag von Matsch » 27.08.2020, 20:40

MichaelN hat geschrieben:
27.08.2020, 20:28
Wenn ich die Taste nun 10 Sekunden festhalte, dann wird mit dieser Einstellung nur 1x "Tastendruck lang" gesendet? Und nach den 10 Sekunden "Tastendruck lang Ende"?
Es gibt keine Nachricht "Tastendruck Ende"!
Solange die zyklische Botschaft "Tastendruck lang" gesendet wird, ist die Taste gedrückt. Wird sie losgelassen, hört die zyklische Sendung auf.
Das ist das Zeichen für "Taste losgelassen".

Wenn du den Timeout veränderst wie oben, hat das zur Folge, dass die Meldung nur ein einziges Mal kommt, egal wie lange du drückst. Das Loslassen ist dann nicht detektierbar. Aber das hatte ich ja schon gesagt.
Und bei der Einstellung "100ms" würde alle nach 100ms "Tastendruck lang Ende" gesendet? Und dann wieder "Tastendruck lang". Immer im Wechsel, 10 Sekunden lang?
Meinst die den Timeout für den langen Tatendruck? D.h. nach der eingestellten Zeit wird die Auswertung des langen Tastendrucks beendet, auch wenn die Taste noch weiter gedrückt ist. Dann müßte die zyklische Botschaft auch aufhören und der Empfänger denken, die Taste sei losgelassen worden - obwohl sie das gar nicht ist.
Zuletzt geändert von Matsch am 27.08.2020, 20:47, insgesamt 1-mal geändert.

MichaelN
Beiträge: 9656
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1617 Mal

Re: HmIP-BSM sendet Tastendruck-Lang mehrfach

Beitrag von MichaelN » 27.08.2020, 20:44

Und ansonsten wird die Nachricht alle xxx ms gesendet, je nachdem was als timeout eingestellt ist?
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Matsch
Beiträge: 5427
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 114 Mal
Danksagung erhalten: 734 Mal

Re: HmIP-BSM sendet Tastendruck-Lang mehrfach

Beitrag von Matsch » 27.08.2020, 20:48

Die Nachricht wird immer aller 250ms gesendet. Der Timeoutwert bestimmt das Ende der Meldung.
Im Normalfall also 30s. Nach 30s tut der Aktor so, als wäre die Taste losgelassen worden, auch wenn sie noch gedrückt ist.
Ist der Timeoutwert kürzer als 250 ms, kann nur einmal gesendet werden.

Antworten

Zurück zu „HomeMatic IP mit CCU“