Langer Tastendruck und Programme
Moderator: Co-Administratoren
-
- Beiträge: 61
- Registriert: 04.08.2014, 21:58
- System: CCU
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 2 Mal
Langer Tastendruck und Programme
Hallo zusammen,
ja, das Thema wurde schon des Öfteren diskutiert, und viele Threads habe ich auch gelesen/gefunden, aber keiner passte so wirklich.
Mein Problem ist, dass ein langer Tastendruck scheinbar nur 1x registriert wird als Event "Langer Tastendruck", beim 2. Mal dann nur als "unbekannte Meldung, Langer Tastendruck, ..." (siehe unten), was dazu führt, dass das Programm nicht getriggert wird.
Ich nutze die CCU3 mit FW 3.67.10 und mein aktuelles Problemkind ist ein HmIP-DRSI4 mit FW 1.4.2.
Ich nutze die interne DV zwischen Taster und Ausgang, habe dort den langen Tastendruck deaktiviert:
Im Kanal habe ich den Timeout auf 3s gestellt, da beim Setzen auf "Nicht Aktiv" der lange Tastendruck mehrfach registriert wird:
Die DV funktioniert einwandfrei. Jetzt möchte ich den langen Tastendruck nutzen, um ein Programm zu starten, bzw gibt es 2 Programme, die gestartet werden sollen (aber auch mit nur einem Programm mit Wenn ... Dann ... Sonst ... ist das Verhalten identisch):
Wenn ich nun den Taster EIN MAL LANG drücke, wird das Programm wie gewünscht getriggert.
Wenn ich dann ~30 Sekunden warte (siehe Zeitsprung im Log) und dann noch EIN MAL LANG drücke, wird das Programm NICHT erneut getriggert und es taucht im Log folgendes auf:
Als WorkAround kann ich zusätzlich den Trigger "Stopp langer Tastendruck" konfigurieren, dann funktionert es wie gewünscht und das Programm wird immer beim langen Tastendruck getriggert. Hier das geänderte Programm und die Logs dazu: Aber richtig ist das Verhalten doch nicht, oder? Habe ich hier etwas falsch konfiguriert?
Besten Dank,
MK
ja, das Thema wurde schon des Öfteren diskutiert, und viele Threads habe ich auch gelesen/gefunden, aber keiner passte so wirklich.
Mein Problem ist, dass ein langer Tastendruck scheinbar nur 1x registriert wird als Event "Langer Tastendruck", beim 2. Mal dann nur als "unbekannte Meldung, Langer Tastendruck, ..." (siehe unten), was dazu führt, dass das Programm nicht getriggert wird.
Ich nutze die CCU3 mit FW 3.67.10 und mein aktuelles Problemkind ist ein HmIP-DRSI4 mit FW 1.4.2.
Ich nutze die interne DV zwischen Taster und Ausgang, habe dort den langen Tastendruck deaktiviert:
Im Kanal habe ich den Timeout auf 3s gestellt, da beim Setzen auf "Nicht Aktiv" der lange Tastendruck mehrfach registriert wird:
Die DV funktioniert einwandfrei. Jetzt möchte ich den langen Tastendruck nutzen, um ein Programm zu starten, bzw gibt es 2 Programme, die gestartet werden sollen (aber auch mit nur einem Programm mit Wenn ... Dann ... Sonst ... ist das Verhalten identisch):
Wenn ich nun den Taster EIN MAL LANG drücke, wird das Programm wie gewünscht getriggert.
Wenn ich dann ~30 Sekunden warte (siehe Zeitsprung im Log) und dann noch EIN MAL LANG drücke, wird das Programm NICHT erneut getriggert und es taucht im Log folgendes auf:
Als WorkAround kann ich zusätzlich den Trigger "Stopp langer Tastendruck" konfigurieren, dann funktionert es wie gewünscht und das Programm wird immer beim langen Tastendruck getriggert. Hier das geänderte Programm und die Logs dazu: Aber richtig ist das Verhalten doch nicht, oder? Habe ich hier etwas falsch konfiguriert?
Besten Dank,
MK
-
- Beiträge: 14148
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 583 Mal
- Danksagung erhalten: 1497 Mal
Re: Langer Tastendruck und Programme
Also wird die Aktion ausgeführt und der Zeitstempel gesetzt. Soweit korrekt.
Da dann die Klimaanlage eingeschaltet ist, wird die Aktion natürlich auch nicht mehr ausgeführt und die Bedingungsprüfung nicht durchlaufen. Der Zeitstempel wird nicht aktualisiert. Soweit auch noch korrekt. Die Meldungen in Systemprotokoll sind vernachlässigbar, denn die CCU meldet die Vorgänge korrekt. Sie erkennt die Betätigung des lange Tastendrucks und auch das Loslassen des Tasters.
Heißt, eine eingeschaltete Klimaanlage wird noch mal eingeschaltet? Woran machst Du das fest? Am Zeitstempel? Nun ja, das Programm besitzt zwei Trigger und da ist das Verhalten des Zeitstempels eher verwirrend. Heißt für Dich nur, dass die Bedingungsprüfung durchlaufen wurde. Die Aktion dürfte aber nicht ein zweites Mal ausgeführt werden, da der Zustand der Klimaanlage nicht passen dürfte.
Das Verhalten passt meines Erachtens. Die Protokolleinträge decken sich vermutlich nur nicht mit Deiner Erwartungshaltung. Das Thema "Zeitstempel" ist ein Thema mit vielen Missverständnissen.
Ich würde dieses Thema auch mit einem Programm und einem SONST WENN (nicht SONST!) erschlagen und den gegensätzlichen Schaltzustand im SONST WENN prüfen und die Aktionen im zugehörigen DANN hinterlegen. Der Tastendruck ist ein ziemlich eindeutiger Trigger (im Gegensatz zu komplementären Sensordaten oder Statusaktualisierungen), der keine Fehlauslösungen produziert.
Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
-
- Beiträge: 61
- Registriert: 04.08.2014, 21:58
- System: CCU
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 2 Mal
Re: Langer Tastendruck und Programme
Hi Xel66,
vielen Dank für deine Rückmeldung.
In dem Trigger beider Programme prüfe ich zusätzlich noch den Status der Klimaanlage:
Und da prüfe ich einmal ob die Klimaanlage EIN und einmal ob sie AUS ist (siehe Screenshots oben).
Und die Programme an sich laufen ja und werden ja auch richtig getriggert, sobald ich neben "Tastendruck lang" eine oder Verknüpfung mit "Stopp langer Tastendruck" hinzufüge. Nur der Trigger "Stopp langer Tastendruck" funktionert auch nicht, es müssen komischerweise beide Trigger vorhanden sein.
Und wie gesagt in einem Programm mit "Wenn, Dann, Sonst" ist das Verhalten identisch.
Es geht mir tatsächlich nur darum, dass scheinbar ein "Tastendruck land" alleine nicht zuverlässig erkannt wird, wenn er als einziger Trigger verwendet wird.
vielen Dank für deine Rückmeldung.
In dem Trigger beider Programme prüfe ich zusätzlich noch den Status der Klimaanlage:
Und da prüfe ich einmal ob die Klimaanlage EIN und einmal ob sie AUS ist (siehe Screenshots oben).
Und die Programme an sich laufen ja und werden ja auch richtig getriggert, sobald ich neben "Tastendruck lang" eine oder Verknüpfung mit "Stopp langer Tastendruck" hinzufüge. Nur der Trigger "Stopp langer Tastendruck" funktionert auch nicht, es müssen komischerweise beide Trigger vorhanden sein.
Und wie gesagt in einem Programm mit "Wenn, Dann, Sonst" ist das Verhalten identisch.
Es geht mir tatsächlich nur darum, dass scheinbar ein "Tastendruck land" alleine nicht zuverlässig erkannt wird, wenn er als einziger Trigger verwendet wird.
-
- Beiträge: 9649
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 697 Mal
- Danksagung erhalten: 1617 Mal
Re: Langer Tastendruck und Programme
So allgemein stimmt das nicht. Ich habe einen WRCD mit dem ich regelmäßig mit langem Tastendruck Aktionen auslöse.
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: 14148
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 583 Mal
- Danksagung erhalten: 1497 Mal
Re: Langer Tastendruck und Programme
Die Beobachtung kann ich nicht teilen. Ich verwende sowas in klassischen "nur Taster"-Szenarien, als auch bei IP-(Schalt)Aktoren zum Auslösen von Programmen und in einem Fall auch für eine Direktverknüpfung. Bei keinem konnte ich bisher eine Unzuverlässigkeit feststellen. Und wie schon geschrieben, ist "funktioniert nicht" eine äußerst schlechte Fehlerbeschreibung. Harte Fakten wie "Aktionen im DANN werden nicht ausgeführt" etc. wäre aussagekräftiger. So ist immer noch offen, ob dieses "funktioniert nicht" nur nicht die Erwartungshaltung erfüllt (Log- und Protokolleinträge) oder ob wirklich ein funktionelles Versagen festgestellt wird. Kann ich mir bei einem so einfachen Konstrukt (eine einzige Nebenbedingung) eben eher nicht vorstellen. Vielleicht hat die Nebenbedingung zum Zeitpunkt des Betätigens noch nicht den richtige Status. Der Tastendruck wird ja laut Protokoll ordnungsgemäß erkannt und auch geloggt. Warum sollte dann die Bedingungsprüfung des Programms nicht drauf reagieren. Das Systemprotokoll (auf alles Loggen) gäbe detailliertere Auskünfte. Dort würdest Du das Triggern und auch den Abbruch der Bedingungsprüfung sehen (und dann wird kein Zeitstempel gesetzt).
Und noch mal. Es reicht gundsätzlich ein Programm:
Code: Alles auswählen
WENN Tastenbetätigung lang
UND Klima AUS nur prüfen
DANN ....
SONST WENN
Klima EIN nur prüfen
DANN...
Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
-
- Beiträge: 5424
- Registriert: 30.05.2019, 11:37
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Chemnitz
- Hat sich bedankt: 114 Mal
- Danksagung erhalten: 733 Mal
Re: Langer Tastendruck und Programme
Aber Vorsicht! Bei HmIP ist "Tastendruck lang" ein zyklisches Ereignis mit 250 ms Abstand! Wenn man nur Beginn und Ende des Tastendrucks triggern will, darf man nicht "Tastendruck lang" verwenden, sondern die speziellen Ereignisse für Start und Ende.
Für die meisten Nutzer ist "Tastendruck lang" ein unbrauchbares Ereignis.
Für die meisten Nutzer ist "Tastendruck lang" ein unbrauchbares Ereignis.
- HM-Villa
- Beiträge: 507
- Registriert: 24.01.2022, 10:13
- System: CCU
- Hat sich bedankt: 29 Mal
- Danksagung erhalten: 119 Mal
Re: Langer Tastendruck und Programme
Hallo MK999,
wenn Du zwei Programme hast, die über den Schaltzustand des Aktors voneinander abhängen, aber mit dem selben Trigger gestartet werden, laufen die quasi um die Wette. Das schnellere wird (auch erneut) ausgeführt, das andere dann nicht mehr, weil die Bedingung nicht (mehr) wahr ist. Das selbe passiert, wenn Du beide Schaltzustände in ein Programm packst, aber zweimal den selben Trigger verwendest (Tastendruck lang) verwendest.
Du willst ja eine Toggle-Taste für den langen Tastendruck haben. Da hilft es nur, nur ein Programm zu nehmen und auch nur einmal zu triggern (nicht bei Sonst-Wenn noch einmal den Tastentrigger einbauen) und die Schaltrichtung nur anhand des Schaltzustandes des Aktors oder der SV zu bestimmen. Also etwa so:
Dann toggelt es auch und läuft nicht um die Wette.
EDIT: Ich war wohl ein bischen spät. So ist das, wenn zwischendurch wegläuft.
wenn Du zwei Programme hast, die über den Schaltzustand des Aktors voneinander abhängen, aber mit dem selben Trigger gestartet werden, laufen die quasi um die Wette. Das schnellere wird (auch erneut) ausgeführt, das andere dann nicht mehr, weil die Bedingung nicht (mehr) wahr ist. Das selbe passiert, wenn Du beide Schaltzustände in ein Programm packst, aber zweimal den selben Trigger verwendest (Tastendruck lang) verwendest.
Du willst ja eine Toggle-Taste für den langen Tastendruck haben. Da hilft es nur, nur ein Programm zu nehmen und auch nur einmal zu triggern (nicht bei Sonst-Wenn noch einmal den Tastentrigger einbauen) und die Schaltrichtung nur anhand des Schaltzustandes des Aktors oder der SV zu bestimmen. Also etwa so:
Code: Alles auswählen
WENN
TV_Schlafen_TASTER bei Start langer Tastendruck
UND
Klimaanlage_Schlafen bei Schaltzustand: Aus nur prüfen
DANN
SERVICE_PROGRAMM sofort PROG: Klima_Schlafen_AN
Klimaanlage_Schlafen sofort Schaltzustand: Ein
SONST WENN
Klimaanlage_Schlafen bei Schaltzustand: Ein nur prüfen
DANN
SERVICE_PROGRAMM sofort PROG: Klima_Schlafen_AUS
Klimaanlage_Schlafen sofort Schaltzustand: Aus
EDIT: Ich war wohl ein bischen spät. So ist das, wenn zwischendurch wegläuft.
______________________________________________________
950 Kanäle in 201 Geräten und 39 CUxD-Kanäle in 5 CUxD-Geräten
950 Kanäle in 201 Geräten und 39 CUxD-Kanäle in 5 CUxD-Geräten
-
- Beiträge: 14148
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 583 Mal
- Danksagung erhalten: 1497 Mal
Re: Langer Tastendruck und Programme
Alles gut! Wenn zwei Leute unabhängig voneinander die gleiche Empfehlung geben, liegt der Verdacht nahe, dass die Empfehlung nicht ganz aus der Luft gegriffen und für die Aufgabenstellung zielführend ist. Wobei, die Gefahr einer race condition sehe ich nicht so stark, da beide Prüfungen quasi "gleichzeitig" ausgeführt werden und die Zusatzbedingung zu diesem Zeitpunkt einen eindeutigen Status hat. Möglich ist das aber durchaus, da ja nur eine Sysvar umgeschaltet wird. Es kommen keine Verzögerungen durch Kommunikation hinzu. Zur Sicherheit könnte man da ja jeweils eine Sekunde Verzögerung in die Aktion einbauen.
Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
-
- Beiträge: 61
- Registriert: 04.08.2014, 21:58
- System: CCU
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 2 Mal
Re: Langer Tastendruck und Programme
Hi Xel66,
Das man den Trigger nur im "Wenn" nutzen muss, wusste ich (noch) nicht, dafür auf jeden Fall vielen Dank
Ich habe das Programm mal entsprechend umgebaut und werde mal weiter testen.
Eben hat es geklappt, vermutlich kommt das System mit den 2 Programmen auf gleichem Trigger nicht so gut zurecht.
Und Matsch, genau das habe ich eben auch gesehen ... ich werde daher mal mit Stopp langer Tastendruck arbeiten.
Vielen Dank euch allen!
MK
Das man den Trigger nur im "Wenn" nutzen muss, wusste ich (noch) nicht, dafür auf jeden Fall vielen Dank
Ich habe das Programm mal entsprechend umgebaut und werde mal weiter testen.
Eben hat es geklappt, vermutlich kommt das System mit den 2 Programmen auf gleichem Trigger nicht so gut zurecht.
Und Matsch, genau das habe ich eben auch gesehen ... ich werde daher mal mit Stopp langer Tastendruck arbeiten.
Vielen Dank euch allen!
MK
-
- Beiträge: 5424
- Registriert: 30.05.2019, 11:37
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Chemnitz
- Hat sich bedankt: 114 Mal
- Danksagung erhalten: 733 Mal