Der Aqara Magic Cube ist ein kleiner Würfel von der Grösse eines Tischtennisballs mit einem Six-Axis-Beschleunigungssensor. Sechs Seiten, sechs Gesten – jede einzelne lässt sich in Home Assistant frei verdrahten. Wer eine vollwertige Fernbedienung mit Knopfdruck-Stress satt hat, baut sich mit dem Würfel einen taktil sehr befriedigenden Universal-Controller. Diese Anleitung zeigt am Beispiel der Automation automation.aqara_magic_cube, wie aus einem einzigen Gadget eine ganze Steuerebene wird.
Was der Würfel kann
Der Cube erkennt sechs Gesten zuverlässig: shake (schütteln), flip90 (Kippen um 90 Grad), flip180 (Kippen um 180 Grad), slide (auf einer Seite schieben), knock (auf einer Seite klopfen) und rotate (im oder gegen den Uhrzeigersinn drehen, mit Winkel als Wert). Zusätzlich meldet er nach jedem Event die aktuelle Liegeseite (Side 1 bis Side 6). Über Zigbee2MQTT erscheint das alles im Event-Strom als zha_event oder mqtt-Payload mit klaren Action-Strings.
Das eröffnet zwei Steuerlogiken parallel: erstens Gesten als direkte Aktionen («Schütteln» schaltet alle Lichter aus), zweitens Seiten als Modus-Wechsler («Seite 3 oben = Filmmodus»). Für eine durchdachte Bedienung kombiniert man beide – die Seite definiert den Kontext, die Geste die konkrete Aktion in diesem Kontext.
Schritt 1: Cube einrichten und Events sichtbar machen
In Z2M heisst das Gerät meist MFKZQ01LM. Sobald gepairt, melden die Events sich als MQTT-Payloads auf dem Topic zigbee2mqtt/aqara_cube. Wer den ZHA-Stack nutzt, sieht direkt zha_event mit Feldern command und args. Zum Debuggen lohnt der Blick in Developer Tools → Events: Subskription auf zha_event filtern und dann den Cube schütteln. Der Event-Strom verrät die exakten Action-Strings.
Schritt 2: Eine Automation mit Choose-Logik
Statt fünf Einzel-Automationen empfiehlt sich eine einzige mit choose-Block. Die Automation automation.aqara_magic_cube enthält genau diese Struktur:
alias: Aqara Magic Cube
description: Universal-Fernbedienung im Wohnzimmer
trigger:
- platform: event
event_type: zha_event
event_data:
device_ieee: 00:15:8d:00:0a:bc:de:f0
action:
- variables:
action: "{{ trigger.event.data.command }}"
side: "{{ trigger.event.data.args.activated_face | default(0) }}"
- choose:
- conditions: "{{ action == 'shake' }}"
sequence:
- service: light.turn_off
target:
area_id: wohnzimmer
- conditions: "{{ action == 'knock' and side == 1 }}"
sequence:
- service: scene.turn_on
target:
entity_id: scene.lese_szene
- conditions: "{{ action == 'flip180' }}"
sequence:
- service: media_player.media_play_pause
target:
entity_id: media_player.homepod_wohnzimmer
- conditions: "{{ action == 'rotate_right' }}"
sequence:
- service: media_player.volume_up
target:
entity_id: media_player.homepod_wohnzimmer
- conditions: "{{ action == 'rotate_left' }}"
sequence:
- service: media_player.volume_down
target:
entity_id: media_player.homepod_wohnzimmer
mode: queued
Das Schöne: Wer die Aktion einer Geste ändern will, bearbeitet eine einzige YAML-Stelle. Wer eine neue Geste hinzufügen will, ergänzt einen conditions/sequence-Block. Kein Spaghetti-Code, kein doppeltes Pflegen.
Schritt 3: Seiten als Kontexte nutzen
Wer noch eine Ebene tiefer geht, definiert pro Seite einen Modus. Liegt Seite 1 oben, ist «Musik» aktiv – Rotate steuert Lautstärke. Liegt Seite 2 oben, ist «Licht» aktiv – Rotate dimmt. Das geht elegant mit einem input_select.cube_mode:
- conditions: "{{ action == 'flip90' or action == 'flip180' }}"
sequence:
- service: input_select.select_option
target:
entity_id: input_select.cube_mode
data:
option: >-
{% set mapping = {1:'Musik', 2:'Licht', 3:'Heizung', 4:'Film', 5:'Aus', 6:'Szene'} %}
{{ mapping[side] }}
Anschliessend prüft jede Geste den aktuellen input_select-Wert und führt die kontextspezifische Aktion aus. Sechs Modi mal vier nutzbare Gesten ergeben effektiv 24 Funktionen – auf einem Würfel mit Kantenlänge unter fünf Zentimetern.
Schritt 4: Visuelles und akustisches Feedback
Wer mit dem Würfel hantiert, will Bestätigung. Eine Hue-Lampe blinkt kurz, der HomePod gibt einen dezenten Klick. Dafür ergänzt man am Ende der Aktion einen service: light.turn_on mit flash: short oder triggert ein TTS-Snippet. Im Artikel «Hue-Szenen tageszeit-gesteuert per input_select» wird die Logik mit input_select ähnlich behandelt – die Konzepte lassen sich direkt übertragen.
Fazit
Der Aqara Magic Cube ist eine der unterschätztesten Eingabegeräte für Home Assistant. Mit unter dreissig Franken, einer einzigen YAML-Automation und etwas Geduld bei der Modus-Logik entsteht eine taktile Fernbedienung, die jede App schlägt. Wer Gäste hat, muss niemandem mehr zeigen, welche Lampe wo ist – einmal kippen, einmal klopfen, fertig. Für die nächste Iteration lohnt ein Blick auf event.aqara_cube_action mit zusätzlichen Custom-Sentences im Voice Assistant, um die Geste mit Sprache zu kombinieren.