Ich bin aktuell dabei, mich mit Home Assistant vertraut zu machen und binde dort meine Homematic sowie Homematic IP Taster ein. Dabei ist mir eine Kuriosität aufgefallen, die ich gerne dokumentieren möchte.
Hardware
Ich beschränke mich hier einmal auf die relevante verwendete Hardware:
- Homematic CCU3 (z.B. bei amazon.de, ca. 140 EUR)
- Raspberry Pi für Home Assistant (z.B. bei amazon.de, ca. 60 EUR)
- HmIP-FCI1 Taster (z.B. bei amazon.de, ca. 34 EUR)
- HmIP-FCI6 Taster (z.B. bei amazon.de, ca. 45 EUR)
- HM-PBI-4-FM Taster (z.B. bei amazon.de, ca. 48 EUR)
Taster drücken
In Home Assistant kann man schön sehen, welche Events die Taster versenden beim Drücken, indem man in den Entwicklerwerkzeugen auf das homematic.keypress Event hört. Es zeigt sich, dass die Taster hier ganz unterschiedliche Events senden:
HM-PBI-4-FM Taster (Standardeinstellungen)
Kurzer Tastendruck: Es wird ein „PRESS_SHORT“ Event auf dem entsprechenden Kanel (1-4) gesendet.
Langer Tastendruck: Es wird nach 0,4s einmal das Event „PRESS_LONG“ gesendet, danach alle 0,4s das Event „PRESS_CONT“ und sofort beim Loslassen das „PRESS_LONG_RELEASE“. Die genaue Zeitspanne ist hier von der Option „Mindestdauer für langen Tastendruck“ in der CCU abhängig. Standardwert sind diese 0,4s.
HmIP-FCI1 / HmIP-FCI6 Taster (Standardeinstellungen)
Kurzer Tastendruck: Es wird ein „PRESS_SHORT“ Event auf dem entsprechenden Kanel (1 beim FCI1, 1-6 beim FCI6) gesendet.
Langer Tastendruck: Es wird nach 0,4s einmal das Event „PRESS_LONG“ gesendet, danach alle 0,4s wiederholt das Event „PRESS_LONG“ und sofort beim Loslassen das „PRESS_LONG_RELEASE“. Die genaue Zeitspanne ist hier von der Option „Mindestdauer für langen Tastendruck“ in der CCU abhängig. Standardwert sind diese 0,4s. Die wiederholten „PRESS_LONG“ Events kommen maximal so lange wie bei „Timeout für langen Tastendruck“ eingestellt ist (Standardwert 2min).
HmIP-FCI1 / HmIP-FCI6 Taster (ohne Wiederholungen)
Das Standardverhalten hat mir nicht gefallen, da es z.B. bei einem Dimmer zwar sinnvoll ist, das Event alle x Sekunden auszulösen und dann z.B. einen Schritt zu erhöhen, bei einem Schalter, der nur eine „An/Aus“ Funktion mit einem langen Druck darstellen soll, aber fehl am Platze ist. Da wäre dann entweder die Möglichkeit, auf das erste „PRESS_LONG“ zu hören (was nicht ganz trivial herauszufischen ist) oder auf das „PRESS_LONG_RELEASE“, das dazu führt, dass erst beim Loslassen des Schalters etwas passiert. Beides nicht so toll.
Zum Glück gibt es eine ziemlich versteckte Möglichkeit, das Verhalten anzupassen: Wenn man in der CCU3 den „Timeout für langen Tastendruck“ auf „Nicht aktiv“ setzt, dann verhält sich der Schalter plötzlich ganz anders:
Kurzer Tastendruck: Es wird ein „PRESS_SHORT“ Event auf dem entsprechenden Kanel (1 beim FCI1, 1-6 beim FCI6) gesendet.
Langer Tastendruck: Es wird nach 0,4s einmal das Event „PRESS_LONG“ gesendet und nach weiteren 0,4s das „PRESS_LONG_RELEASE“, mehr nicht. Also explizit keine wiederholten Events. Damit kann ich nun einfach auf „PRESS_LONG“ hören und direkt die gewünschte Aktion ausführen lassen!
Weitere Schalter
HmIP-DSD-PCB (Klingelsensor): Sendet ausschließlich „PRESS_SHORT“, egal was bei „Timeout für langen Tastendruck“ eingestellt ist.
HM-PB-2-WM55-2: Identisch zu HM-PBI-4-FM
Mehr Schalter habe ich nicht zur Verfügung, mit denen ich das Verhalten ausprobieren könnte, lasst mir also gerne einen Kommentar da, wenn ihr dazu noch mehr Datenpunkte habt, dann ergänze ich den Beitrag gerne.
Freiberuflicher IT Berater, Open Source Entwickler und begeisterter Smarthome Nutzer. Das hier ist mein Braindump für Technikthemen, die mich beschäftigen.
Hallo,
die Seite hier hat mich einer Lösung näher gebracht, aber noch nicht ganz zum Ziel.
Ich habe Homematic als Unterlage und Home Assistant zur Systemintegration. Jetzt will ich Ikea Zigbee-Lampen mit eingebauter Dimmfunktion mit den HM-Tastern dimmen, so wie das in der HM-Welt geht: press_short: an/aus; press_long: dim.
Das kriege ich aber nicht hin, weil press_long erst nach release ausgegeben wird. Ich habe wired-Tastereingänge, die nur press_short/press_long liefern.
Gibt es de eine Idee?
Grüße, Eckart
Mir Wired Komponenten habe ich leider keinerlei Erfahrung. Ggf. lässt sich das in den Kanalparametern auch irgendwie indirekt beeinflussen (siehe meine Screenshots im Artikel)? Falls die Taster auch Dimmen können im HM Universum, müssen sie ja eigentlich noch mehr senden.
Wenn sie aber tatsächlich nur nach dem Loslassen entweder SHORT oder LONG senden sehe ich da keine Möglichekeit, ein Dimmen zu realisieren.
VG, Eiko