[Modul] Xiaomi MIoT

Hinweis:

Das Modul ist aktuell als BETA im Store. Somit muss der Suchbegriff genau so eingegeben werden:

Xiaomi MIoT



SDK Version Version
License Check Style Run Tests
Spenden Wunschliste

Xiaomi MIoT

Ermöglicht die Einbindung von Xiaomi Geräten in IP-Symcon.

Inhaltsverzeichnis


1. Vorbemerkungen

Zur Library

Diese Library enthält keine Gerätespezifischen Anpassungen für einzelne Gerätemodelle.
Stattdessen werden alle Fähigkeiten und Eigenschaften von Geräten einmalig aus der Xiaomi Cloud geladen.
Entsprechend können grundsätzlich alle Geräte, auch von Drittherstellern, eingebunden werden, sofern das Gerät in der Mi Home App vorhanden und angelernt ist.

Die Kommunikation der Geräte kann sowohl lokal (LAN/WLAN) als auch über die Cloud erfolgen.
Jedoch unterstützt nicht jedes Gerät die lokale Kommunikation.


Zur Integration von Geräten

Es werden Instanzen zur Kommunikation mit der Cloud (Cloud IO), einrichten von Geräten in Symcon (Konfigurator) und die eigentlichen Geräte Instanzen bereitgestellt.

Für die Ersteinrichtung ist zwingend ein Internetzugang, sowie die Zugangsdaten des Account der Mi Cloud (Mi Account bzw. Konto der Mi Home App) nötig.

2. Voraussetzungen

  • IPS 6.4 oder höher
  • Eingebundene Geräte in der Mi Home App

3. Enthaltende Module

Folgende Module beinhaltet das Xiaomi MIoT Repository:

  • Xiaomi MIoT Cloud IO (Dokumentation)
    IO Instanz zur Kommunikation mit der Cloud.
  • Xiaomi MIoT Configurator (Dokumentation)
    Konfigurator welche alle in der Cloud vorhandenen Geräte anzeigt und zum erstellen von Geräte Instanzen verwendet wird.
  • Xiaomi MIoT Device (Dokumentation)
    Geräte Instanz, welche die jeweils ein Gerät in Symcon abbildet.

4. Software-Installation

Über den Module-Store in IPS das Modul Xiaomi MIot hinzufügen.
Bei kommerzieller Nutzung (z.B. als Errichter oder Integrator) wenden Sie sich bitte an den Autor.

Module-Store

5. Einrichten der Instanzen in IP-Symcon

Details sind direkt in der Dokumentation der jeweiligen Module beschrieben.
Es wird empfohlen die Einrichtung mit der Konfigurator-Instanz zu starten Xiaomi MIoT Configurator.
Nach der installation aus dem Store wird diese Instanz auf Rückfrage automatisch angelegt. Module-Store
Module-Store
Dabei wird die Konfiguration bis zur Xiaomi MIoT Cloud IO durchlaufen.
Module-Store
Sind die Eingaben korrekt, so wird der Xiaomi MIoT Configurator geöffnet. Module-Store

6. Anhang

1. GUID der Module

Modul Typ Prefix GUID
Xiaomi MIoT Cloud IO IO XIAOMI {DF2248D9-FC17-4609-840D-BA52DBF9CEB6}
Xiaomi MIoT Configurator Configurator XIAOMI {CCB7419D-F038-E519-8D63-171260FED0A0}
Xiaomi MIoT Device Device XIAOMI {733AB5D2-957D-E76A-BA5D-5006701A6216}

2. Changelog

siehe nächster Post

3. Spenden

Die Library ist für die nicht kommerzielle Nutzung kostenlos, Schenkungen als Unterstützung für den Autor werden hier akzeptiert:

Wunschliste

7. Lizenz

IPS-Modul:
CC BY-NC-SA 4.0

3 „Gefällt mir“

Changelog:

Version 1.10:

  • In den Geräte Instanzen können nicht genutzte Statusvariablen deaktiviert werden.
  • Diverse Übersetzungen ergänzt.

Version 1.05:

  • Übersetzungen von Tagen, Stunden, Minuten, Sekunden fehlte
  • Fehlende Übersetzungen der Systemsprache werden aus der englischen Übersetzung des Gerätes ergänzt
  • Cloud IO zeigt den Benutzernamen in der Info Spalte an, damit mehrere Instanzen besser unterschieden werden können
  • Konfigurator berücksichtigt nur Instanzen welche am selben IO hängen (oder bei Roborock-Instanzen welche den gleichen Cloud Usernamen haben)
  • Geräte Instanz zeigt das Model in der Info Spalte an

Version 1.01:

  • Start der offenen Beta

Hallo Michael,
danke schon einmal vorab für Deine tolle Arbeit! Habe das Modul gerade installiert.

