
Aqara Button in Homeassistant nutzen
Da mich der Aqara Magic Cube so begeistert hat, habe ich mir zusätzlich noch einige Aqara Buttons bestellt. Analog zu dem Blogpost über dem Cube, habe ich AppDaemon verwendet und den Button zuvor mit dem Conbee 2 gepaired. Wie auch der Magic Cube, feuert der Button lediglich auf dem Eventbus und verwendet dabei die folgenden Codes:
- 1002 – Einfacher Klick
- 1004 – Zweifacher Klick
- 1005 – Dreifacher Klick
- 1006 – Vierfacher Klick
Angeblich kann der Button neben den genanten Events auch noch registrieren, wenn der Knopf länger gedrückt gehalten wird, jedoch funktioniert dies bei mir nicht.
App für Appdaemon erstellen
Meinem Button habe ich in der Phoscon App den Namen button_schlafzimmer
zugewiesen. Unter diesem Namen feuert er auch auf dem Event-Bus, wenn man das Thema deconz_event
abonniert.
Als ersten Schritt muss eine neue Datei mit dem Namen button_schlafzimmer.py
im Pfad /config/appdaemon/apps
angelegt werden. Diese hat den folgenden Inhalt:
import appdaemon.plugins.hass.hassapi as hass from enum import Enum DECONZ_IDS = ('button_schlafzimmer') SENSOR_ID = 'sensor.button_schlafzimmer' class Action(str, Enum): PRESS_1 = 'Pressed 1x' PRESS_2 = 'Pressed 2x' PRESS_3 = 'Pressed 3x' PRESS_4 = 'Pressed 4x' class ButtonControl(hass.Hass): def initialize(self): self.listen_event(self.handle_event, "deconz_event") def handle_event(self, event_name, data, kwargs): if data['id'] in DECONZ_IDS: if data['event'] == 1002: self.set_state(SENSOR_ID, state=Action.PRESS_1) self.call_service("script/turn_on", entity_id = "script.bose_bluetooth_schlafzimmer") elif data['event'] == 1004: self.set_state(SENSOR_ID, state=Action.PRESS_2) self.call_service("switch/toggle", entity_id = "switch.chromecast_switch") elif data['event'] == 1005: self.set_state(SENSOR_ID, state=Action.PRESS_3) self.call_service("scene/turn_on", entity_id = "scene.schlafzimmer_bettzeit") elif data['event'] == 1006: self.set_state(SENSOR_ID, state=Action.PRESS_4) self.call_service("script/turn_on", entity_id = "script.sz_soundtouch_aus_1h")
Diese App erzeugt einen Sensor mit dem Namen sensor.button_schlafzimmer
, dessen State ausgibt wie häufig der Button gedrückt wurde. Gleichzeitig triggert sie exemplarisch zwei Skripte, schaltet eine Szene für Licht ein und toggled eine Steckdose.
App in apps.yaml hinzufügen
Damit Appdaemon anschließend die neue App verwenden kann, muss noch ein Eintrag in der Datei apps.yaml
im Pfad /config/appdaemon/apps
erfolgen:
button_schlafzimmer: module: button_schlafzimmer class: ButtonControl
Anschließend kann der Button erfolgreich verwendet werden. Viel Erfolg!