Anleitung: Xiaomi Aqara Gateway mit Home Assistant nutzen
In dieser Anleitung wollen wir Schritt für Schritt die Konfiguration des Xiaomi Aqara Gateways für die Verwendung mit Home Assistant durchführen. Dieses ermöglicht die Verwendung und Einbindung von Xiaomi Mijia und Aqara Smart Home-Komponenten in unser smartes Zuhause.
Überblick
Die Dachmarke Xiaomi* hat diverse Smart Home Produkte im Angebot. Die meisten Sensoren werden unter dem Namen Aqara verkauft, einige Smart Home Produkte vertreibt der Hersteller aber auch unter dem Brand Mijia. Als zentrale Schnittstelle zwischen den einzelnen Zigbee-Sensoren und der Aqara Smart Home Cloud kommt das Aqara Gateway* zum Einsatz. Oft wird das Gateway auch als „Xiaomi Aqara Mi Smart Multifunctional Gateway*“ bezeichnet oder ihr findet das IoT-Devise unter dem Namen „Aqara Gateway V3“.
Es handelt sich nach meinen Informationen überall um dasselbe Produkt. Dieses Gateway ist letztendlich nichts anderes, als ein Übersetzer von Zigbee auf IP-Protokoll. Ihr könnt euch die in etwa so vorstellen:
Mi Home App <-> Xiaomi Smart Home Cloud <-> Internet <-> WLAN AP <-> Wifi Verbindung <-> Xiaomi Aqara Gateway <-> Zigbee Funk <-> Aqara Sensor
Das Xiaomi Smart Home Ökosystem* setzt dabei auf eine Smart Home Cloud, die das Aqara Gateway regelmäßig abfragt und so Daten der Sensoren* an den Anbieter sendet. Diese Daten können dann über die zugehörige „Mi Home App“ unter iOS* eingesehen werden. Außerdem können über die App auch Befehle an das Gateway gesandt werden. So lässt sich beispielsweise die integrierte LED des Gateways in Farbe und Helligkeit aus der Ferne einstellen.
Wir wollen das Gateway jedoch nicht als Smart Home Spion verwenden, sondern lediglich die Daten der Zigbee-Sensoren an Home Assistant übergeben, ohne das diese zuerst in die Cloud auf einen chinesischen Server übertragen werden. D.h. wird verwenden das Gateway ausschließlich lokal. Wie man dem Gateway das Nachhausetelefonieren verbietet, habe ich in einem separaten Artikel in Bezug auf pfsense beschrieben. Wir wollen also folgendes Szenario aufbauen:
Home Assistant <-> WLAN AP <-> Wifi Verbindung <-> Xiaomi Aqara Gateway <-> Zigbee Funk <-> Aqara Sensor
Xiaomi Aqara Gateway vorkonfigurieren
In einem ersten Schritt müssen wir das Gateway konfigurieren. Dieses geschieht mithilfe der iOS App „Mi Home“, welche es gratis im Apple App Store zum Download gibt. Die App ist nicht unbedingt ein Wunderwerk, für die initiale Einrichtung ist die Oberfläche aber okay. Ich möchte an dieser Stell nicht darauf eingehen, wie sich Sensoren* mit dem Gateway* verbinden lassen, um den Rahmen des Artikels nicht zu sprengen (ich überlege, ob ich hierzu noch einmal eine separate Anleitung anfertige). Wir gehen daher von folgenden Voraussetzungen aus:
- iOS-Gerät (iPhone*) mit aktuellem Betriebssystem
- „Mi Home App“ ist in der aktuellen Version installiert
- Ihr habt einen Account eingerichtet und als Server „Mainland China“ gewählt
- Das Aqara Gateway ist mit dem Account verbunden und sichtbar
- Es ist mindestens ein Sensor mit dem Gateway verbunden (wir gehen von einem Xiaomi Aqara Temperature Humidity Sensor* aus)
- Das Gateway kann aktuell noch auf das Internet zugreifen (so kappst du die Verbindung zur China-Cloud)
Schritt 1: Lokalen IP-Zugriff auf Xiaomi Gateway aktivieren
Da das Gateway, wie oben beschrieben, eigentlich dafür gedacht ist, die Daten direkt an die Xiaomi Cloud zu senden, muss der lokale Zugriff auf die Sensordaten erst aktiviert werden. Dazu starten wird im Hauptmenü der „Mi Home App“ auf unserem iPhone*.
Anschließen wechseln wir auf einen Klick auf das „Gateway Device“ in die Übersichtsseite des Aqara Gateway V3*, um die Konfirmation anzupassen.
In der oberen rechten Ecke erscheint ein Symbol mir drei Punkten ( … ). Ein Klick öffnet das Einstellungsmenü des Gateways. Ab hier schweift die deutsch-englische Mischübersetzung zusätzlich auch ins Chinesische ab. 😉
Hinweis: Im Folgenden Screenshot seht ihr mehr als nur die beiden Punkte „Smart Home Kit Forum“ und „Gameplay tutorial“. Um die Menüpunkte in chinesisch zu sehen, tippt mehrmals in den weißen, freien Bereich unter der Liste.
Anschließen wählen wir den zweiten Menüpunkt auf chinesisch (der Punkt unter dem Eintrag mit den Versionsangaben!) Wir kommen in das Menü zur Aktivierung des lokalen Zugriffs auf das Gateway*. Schiebt den oberen Regler in die „An“-Position und notiert euch die ID, die euch angezeigt wird. Diese benötigen wir, um Home Assistant auf das Aqara Gateway eindeutigen Zugriff zu gewähren.
Nun könnt ihr die Menüs schließen und ggf. den Internetzugriff des Xiaomi Gateways über euren Router / Firewall / IPS sperren.
Schritt 2: Aqara Gateway in Home Assistant einbinden
Im nächsten Schritt müssen wir Home Assistant mit dem Gateway bekannt machen. Dieses wird ganz normal via configuration.yaml eingebunden, wie wir es beispielsweise auch von Funksteckdosen via pilight gewohnt sind.
Zunächst stellen wir sicher, dass die discovery-Kompnenten unsere Home Assistant Instanz aktiviert ist. Das ist üblicherweise standardmäßig der Fall. Falls nicht, die configuration.yaml mit folgender Zeile ergänzen:
discovery:
Danach müssen wir die Aquara-Komponente verwenden, um unser Gateway* zu integrieren. Dieses geschieht über den folgenden Code. Im besten Fall habt ihr eurem Gateway eine statische IP-Adresse via ARP-Eintrag verpasst. Dann gibt es auch in Zukunft keine Probleme. Dazu benötigen wir die Xiaomi_Aqara-Komponente.
xiaomi_aqara: discovery_retry: 5 gateways: - key: ID AUS DER APP
Für den Operator „key“ tragt ihr die aus der „Mi Home App“ notierte ID eures Gateways ein. Speichern und Home Assistant Neustarten.
Hinweis: Ich habe den Retry-Wert auf „5“ gesetzt, da das Gateway bei mir nicht immer sofort durch Home Assistant entdeckt wird, wenn der Home Assistant Dienst startet.
Schritt 3: Sensoren in Home Assistant verwenden
Wie oben beschrieben, verwenden wir für das folgende Beispiel einen Aqara Temperatur- / Luftfeuchtigkeitssensors*. Damit dieser in Home Assistant auftaucht, muss dieser zunächst über die „Mi Home App“ mit dem Gateway verbunden worden sein!
Wechseln wir unter Home Assistant in den Sensor-Tab sollten wir unter den Geräten nun unseren Temperatursensor und auch das Gateway selbst finden. Hier kann man über Home Assistant beispielsweise den integrierten Helligkeitssensor* des Gateways abfragen oder aber den LED-Ring steuern.
Diese Sensoren lassen sich nun für beliebige Anzeigen oder Automationen nutzen! 🙂
Schlusswort
Die Integration des Xiaomi Aqara Gateways* in Home Assistant ist eigentlich schnell erledigt. Nur die Aktivierung des lokalen IP-Zugriffs auf das Gateway hat Xiaomi gut in der App versteckt. Einmal eingerichtet, läuft das System aber sehr zuverlässig. Bei mir funktioniert die Kombination mit Home Assistant bereits über 1 Jahr ohne einen einzigen Neustart des Gateways! Kommentare oder Anregungen? Ich freue mich! 🙂
Hallo Nils,
ich habe seit letzter Woche auch mein Gateway in Betrieb genommen und in Home Assistant implementiert. Das Gateway spricht gerade mit 4 Vibrationssensoren und ein Bewegungsmelder von Aqara. Leider ändert sich der Status dieser Vibrationssensoren nicht im HA, in der Mi Home App wird jedoch eine Berührung fest gestellt. Nur der Sensor Coordination und BedActivity verändern die Werte, mit denen aber nichts anfangen kann. Jetzt habe ich die Vibrationssensoren umbenannt, um sie besser auseinander halten zu können. Ich habe im Internet gelesen, dass das wohl das Problem sein könnte. Nun kann ich die Sensoren nichts aus HA und der Mi Home App löschen und wieder mit dem Originalnamen einbinden. HA erkennt immer den von mir geänderten Namen. Kennst du eine Möglichkeit, einen Sensor soweit zurück zu setzen, dass der ursprüngliche Name erscheint?
Gruß
Martin
Hallo Martin,
ist zwar schon ewig her (habe leider keine Meldung zu deinem Kommentar bekommen). Aber falls das Problem noch aktuell ist: Wie hast du den Sensor denn unbenannt? Über das Web Gui (Love Lace) oder via Config Datei? Eigentlich sollte dann der Namen wieder zurückgesetzt werden, wenn dieser Eintrag gelöscht wird. Oder hast du den Sensor direkt in der Xiaomi App umbenannt? Dann hilft denke ich nur ein Reset des Gateways.
Das mit den Vibrationssensoren ist auch ein bekanntes Problem. Hier mal meine Automation, um auf Bewegung zu prüfen (Automation Editor via GUI):
Trigger type: Event
Event: xiaomi_aqara.movement
Event data: {
„entity_id“: „binary_sensor.vibration_158xx002b8xxx“,
„movement_type“: „vibrate“
}
Das funktioniert bei mir zuverlässig. Der Sensor setzt bloß nicht ständig Nachrichten ab, wenn man dran wackelt, sondern erst wieder nach einer gewissen Ruhephase.
Viele Grüße,
Nils
Leider wird bei mir nach mehrfacher Klickerei unter About leider nicht das erweiterte Menu angezeigt. Ich nutze Version Plugin Version 4.26.8. Würde mich über Tips freuen.
Hallo Stefan,
bitte entschuldige die späte Rückmeldung – mir wurden einige Nachrichten nicht zugestellt
Das ist bei mir ganz genau so. Der Zugriff über LAN scheint jetzt standardmäßig aktiviert zu sein. Hast du das mal geprüft? Ich kann auch nichts mehr einstellen bzw. das Menü kommt nicht mehr. Der Zugriff von HA auf das Gateway läuft aber immer noch 1A.
Viele Grüße,
Nils
Gut geschrieben. Echt toll. Danke.
Hi Nils,
ich habe deine Links verwendet und Docker auf meinem NAS eingerichtet. Das System hat Zugriff auf den Aquara Hub und die Sensoren sehe ich auch.
Folgende Dinge sind mir allerdings unklar:
1. Die Ansicht der Sonsoren wie oben aufgeführt bekomme ich nicht. Mir gelingt es somit leider auch nicht die einzelnen Sensoren Räumen zuzuordnen. Auf der Seite „Integration“ stehen meine Sensoren nciht zur Verfügung…
2. Wie triggere ich, dass aktuelle Daten der Sensoren „regelmäßig“ abgerufen werden? – aktuell geschieht dies nur, wenn ich den Home Assistant neu starte.
SRY für die vielen Fragen 😉 aber offensichtlich hast du deine Erfahrungen damit schon gemacht 🙂
vg und vielen Dank
Axel
Hallo Axel,
die Frage 1 habe ich leider nicht ganz verstanden, glaube ich. Welche Ansicht meinst du? Unter „Integration“ werden die Xiaomi Sensoren nie erscheinen. Wenn die Xiaomi Komponente richtig geladen ist (Kein Fehler im Log: Developer Tools -> Logs), dann schau mal unter Developer Tools -> States nach. Hier sollten alle an das Gateway gebundene Aqara-Sensoren auftauchen. Erstmal mit einem kryptischen Namen. Den kannst du dann ja später noch hübsch machen, wie das geht findet sich in den Home Assistant Dokumenten.
Zu Frage 2: Das passiert in Echtzeit. Das Gateway pusht die Aktualisierung an Home Assistant. Wann immer sich ein Sensor beim Gateway meldet, wird diese Info auch direkt an Home Assistant weitergegeben. Da du schon irgendwas zu sehen scheinst (auch wenn nur bei Neustart), scheint ja die generell Verbindung zwischen Home Assistant und Gateway schon mal zu laufen?
Generell dürfen in den HA Logs keine Fehler erscheinen. Man macht leider gerne Fehler bei der JSON-Schreibweise in den Config-Dateien. Das also immer zu erst checken, bevor du dir den Inhalt / die Logik der Configuration.yaml vornimmst.
Viele Grüße und viel Erfolg,
Nils
Hallo Nils,
vielen Dank für deine Antworten. Zu 1) Ich würde gerne die einzelnen Sensoren Zimmer zuweisen. Leider ist mir nicht klar, wo und wie ich das machen kann. Oder geht das mit Aqara gar nicht? 2) Bei mir aktualisiert er die Werte wie gesagt nur bei Start des Assistenten auf der DS. Ansonsten ist die Temperatur immer konstant…in der App „Mi home“ sieht man allerdings deutliche Veränderungen bspw. wenn ich das Fenster öffne. Im logfile ist kein Fehler angegeben.
Bei der Config bekomme ich keine Fehlermeldungen, allerdings musste ich eine Weile rumprobieren, bis ich eine funktionierende Config hatte:
xiaomi_aqara:
discovery_retry: 10
gateways:
– mac: xx:xx:xx:xx:xx:xx
key: xxxxxxxxx
host: ‚IP des Hubs‘
Aktuell habe ich dem Hub das nach hause telefonieren komplett verboten und jetzt kann ich auf keinen Sensor mehr zugreifen…;) mal sehen was ich da wieder rumfummeln muss…
vg
Axel