Zum Hauptinhalt springen

Xiaomi MIoT Smart-Home-Integration, kostenlos und Open Source

Xiaomi MIoT-Integration für Gladys Assistant

Xiaomi-Luftreiniger, Befeuchter, Ventilatoren, Steckdosen und Lampen lokal (MIoT).

Steuere deine WLAN-Geräte von Xiaomi, Mi Home und Mijia aus Gladys, in deinem lokalen Netzwerk: Luftreiniger, Luftbefeuchter, Luftentfeuchter, Ventilatoren, smarte Steckdosen, Schalter, Lampen, Luftqualitätsmonitore und die Sensoren darin. Die Integration liest die öffentliche MIoT-Spezifikation jedes Modells und übersetzt seine Standarddienste in Gladys-Funktionen: Kein Modell wird von Hand programmiert. Dazu kommen ein Dashboard-Widget, ein Wartungs-Auslöser und eine Szenen-Aktion.

Das Xiaomi-Konto wird nur einmal genutzt, um deine Geräte mit ihrer lokalen Adresse und ihrem Token (dem Schlüssel, den jedes Gerät braucht) aufzulisten. Danach bleibt alles in deinem Netzwerk: Gladys spricht direkt mit jedem Gerät, wie die Mi-Home-App in deinem WLAN.

Die Integration ergänzt die anderen im Store: Die Saugroboter der Mi-Home-App steuert die Integration Xiaomi Home, Roborock- und Dreame-Roboter die ihren. Diese Integration lässt die Saugroboter aus.

Developed without the hardware: feedback welcome. Diese Integration wurde mit echten MIoT-Spezifikationen (veröffentlicht von den Projekten homebridge-miot und hass-xiaomi-miot) und mit simulierten Geräten gebaut und getestet, nicht mit einem echten Luftreiniger oder einem echten Xiaomi-Konto. Wenn etwas nicht wie beschrieben funktioniert, sag es im Gladys-Forum oder in den Issues.

Nicht mit Xiaomi verbunden. Xiaomi, Mi Home und Mijia sind Marken ihrer Inhaber.

Was du brauchst​

  • Gladys Assistant 5.1.0 oder neuer.
  • Xiaomi-WLAN-Geräte, die schon in der Mi-Home-App (Xiaomi Home) eingerichtet sind, im selben Netzwerk wie Gladys.
  • Entweder die E-Mail-Adresse (oder Telefonnummer) und das Passwort des Mi-Home-Kontos und seine Region; oder für jedes Gerät seine IP-Adresse und sein Token (32 hexadezimale Zeichen), mit einem anderen Werkzeug ermittelt.
  • Internetzugang für Gladys bei der Einrichtung: das Xiaomi-Konto (einmal) und miot-spec.org (einmal pro Modell, um seine Spezifikation zu laden).

Einrichtung​

Mit dem Xiaomi-Konto​

  1. Installiere die Integration aus dem Gladys-Katalog.
  2. Öffne ihre Konfiguration und gib ein:
    • E-Mail-Adresse oder Telefonnummer und Passwort des Mi-Home-Kontos;
    • Region des Kontos: die Serverregion aus der Mi-Home-App (Profil → Einstellungen → Region). Standardmäßig Europa; ein Gerät aus einer anderen Region wird nicht aufgelistet;
    • Aktualisierungsintervall: wie oft jedes Gerät gelesen wird, 15 s bis 2 min (standardmäßig 30 s);
    • Sprache der Funktionsnamen: Englisch, Französisch, Deutsch oder Spanisch (standardmäßig Französisch). Die Namen eines Geräts und seiner Funktionen werden beim Hinzufügen vergeben.
  3. Speichere. Die Integration meldet sich an und importiert die Geräte sofort; um es später erneut zu tun, klicke auf Geräte des Xiaomi-Kontos importieren: Die Meldung unter der Schaltfläche listet, was importiert und was ausgelassen wurde.
  4. Bestätigung in zwei Schritten: Wenn Xiaomi sie verlangt, enthält die Meldung einen Link. Öffne ihn in einem Browser, fordere dort den Code an (SMS oder E-Mail), gib ihn aber nicht auf dieser Seite ein. Zurück in Gladys tippst du den Code in das Feld Bestätigungscode und klickst innerhalb von 15 Minuten erneut auf Geräte des Xiaomi-Kontos importieren.
  5. Öffne den Reiter Entdecken: ein Gerät pro Xiaomi-Gerät. Klicke auf Hinzufügen, wähle einen Raum, speichere.

