Langer Tastendruck und Programme

HMIP lokale Installation

Moderator: Co-Administratoren

MK999
Beiträge: 61
Registriert: 04.08.2014, 21:58
System: CCU
Hat sich bedankt: 3 Mal
Danksagung erhalten: 2 Mal

Langer Tastendruck und Programme

Beitrag von MK999 » 13.02.2023, 10:51

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:
Direkt.jpg

Im Kanal habe ich den Timeout auf 3s gestellt, da beim Setzen auf "Nicht Aktiv" der lange Tastendruck mehrfach registriert wird:
Kanal.jpg

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):
Prog_AN.jpg
Prog_AUS.jpg

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:
Log1.jpg

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:
Funktioniert.jpg
Log2.jpg
Aber richtig ist das Verhalten doch nicht, oder? Habe ich hier etwas falsch konfiguriert?

Besten Dank,
MK

Xel66
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

Beitrag von Xel66 » 13.02.2023, 11:11

MK999 hat geschrieben:
13.02.2023, 10:51
Wenn ich nun den Taster EIN MAL LANG drücke, wird das Programm wie gewünscht getriggert.
Also wird die Aktion ausgeführt und der Zeitstempel gesetzt. Soweit korrekt.
MK999 hat geschrieben:
13.02.2023, 10:51
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:
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.
MK999 hat geschrieben:
13.02.2023, 10:51
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.
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.
MK999 hat geschrieben:
13.02.2023, 10:51
Aber richtig ist das Verhalten doch nicht, oder? Habe ich hier etwas falsch konfiguriert?
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

MK999
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

Beitrag von MK999 » 13.02.2023, 11:59

Hi Xel66,

vielen Dank für deine Rückmeldung.

In dem Trigger beider Programme prüfe ich zusätzlich noch den Status der Klimaanlage:
Trigger.jpg

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.

MichaelN
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

Beitrag von MichaelN » 13.02.2023, 12:06

MK999 hat geschrieben:
13.02.2023, 11:59
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.
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 +++

Xel66
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

Beitrag von Xel66 » 13.02.2023, 12:48

MK999 hat geschrieben:
13.02.2023, 11:59
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.
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...
Das Programm wird nur durch die Tastenbetätigung getriggert (und braucht deshalb im SONST WENN nicht nochmals aufgeführt werden) und nur das DANN ausgeführt, dessen Nebenbedinung (Klima EIN/AUS) ein WAHR ergibt.

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

Matsch
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

Beitrag von Matsch » 13.02.2023, 13:44

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.

Benutzeravatar
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

Beitrag von HM-Villa » 13.02.2023, 14:04

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:

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
Dann toggelt es auch und läuft nicht um die Wette. :wink:

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

Xel66
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

Beitrag von Xel66 » 13.02.2023, 14:16

HM-Villa hat geschrieben:
13.02.2023, 14:04
EDIT: Ich war wohl ein bischen spät. So ist das, wenn zwischendurch wegläuft. :(
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

MK999
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

Beitrag von MK999 » 13.02.2023, 14:26

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

Matsch
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

Beitrag von Matsch » 13.02.2023, 14:30

MK999 hat geschrieben:
13.02.2023, 14:26
ich werde daher mal mit Stopp langer Tastendruck arbeiten.
Und mit Start langer Tastendruck!!! Nicht "Tastendruck lang"

Antworten

Zurück zu „HomeMatic IP mit CCU“