HmIP-BSM: Doppelte Keypress-Events bei „Umschalten“

Hallo zusammen,

ich habe folgendes Verhalten mit einem HmIP-BSM in Verbindung mit Home Assistant (homematicip_local / RaspberryMatic-HmIP-RF):

Ausgangssituation

Ich triggere in Home Assistant auf:

event_type: homematic.keypress
type: press_short
subtype: 1

Also Short Press auf Kanal 1 (ch1).

Beobachtung

Fall 1 – Aktion: „Leuchte einschalten“ (light.turn_on)
→ Es wird nur der Zeitstempel von
event.hmip_bsm_xxxxxxx_ch1
aktualisiert.
Alles wie erwartet.

Fall 2 – Aktion: „Leuchte umschalten“ (light.toggle)
→ Zuerst wird der Zeitstempel von
event.hmip_bsm_xxxxxxx_ch1
aktualisiert (Licht geht aus).

→ Kurz danach wird jedoch auch der Zeitstempel von
event.hmip_bsm_xxxxxxx_ch2
aktualisiert – obwohl ich Kanal 2 nicht betätigt habe.

Dadurch wird meine Automation ein zweites Mal ausgelöst und das Licht geht sofort wieder an.

Ziel

Ich möchte mit Kanal 1 eine Hue-Leuchte ein- und ausschalten (Toggle-Funktion), ohne dass Kanal 2 ein Event erzeugt oder eine zweite Auslösung erfolgt.

Wie könnte ich das Problem denn lösen?

Ich möchte nämlich nur einen Taster für Ein-/Ausschalten nutzen, damit ich den anderen Taster für weitere Automationen nutzen kann.

Ich weiß, das Vorgehen mit HmIP-Schaltern in Verbindung mit Hue-Leuchten ist suboptimal, jedoch habe ich die HmIP Schalter bereits seit Jahren im Einsatz und die Hue-Leuchten sind nun neu dazugekommen.

Nachtrag:

Es muss etwas mit der Stromerkennung zu tun haben.

Wenn an dem Schalter 2 Leuchten dranhängen und eine davon ist an, wird die Automation mit der anderen Leuchte problemlos durchgeführt.

Dieses Verhalten ist mir gestern bei einem Long Press trigger auch aufgefallen. Wollte per Long press einen Input Boolean umschalten, der als Bypass dient um die Präsenzmelder zu deaktivieren/ignorieren. Dabei wird dann aber auch wild hin und her geschaltet. Eine Wenn-Dann Automation hatte auch nicht geholfen. Habe dann erstmal oben lange Drücken fürs ausschalten und unten lange drücken um einzuschalten. Werde es mir aber die Tage nochmal genauer angucken warum er das macht und ob ich dafür eine Lösung finde.

Wenn Du event.hmip_bsm_xxxxxxx_ch1 als Auslöser verwenden tust, dann kann Dir doch event.hmip_bsm_xxxxxxx_ch2 egal sein?!

Oder wird der Auslöser event.hmip_bsm_xxxxxxx_ch2 in einer anderen Automation verwendet und somit ungewünscht ausgelöst?

Wenn es aber nur drum geht Doppel events zu vermeiden.
Dann einfach als letzte Aktion eine Verzögerung von 1-2 s einbauen. Zusammen mit dem Modus single, wird der zweite Auslöser dann ignoriert bzw. blockiert.

Gruß Osorkon

Ich habe die Lösung nun nach langem Testen und suchen doch noch gefunden.

@ciddi89 vielleicht hilft dir das auch weiter:

Klick

Gruß

BUGEE

Ja, theoretisch könnte es mir egal sein. Aber richtig, ich möchte mit ch2 natürlich eine andere Automation nutzen.

Ich habe ch1 als Auslöser:

alias: Test-Licht
description: ""
triggers:
  - trigger: state
    entity_id:
      - event.hmip_bsm_XXXXXXXXX_ch1
conditions: []
actions:
  - action: light.toggle
    metadata: {}
    target:
      entity_id: light.datura_unten
    data: {}
mode: single

Ansonsten nichts und dennoch reagiert ch2 und es wird auch daraufhin ausgelöst. Keine Ahnung warum.

Die Verzögerung ist mir auch eingefallen und natürlich habe ich das getestet. Ohne Erfolg.

Dann hat es eben 2 Sekunden gedauert, bis das Licht wieder an ging.

Auch lt. ChatGPT bzgl. ch2 ignorieren, input_datetime, Modus: Single etc. Alles probiert - Ohne Erfolg.

Wenn eine “normale” Automation erstellt wird, reagiert ch2 auch nicht, sobald auf ch1 gedrückt wird.

Lediglich bei einer Automation “Umschalten”, reagiert ch2, wieso auch immer.

Aber wie bereits erwähnt, habe ich nun die Lösung gefunden. Muss mich nur mal schlau machen, ob diese Einstellung irgendwelche Nachteile für mich hat.

Gehört das event.hmip_bsm_XXXXXXXXX und die light.datura_unten Entität zu ein und dem gleichen Schalter?

Wenn es nur am toggle liegt, dann baue die Automation doch anders auf.

alias: Test-Licht
description: ""
triggers:
  - trigger: state
    entity_id:
      - event.hmip_bsm_XXXXXXXXX_ch1
conditions: []
actions:
  - if:
      - condition: state
        entity_id: light.datura_unten
        state:
          - "on"
    then:
      - action: light.turn_off
        metadata: {}
        target:
          entity_id: light.datura_unten
        data: {}
    else:
      - action: light.turn_on
        metadata: {}
        target:
          entity_id: light.datura_unten
        data: {}
mode: single

Gruß Osorkon

Funzt bei mir nicht da ich die internen Direktverknüpfungen brauche um das Deckenlicht, welches an den Schalter angeschlossen ist, zu schalten. Habe es nun mit einem ‚Entpreller‘ gelöst. Nach dem der input boolean umgeschaltet wird, wird 2 Sekunden gewartet.

Ja, light.datura_unten ist natürlich physisch mit dem event.hmip_bsm_XXXXXXXXXverbunden. Jedoch wird physisch der Strom nicht getrennt.

Bzgl. deiner yaml: Gerade getestet, funktioniert nicht, da ch2 sendet, obwohl dieser nicht beachtet werden sollte.

Also löst das Schalten des Lichts den zweiten event aus.
Dann ist es nichts, dass Du über Home Assistant lösen kannst, sondern musst auf der HMIP Seite nach einer Lösung suchen. Da ich keine HmIP Geräte im Einsatz haben, bin ich an der Stele dann leider raus.

Gruß Osorkon