Das Passwort bleibt in der Konfiguration der Integration; die Tokens liegen in ihrem privaten Volume (/data) und werden nie wieder angezeigt. Du kannst das Passwort leeren, sobald die Geräte importiert sind: Die Geräte funktionieren weiter.

Mit IP-Adresse und Token​

Kein Konto, oder ein Gerät, das das Konto nicht auflistet? Klicke in der Konfiguration auf Gerät mit IP-Adresse und Token hinzufügen, mit der Adresse des Geräts (dein Router zeigt sie) und seinem Token. Die Integration fragt das Gerät nach seinem Modell, was auch das Token bestätigt. Das Gerät erscheint im Reiter Entdecken.

Weitere Aktionen der Konfiguration​

  • Geräte diagnostizieren: für jedes Gerät sein Modell, seine Adresse, ob es antwortet, wie viele Funktionen übersetzt und welche Dienste ausgelassen wurden; und die miIO-Geräte im Netzwerk, die die Integration nicht kennt.
  • Gerät und sein Token vergessen: entfernt ein Gerät aus der Integration (verkauft, ersetzt). Lösche es auch in Gladys.

Die Geräte in Gladys​

Jedes Gerät wird ein Gladys-Gerät, benannt nach seinem Namen in Mi Home (oder seiner Art und dem Ende seiner Kennung). Nur was seine Spezifikation angibt, wird veröffentlicht:

FunktionWas es istGeräte
Ein/AusEin / ausLuftreiniger, Befeuchter, Ventilatoren, Steckdosen, Schalter
LichtEin / ausLampen
ModusDie Modusliste des Geräts (Auto, Schlafen, Favorit…)Luftreiniger, Befeuchter, Ventilatoren
LüfterstufeEine Liste von Stufen oder ein SchiebereglerLuftreiniger, Befeuchter, Ventilatoren
Horizontale OszillationOszillation ein / ausVentilatoren
Vertikale OszillationOszillation ein / ausVentilatoren
ZielfeuchtigkeitEine Liste in 5-%-SchrittenBefeuchter, Entfeuchter
WasserstandRestwasser im Tank, in %Befeuchter
Wassertank leerJa / neinManche Befeuchter
SolltemperaturDer Sollwert, nur angezeigtHeizgeräte
StörungWas das Gerät meldet, oder Keine StörungDie meisten Geräte
Temperatur°CGeräte mit Sensor
Luftfeuchtigkeit%Geräte mit Sensor
PM2,5 / PM10µg/m³Luftreiniger, Monitore
CO2ppmMonitore
BeleuchtungsstärkeLuxGeräte mit Lichtsensor
Filterlebensdauer% übrigLuftreiniger
Filter-RestzeitTage oder StundenLuftreiniger
Batterie%Monitore mit Akku
KindersicherungSperrt die Tasten des GerätsDie meisten Geräte
LeistungsaufnahmeWattSteckdosen mit Messung
Helligkeit%Lampen
FarbtemperaturKelvin, im Bereich des ModellsLampen
FarbeDie Farbe einer FarblampeFarblampen
  • Ein Heizgerät wird angezeigt, nie gesteuert: Ein/Aus und Sollwert sind nur lesbar. Ein Heizgerät, das wie eine Lampe von einer Szene, einem Dashboard oder einem Sprachassistenten gesteuert wird, könnte einen leeren Raum heizen oder neben etwas anspringen; nutze seine Tasten oder die Mi-Home-App.
  • Was die Übersetzung auslässt (Signalton, Display, Kontrollleuchte, Herstellereinstellungen), listet Geräte diagnostizieren; es bleibt mit der Szenen-Aktion MIoT-Eigenschaft setzen erreichbar.
  • Wenn ein Gerät nicht mehr antwortet, zeigt sein Abzeichen es als nicht erreichbar; es kommt von selbst zurück.

