{"id":535,"date":"2026-05-23T09:44:37","date_gmt":"2026-05-23T07:44:37","guid":{"rendered":"https:\/\/www.coremind.ch\/wordpress\/?p=535"},"modified":"2026-05-23T09:44:37","modified_gmt":"2026-05-23T07:44:37","slug":"aqara-magic-cube-als-universal-fernbedienung-in-ha","status":"publish","type":"post","link":"https:\/\/www.coremind.ch\/wordpress\/aqara-magic-cube-als-universal-fernbedienung-in-ha\/","title":{"rendered":"Aqara Magic Cube als Universal-Fernbedienung in HA"},"content":{"rendered":"<p>Der Aqara Magic Cube ist ein kleiner W\u00fcrfel von der Gr\u00f6sse eines Tischtennisballs mit einem Six-Axis-Beschleunigungssensor. Sechs Seiten, sechs Gesten \u2013 jede einzelne l\u00e4sst sich in Home Assistant frei verdrahten. Wer eine vollwertige Fernbedienung mit Knopfdruck-Stress satt hat, baut sich mit dem W\u00fcrfel einen taktil sehr befriedigenden Universal-Controller. Diese Anleitung zeigt am Beispiel der Automation <code>automation.aqara_magic_cube<\/code>, wie aus einem einzigen Gadget eine ganze Steuerebene wird.<\/p>\n<h2>Was der W\u00fcrfel kann<\/h2>\n<p>Der Cube erkennt sechs Gesten zuverl\u00e4ssig: <strong>shake<\/strong> (sch\u00fctteln), <strong>flip90<\/strong> (Kippen um 90 Grad), <strong>flip180<\/strong> (Kippen um 180 Grad), <strong>slide<\/strong> (auf einer Seite schieben), <strong>knock<\/strong> (auf einer Seite klopfen) und <strong>rotate<\/strong> (im oder gegen den Uhrzeigersinn drehen, mit Winkel als Wert). Zus\u00e4tzlich meldet er nach jedem Event die aktuelle Liegeseite (Side 1 bis Side 6). \u00dcber Zigbee2MQTT erscheint das alles im Event-Strom als <code>zha_event<\/code> oder <code>mqtt<\/code>-Payload mit klaren Action-Strings.<\/p>\n<p>Das er\u00f6ffnet zwei Steuerlogiken parallel: erstens Gesten als direkte Aktionen (\u00abSch\u00fctteln\u00bb schaltet alle Lichter aus), zweitens Seiten als Modus-Wechsler (\u00abSeite 3 oben = Filmmodus\u00bb). F\u00fcr eine durchdachte Bedienung kombiniert man beide \u2013 die Seite definiert den Kontext, die Geste die konkrete Aktion in diesem Kontext.<\/p>\n<h2>Schritt 1: Cube einrichten und Events sichtbar machen<\/h2>\n<p>In Z2M heisst das Ger\u00e4t meist <code>MFKZQ01LM<\/code>. Sobald gepairt, melden die Events sich als MQTT-Payloads auf dem Topic <code>zigbee2mqtt\/aqara_cube<\/code>. Wer den ZHA-Stack nutzt, sieht direkt <code>zha_event<\/code> mit Feldern <code>command<\/code> und <code>args<\/code>. Zum Debuggen lohnt der Blick in Developer Tools \u2192 Events: Subskription auf <code>zha_event<\/code> filtern und dann den Cube sch\u00fctteln. Der Event-Strom verr\u00e4t die exakten Action-Strings.<\/p>\n<h2>Schritt 2: Eine Automation mit Choose-Logik<\/h2>\n<p>Statt f\u00fcnf Einzel-Automationen empfiehlt sich eine einzige mit <code>choose<\/code>-Block. Die Automation <code>automation.aqara_magic_cube<\/code> enth\u00e4lt genau diese Struktur:<\/p>\n<pre><code>\nalias: Aqara Magic Cube\ndescription: Universal-Fernbedienung im Wohnzimmer\ntrigger:\n  - platform: event\n    event_type: zha_event\n    event_data:\n      device_ieee: 00:15:8d:00:0a:bc:de:f0\naction:\n  - variables:\n      action: \"{{ trigger.event.data.command }}\"\n      side: \"{{ trigger.event.data.args.activated_face | default(0) }}\"\n  - choose:\n      - conditions: \"{{ action == 'shake' }}\"\n        sequence:\n          - service: light.turn_off\n            target:\n              area_id: wohnzimmer\n      - conditions: \"{{ action == 'knock' and side == 1 }}\"\n        sequence:\n          - service: scene.turn_on\n            target:\n              entity_id: scene.lese_szene\n      - conditions: \"{{ action == 'flip180' }}\"\n        sequence:\n          - service: media_player.media_play_pause\n            target:\n              entity_id: media_player.homepod_wohnzimmer\n      - conditions: \"{{ action == 'rotate_right' }}\"\n        sequence:\n          - service: media_player.volume_up\n            target:\n              entity_id: media_player.homepod_wohnzimmer\n      - conditions: \"{{ action == 'rotate_left' }}\"\n        sequence:\n          - service: media_player.volume_down\n            target:\n              entity_id: media_player.homepod_wohnzimmer\nmode: queued\n<\/code><\/pre>\n<p>Das Sch\u00f6ne: Wer die Aktion einer Geste \u00e4ndern will, bearbeitet eine einzige YAML-Stelle. Wer eine neue Geste hinzuf\u00fcgen will, erg\u00e4nzt einen <code>conditions<\/code>\/<code>sequence<\/code>-Block. Kein Spaghetti-Code, kein doppeltes Pflegen.<\/p>\n<h2>Schritt 3: Seiten als Kontexte nutzen<\/h2>\n<p>Wer noch eine Ebene tiefer geht, definiert pro Seite einen <strong>Modus<\/strong>. Liegt Seite 1 oben, ist \u00abMusik\u00bb aktiv \u2013 Rotate steuert Lautst\u00e4rke. Liegt Seite 2 oben, ist \u00abLicht\u00bb aktiv \u2013 Rotate dimmt. Das geht elegant mit einem <code>input_select.cube_mode<\/code>:<\/p>\n<pre><code>\n- conditions: \"{{ action == 'flip90' or action == 'flip180' }}\"\n  sequence:\n    - service: input_select.select_option\n      target:\n        entity_id: input_select.cube_mode\n      data:\n        option: >-\n          {% set mapping = {1:'Musik', 2:'Licht', 3:'Heizung', 4:'Film', 5:'Aus', 6:'Szene'} %}\n          {{ mapping[side] }}\n<\/code><\/pre>\n<p>Anschliessend pr\u00fcft jede Geste den aktuellen <code>input_select<\/code>-Wert und f\u00fchrt die kontextspezifische Aktion aus. Sechs Modi mal vier nutzbare Gesten ergeben effektiv 24 Funktionen \u2013 auf einem W\u00fcrfel mit Kantenl\u00e4nge unter f\u00fcnf Zentimetern.<\/p>\n<h2>Schritt 4: Visuelles und akustisches Feedback<\/h2>\n<p>Wer mit dem W\u00fcrfel hantiert, will Best\u00e4tigung. Eine Hue-Lampe blinkt kurz, der HomePod gibt einen dezenten Klick. Daf\u00fcr erg\u00e4nzt man am Ende der Aktion einen <code>service: light.turn_on<\/code> mit <code>flash: short<\/code> oder triggert ein TTS-Snippet. Im Artikel \u00ab<a href=\"https:\/\/www.coremind.ch\/wordpress\/hue-szenen-tageszeitgesteuert-input-select\/\">Hue-Szenen tageszeit-gesteuert per input_select<\/a>\u00bb wird die Logik mit <code>input_select<\/code> \u00e4hnlich behandelt \u2013 die Konzepte lassen sich direkt \u00fcbertragen.<\/p>\n<h2>Fazit<\/h2>\n<p>Der Aqara Magic Cube ist eine der untersch\u00e4tztesten Eingabeger\u00e4te f\u00fcr 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\u00e4gt. Wer G\u00e4ste hat, muss niemandem mehr zeigen, welche Lampe wo ist \u2013 einmal kippen, einmal klopfen, fertig. F\u00fcr die n\u00e4chste Iteration lohnt ein Blick auf <code>event.aqara_cube_action<\/code> mit zus\u00e4tzlichen Custom-Sentences im Voice Assistant, um die Geste mit Sprache zu kombinieren.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Der Aqara Magic Cube ist ein kleiner W\u00fcrfel von der Gr\u00f6sse eines Tischtennisballs mit einem Six-Axis-Beschleunigungssensor. Sechs Seiten, sechs Gesten \u2013 jede einzelne l\u00e4sst sich in Home Assistant frei verdrahten. Wer eine vollwertige Fernbedienung mit Knopfdruck-Stress satt hat, baut sich mit dem W\u00fcrfel einen taktil sehr befriedigenden Universal-Controller. Diese Anleitung zeigt am Beispiel der Automation &#8230; <a title=\"Aqara Magic Cube als Universal-Fernbedienung in HA\" class=\"read-more\" href=\"https:\/\/www.coremind.ch\/wordpress\/aqara-magic-cube-als-universal-fernbedienung-in-ha\/\" aria-label=\"Mehr Informationen \u00fcber Aqara Magic Cube als Universal-Fernbedienung in HA\">Weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-535","post","type-post","status-publish","format-standard","hentry","category-ha"],"_links":{"self":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/535","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/comments?post=535"}],"version-history":[{"count":1,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/535\/revisions"}],"predecessor-version":[{"id":540,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/posts\/535\/revisions\/540"}],"wp:attachment":[{"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/media?parent=535"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/categories?post=535"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.coremind.ch\/wordpress\/wp-json\/wp\/v2\/tags?post=535"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}