deCONZ ConBee2 – Xiaomi switch einbinden

Share on facebook
Share on twitter

Hier erfährst Du, wie du über den ConBee II USB Stick auch ein Xiaomi switch (oder alle anderen Geräte) in Home Assistant einbinden kannst, obwohl dieses Gerät nicht automatisch von Home Assistant erkannt wird. Ich erkläre es am Beispiel des günstigen runden Tasters von Xiaomi (WXKG01LM).
Hier zeige ich, wie Du den ConBee II USB Stick einrichten kannst.

1. Einrichtung in deCONZ

Als erstes musst Du über „Hass.io“, „Add-on“, „Dashboard“ die „deCONZ“ Erweiterung öffnen und dann über „Open Web UI“ das Userinterface öffnen. Die Einrichtung habe ich ja bereits in diesem Beitrag gezeigt.

Nachdem Du dich angemeldet hast, musst Du oben links auf den Menübutton klicken und dann öffnet sich die Auswahl, über die Du Geräte hinzufügen kannst.

Es stehen mehrere Hersteller zur Verfügung, nicht jedoch Xiaomi. Das macht aber nichts. Du wählst einfach „Andere“.

Jetzt beginnt der ConBee II USB Stick mit der Suche. Dazu musst Du den Xiaomi Taster in den Verbindungsmodus versetzen. Das ist bei dem Taster nicht schwierig. Mit einem dünnen Gegenstand, z.B. einer Büroklammer, drückst du auf der Rückseite den Restknopf für ca. 5 Sekunden. Der Knopf muss solange gedrückt werden, bis die blaue Leuchtdiode sichtbar aufblinkt.

Der Schalter wird jetzt automatisch erkannt.

In diesem Fall kann man auch das Model deutlich erkennen. Es ist der kleine runde Taster mit dem Aqara Logo. Er heisst „Switch8“. Mit einem Klick auf die Zeile gelangst Du in ein weiteres Auswahlmenü. Dort kannst Du auch die Bezeichnung des Tasters ändern. Das kann wichtig werden, denn genau mit diesem Namen wird der Taster später in Home Assistant bezeichnet werden.

2. Werte in Home-Assistant auslesen

Jetzt müssen die notwendigen Werte ausgelesen werden, die zur Einbindung des Tasters benötigt werden. Als erstes wechselst Du über einen Klick auf diese Schaltfläche bei den Entwicklerwerkzeugen in den Bereich Events. Ab der Home Assistant Version 0.97.1 haben sich die Schaltflächen geändert. Duz klickt auf Entwicklerwerkzeuge und dann auf Ereignisse, wie im zweiten Bild zu sehen ist. Alles weiter funktioniert dann wie bisher auch.

Home Assistant in der Version bis 0.96
neue Schaltflächen in der Home Assistant Version ab 0.97.1

Dort kannst Du die die Meldungen der über Deconz registrieren Switches „abhören“. Dazu schreibst Du ganz unten am Bildschirmrand in die Zeile „Event to subscribe to“ den Event Type „Deconz_event“. Danach klickst Du auf „Start listening“.

Wenn Du jetzt den Knopf auf dem Xiaomi Taster drückst, dann erscheinen im unteren Bildschirmbereich genau die Informationen, die Du benötigst, um Automatisierungen zu programmieren. Also insbesondere die genaue Bezeichnung des Switches, wie er bei Home Assistant registriert ist. In diesem Fall „switch8“. Und eine numerische Bezeichnung für den sog. Event – also den Druck auf die Taste. In diesem Fall 1002 für einen single short release.

Der jeweilige Code steht bei den Tastern für folgendes Ereignis:
1000 initial press
1001 single hold
1002 single short release
1003 single hold release
1004 double short press
1005 triple short press
1006 quad short press
1010 five+ short press

3. Automatisierung erstellen

Du hast jetzt alle Werte die Du benötigst, um eine Automatisierung zu erstellen. Du kannst die Automatisierung über einen Editor erstellen, was ich hier schon einmal gezeigt habe. Oder Du nutzt den eingebauten Automatisierungseditor über „Einstellungen“ –> „Automatisierung“ und klickst auf das runde Plus unten rechts, um eine neue Automatisierung zu erstellen.

Hier musst Du jetzt nur noch die richtigen Werte ergänzen. Den Auslösertyp stellst du auf „Ereignis“ und schreibst dann bei Ereignistyp „deconz_event“. Die notwenigen Ereignisdaten hast Du ja bereits. In meinem Fall möchte ich, dass der Taster auf einen Doppelklick reagiert. Dieses Event entspricht der Ziffer 1004. Jetzt benötigst Du nur noch die „id“ des Tasters. Nach dem Auslesen weisst Du, dass der „switch8“ heisst. Diesen Namen kannst Du übrigens in der Phoscon-App frei wählen. Nachdem Du die beiden Daten eingesetzt hast, ist der Auslöser fertig konfiguriert.

Eine Bedingung benötigt man nicht zwingend, so dass jetzt jedes beliebige Ereignis hinzugefügt werden kann, welches bei einem Doppelklick ausgelöst werden soll. Ich habe hier als Beispiel ein Script gewählt, welches die Leuchten in der Küche und im Wohnzimmer mit einem warmen weissen Licht einschaltet. Damit ist die Automatisierung nun fertig.

4. Automatisierung verfeinern

Eigentlich bist Du jetzt hier fertig. Ich habe allerdings noch einen zweiten Taster, der über Zigbee2MQTT eingebunden ist. Mit beiden Tastern möchte ich bei einem Doppelklick eine bestimmte Lichtszene, die bei mir als script.1005 gespeichert ist, aktivieren. Aktuell habe ich zwei Automatisierungen dafür angelegt. Eine hatte ich schon und eine haben wir gerade gemeinsam zusätzlich angelegt. Eleganter wäre es, alle Auslöser in einer Automatisierung zusammenzufassen. Das geht am einfachsten, indem man die Datei „automations.yaml“ direkt bearbeitet. Der Teil, der für die bisherige Automatisierung zuständig ist, sieht wie folgt aus:

- id: '1549054017744'
  alias: WoZiKuecheWarm
  trigger:
  - entity_id: sensor.0x00158d000205a6a1_click
    platform: state
    to: double
  - entity_id: sensor.0x00158d0002792068_action
    platform: state
    to: flip90
  condition: []
  action:
  - alias: ''
    service: script.1005

Der Teil, der für die neue Automatisierung zuständig ist, lautet:

- id: '1564311867030'
  alias: WoZiKueWarm2
  trigger:
  - event_data:
      event: 1004
      id: switch8
    event_type: deconz_event
    platform: event
  condition: []
  action:
  - alias: ''
    data: {}
    service: script.1005

Das kann man auch zusammenfassen:

- id: '1549054017744'
  alias: WoZiKuecheWarm
  trigger:
  - entity_id: sensor.0x00158d000205a6a1_click
    platform: state
    to: double
  - entity_id: sensor.0x00158d0002792068_action
    platform: state
    to: flip90
  - event_data:
      event: 1004
      id: switch8
    event_type: deconz_event
    platform: event
  condition: []
  action:
  - alias: ''
    service: script.1005

Schreibe einen Kommentar