Dashboard-Widget​

Füge das Widget Luftqualität zu einem Dashboard hinzu und wähle in seinen Einstellungen ein Gerät. Es zeigt bis zu vier Live-Kacheln (PM2,5, CO2, Temperatur, Luftfeuchtigkeit, Wasserstand, Filterlebensdauer als Anzeige, in dieser Reihenfolge), den Zustand des Geräts (ein, aus oder antwortet nicht), seinen Modus und seine Lüfterstufe, eine Störung, falls vorhanden, und Schaltflächen:

  • Einschalten / Ausschalten, schaltet das Gerät, egal was das Widget anzeigte (nicht bei einem Heizgerät);
  • die ersten beiden Modi des Geräts (zum Beispiel Auto und Schlafen); der laufende trägt ein Häkchen.

Szenen​

Auslöser​

Xiaomi-Gerät braucht Aufmerksamkeit: löst einmal aus, wenn ein Grund beginnt, und erst wieder, nachdem er geendet hat. Filter:

  • Xiaomi-Gerät: ein Gerät oder jedes;
  • Grund: Filter wechseln (Filterlebensdauer bei 10 % oder weniger), Wassertank leer (der Tank-Alarm oder ein Wasserstand von 0 %), Störung (das Gerät meldet eine Störung); leer für alle.

Die Variablen geben den Namen des Geräts (device_name), den Grund (filter, water oder fault) und ein Detail (die Filterlebensdauer, die gemeldete Störung). Laufende Gründe bleiben über einen Neustart erhalten.

Aktion​

MIoT-Eigenschaft setzen: schreibt jede änderbare Eigenschaft eines Geräts über ihre Nummer auf miot-spec.org (siid.piid, zum Beispiel 6.1 für den Signalton eines Mi Air Purifier 4), mit einem Wert, wie ihn die Spezifikation erwartet (true / false, eine Zahl oder ein Text). Die Aktion lehnt eine Eigenschaft ab, die es nicht gibt oder die nur lesbar ist, einen Wert außerhalb des Bereichs und jedes Heizgerät. Die Aktion gibt den geschriebenen Wert an die nächsten Aktionen weiter.

Um die Nummern zu finden: Öffne https://home.miot-spec.com/spec/<Modell> (zum Beispiel zhimi.airp.mb5) oder starte Geräte diagnostizieren, das die ausgelassenen Dienste mit ihrer Nummer nennt.

Szenen-Ideen​

  • Filter-Erinnerung: Xiaomi-Gerät braucht Aufmerksamkeit, Grund Filter wechseln → sende die Nachricht „{{device_name}}: Filter bei {{detail}}“.
  • Ruhige Nächte: jeden Tag um 22 Uhr → setze den Modus des Luftreinigers auf Schlafen, dann MIoT-Eigenschaft setzen 6.1 = false, um seinen Signalton abzuschalten.
  • Besser atmen: wenn PM2,5 des Monitors über 35 steigt → schalte den Luftreiniger ein, Modus Auto.
  • Befeuchter nachfüllen: Xiaomi-Gerät braucht Aufmerksamkeit, Grund Wassertank leer → sende eine Nachricht und schalte den Befeuchter aus.