Unsere beiden Desk Lampen Pro werden im Konfigurator auch gefunden, die Lampen-Instanzen werden angelegt, sind aber leer (Fehler). Vermutlich liegt es daran, dass die beiden Lampen im Gastnetz sind, IPS aber nicht. Nun dachte ich, dass mit „Cloud-Verbindung erzwingen“ dieser Weg frei ist - leider ohne Erfolg. Hast Du eine Idee?

Danke nochmals!

Viele Grüße, Carsten

Der Initiale Handshake ist immer lokal, somit muss IPS die Geräte im LAN erreichen können.
Steht etwas versteckt in der Doku bei der Geräte Instanz:

… nach dem Handshake mit dem Gerät, was immer lokal läuft …

Michael

Danke für den Hinweis. Habe eine Lampe jetzt mal in das lokale Netz genommen, aber das hilft nicht. Der Konfigurator zeigt die Lampe mit lokaler IP an, aber es wird leider nichts außer die leere Lampeninstanz angelegt. In der Lampeninstanz-Konfiguration steht „offline“ (die lokale IP ist ok, Instanz zeigt „aktiv“) und direkt nach dem Öffnen unter „Token“ zunächst ein Wert. Drücke ich auf „Geräteinformation neu laden“ werden keine Infos angezeigt (Token ist jetzt auch leer). Bei „Zustand lesen“ kommt der u.g. Fehler. Vom IPS-Server aus kann ich die Lampe anpingen.

Hast du gewartet bis der Konfigurator die Instanz fertig erstellt hat, also eine InstanzID angezeigt hat?

Den Satz verstehe ich nicht; wo steht offline und aktiv gleichzeitig?

Das kann locker 10 Sekunden dauern, wenn du den Button drückst.
Zustand lesen geht nicht wenn die Instanz nicht aktiv ist, das ist korrekt.

Sonst sende mir gerne ein Mittschicht aus dem Debug Reiter der Instanz, wenn du in der Instanz die Einstellungen übernimmst, dann schaue ich mir das an.
Michael

  • im Konfigurator habe ich immer gewartet, bis „warten“ weg ist und eine InstanzID angezeigt wird
  • offline und aktiv steht hier:
  • die Debug-Dumps für „Geräteinformation neu laden“ von IO und Lampe schicke ich Dir gleich per PM

Ach das aktiv. Ja das ist ja um die Instanz überhaupt aktiv zu schalten.
Der echte Status ist oben, Gerät offline :slight_smile:
Mal schauen was das Debug sagt, warum die Instanz glaubt das Gerät ist offline.
Michael

Version 1.05 als Beta im Store

Kleine Verbesserungen, siehe Changelog:

bei mir kommen alle 60 sekunden ca 37 Fehler Meldungen abwechselnd von zwei geräte beide vom typ Mi Air Purifier 3H


Ohne ein Dump (Reiter Debug der Instanz) kann ich nicht viel machen.
Michael

sorry vergessen

dump.txt (59,6 KB)

Mach bitte ein Update vom Modul und prüf ob die Meldung weg ist.
Wenn ich das richtig verstehe, dann bedeutet -704220043 dass der Wert (in der Cloud) gerade nicht zur Verfügung steht.
Klappt auch die Lokale Kommunikation mit dem Gerät? Es ist hier eigentlich als local aufgeführt:
image

Michael

Hallo, nach dem Update sind die Fehlermeldungen verschwunden.

Local scheint nichts zu gehen wenn ich Cloud verbiete dann wechselt er immer wie von gerät online zu offline und ich bekomme Fehler beim ansteuern

dump-3.txt (302,4 KB)

Danke schon mal für die schnelle Hilfe :slight_smile:

Gruß
Robert

das sollte so nicht sein.
Leider ist das Dump viel zu kurz. Bitte vorher das Limit ausschalten. Und dann Cloud verbieten als Einstellung übernehmen.
Senden blockiert (warum ist das bei dir in englisch?) sollte nur kommen, wenn ein anderer Befehl noch nicht fertig ist.
Michael

ok anbei einer ohne Limit.

Ich habe keine Ahnung warum das auf Englisch ist bei mir

dump-4.txt (818,1 KB)

Das OS unter welchen Symcon läuft nicht auf deutsch gestellt?
(Bei Linux gilt die Sprache des root)

Das Dump sagt wirklich nur aus, dass das Gerät auf lokale Anfragen nicht reagiert. Schade eigentlich.
Musst du leider doch mit Cloud vorlieb nehmen.
Michael

ja stimmt das OS ist auf English gestellt

naja schade aber kann man nichts machen bin schon froh das es geht :slight_smile:

danke für die Hilfe

Neue Beta im Store

Michael

Danke ,- das funktioniert super und ich konnte sogar meine Kochplatte mir in IPS einbinden!