HmIP-BSM sendet Tastendruck-Lang mehrfach
Moderator: Co-Administratoren
HmIP-BSM sendet Tastendruck-Lang mehrfach
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?
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?
CCU3 + 40 Geräte (HomeMatic und HomeMatic IP)
-
- 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
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 ) :
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 ) :
-
- 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
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.
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.
-
- 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
Genau! Das funktioniert bei zyklischen Botschaften nicht!
Du könntest beispielsweise den Tastenzustand in einer Systemvariablen SV_Status_Taste abfangen wie hier:
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.
Re: HmIP-BSM sendet Tastendruck-Lang mehrfach
Die korrekte Antwort lautet wie folgt:
An Kanal 2 des Schalters die Einstellung "Timeout für langen Tastendruck" auf "Nicht aktiv" setzen.
An Kanal 2 des Schalters die Einstellung "Timeout für langen Tastendruck" auf "Nicht aktiv" setzen.
CCU3 + 40 Geräte (HomeMatic und HomeMatic IP)
-
- 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
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.
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.
-
- 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
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?
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 +++
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 +++
-
- 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
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.
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.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?
Zuletzt geändert von Matsch am 27.08.2020, 20:47, insgesamt 1-mal geändert.
-
- 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
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 +++
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 +++
-
- 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
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.
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.