Fehlerbehebung​

  • Kein Gerät importiert: Prüfe die Region des Kontos (ein Xiaomi-Konto gehört zu einer Region) und die Meldung unter der Schaltfläche: Saugroboter, Bluetooth- und Zigbee-Geräte werden absichtlich ausgelassen.
  • „Xiaomi verlangt ein Captcha“: Melde dich einmal aus demselben Netzwerk in der Mi-Home-App an, warte ein paar Minuten, versuche es erneut; oder füge die Geräte von Hand hinzu.
  • Ein Gerät antwortet nicht: Prüfe, ob es im selben Netzwerk wie Gladys ist (ein Gastnetz oder ein abgeschottetes IoT-VLAN blockiert es), und gib ihm in deinem Router eine feste Adresse. Ein Gerät, das seine Adresse wechselt, wird innerhalb von 15 Minuten durch einen Erkennungs-Broadcast von Gladys wiedergefunden (UDP-Port 54321, daher diese Berechtigung bei der Installation).
  • „lehnt sein Token ab“: Das Gerät wurde zurückgesetzt oder in Mi Home neu gekoppelt, sein Token hat sich geändert: Klicke erneut auf Geräte des Xiaomi-Kontos importieren.
  • „Spezifikation fehlt“: miot-spec.org hat nichts für dieses Modell oder war nicht erreichbar; die Integration versucht es alle 15 Minuten erneut. Alte reine miIO-Modelle (vor MIoT) werden nicht unterstützt.
  • Die Integration protokolliert, was sie findet und was nicht antwortet (mehr mit LOG_LEVEL=debug): Öffne ihre Protokolle in der Gladys-Oberfläche.

Grenzen​

  • Nur WLAN-Geräte: Bluetooth- und Zigbee-Geräte hinter einem Xiaomi-Gateway haben keine eigene Adresse und werden ausgelassen.
  • Saugroboter werden ausgelassen (siehe die Integrationen Xiaomi Home, Roborock und Dreame).
  • Klimaanlagen, Thermostate, Wasserkocher, Kochgeräte und andere Arten werden noch nicht übersetzt: Diese erscheinen nur, wenn sie einen der Standarddienste oben haben (eine Steckdose, einen Sensor…).
  • Keine Push-Meldungen: Jedes Gerät wird standardmäßig alle 30 Sekunden gelesen, eine gebündelte Anfrage pro Gerät; eine Änderung in Mi Home erscheint beim nächsten Lesen.
  • Die Xiaomi-Server werden nur beim Import der Geräte aufgerufen (und wenn sich die Kontodaten ändern), miot-spec.org einmal pro Modell. Danach wird keines von beiden gebraucht.
  • Ohne die Hardware entwickelt: Modellspezifische Unterschiede, die die Spezifikationen nicht nennen (eine Leistung in einer anderen Einheit), können Anpassungen brauchen; melde sie bitte.

Konfigurationseinstellungen​

Diese Einstellungen fragt Xiaomi MIoT in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Xiaomi-KontosectionNeinDas Konto wird nur einmal genutzt, um deine WLAN-Geräte mit Adresse und Token aufzulisten; danach bleibt alles im lokalen Netzwerk. Speichere und starte dann unten „Geräte des Xiaomi-Kontos importieren“. Kein Konto? Füge ein Gerät mit IP-Adresse und Token hinzu.
E-Mail-Adresse oder TelefonnummerstringNeinDie Anmeldung deines Mi-Home-Kontos (Xiaomi Home).
PasswortsecretNein
Region des KontosselectNeinDie Serverregion aus der Mi-Home-App (Profil → Einstellungen → Region).
AktualisierungsintervallselectNeinWie oft jedes Gerät im lokalen Netzwerk gelesen wird.
Sprache der FunktionsnamenselectNeinNamen, die die Geräte beim Hinzufügen erhalten, und Texte der Integration.

So installierst du Xiaomi MIoT in Gladys​

  1. Öffne in Gladys Integrationen: Xiaomi MIoT erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/guim31/gladys-xiaomi-miot:1.0.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-xiaomi-miot.

Xiaomi MIoT benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

Xiaomi MIoT ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von guim31 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