Xiaomi Produkte in Loxone einbinden

Dieser How-To wurde aus einem Tschechischem Forum für Loxone kopiert, vielen dank an Jiri Jasa für den tollen Beitrag:

https://www.vodnici.net/community/loxone-a-arduino/xiaomi-smart-home-integrace-do-loxonu/paged/1

Der Beitrag wurde mit Google übersetzt und anschließend etwas sprachlich "geschliffen".. 

 

 


Hier wird beschrieben wie man Xiaomi Sensoren in Loxone integriert.

Für den ordnungsgemäßen Betrieb wird das Smart Home Gateway (Gearbest) von Xiaomi benötigt. Leider wird es nur mit einer chinesischen Steckdose verkauft, so dass man einen Adapter für EU-Steckdosen mitbestellen (Gearbest) sollte.

Folgende Sensoren sind getestet und integriert (da es unterschiedliche Taster Geräte gibt kann es sein das bestimmte Geräte gibt die nicht gehen obwohl diese hier aufgeführt werden):

  • Geräte die laut Ersteller des Skripts funktionieren sollten:
    • Thermometer / Hygrometer
    • Magnet an Tür / Fenster
    • PIR Bewegungsmelder
    • Drucktaste
    • Der Flutdetektor
    • Rauchmelder

  • Geräte die mit der loxwiki Version des Skripts getestet worden sind:
Name des GerätsHerstellerbezeichnung+LinkShopBezeichnung im SkriptNutzbare Funktionen / UDP Befehl
GatewayXiaomi Smart Home Gateway V2Gearbestgateway
  • Helligkeit / "illumination \v"
Taster 1-fXiaomi Aqara Smart Light Switch Wireless Version single keyGearbest86sw1
  • Taste gedrückt (keine Flankenauswertung) / "click 1"
  • Batteriespannung / "voltage \v"
Würfel

Xiaomi Mi Smart Home Cube

Gearbestcube
  • 90° Drehung / "status flip90"
  • 180° Drehung / "status flip180"
  • Verschieben / "status move"
  • 2x Klopfen / "status tap_twice"
  • Schütteln / "status shake_air"
  • Auf der Ebene Drehen (in Bearbeitung)
  • Batteriespannung / "voltage \v"
Temperatur- und Feuchtemesser miniXiaomi Aqara Temperature and Humidity SensorGearbestweather.v1
  • Temperatur / "temperature \v"
  • Luftfeuchtigkeit / "humidity \v"
  • Batteriespannung / "voltage \v"

 


Wenn ihr ein Gerät habt und dieses nicht erkannt wird könnt ihr unter /tmp/mihome-log.out.log die Syntax nachschauen und die "run-mihome.py" entsprechend editieren. Damit die Änderungen übernommen werden ist ein Neustart (z.B des RPi) notwendig.

Schritt-für-Schritt-Anleitung

Gleich vorweg es gibt auch einen esp8266 Multicast Reader:

Unten stehend, wie man in den "Debug" -Modus kommt um die Kommunikation über das Netzwerk zu ermöglichen (UDP).

 In diesem Beispiel ist iOS verwendet worden, aber es sollte für Android ähnlich sein.

  1. Installieren Sie Mi Home App
  2. Nach der Installation, überprüfen Sie, dass  "Festland China" als Standort ausgewählt ist.
    Folgen Sie den Anweisungen. Pairing-Anweisungen mit Home Gateway und füge dann die Sensoren hinzu.  
  3. Der interessante Teil kommt jetzt - den Debug-Modus einschalten.
  4. Wähle auf der Hauptseite des Gerätes die Option Gateway aus:
  5. Klicke auf die 3 Punkte in der oberen rechten Ecke:
  6. Gehe auf "About":
  7. Jetzt gibt es eine kleinen Trick: du musst die Auswahl freischalten, die versteckt ist. Tippe auf das markierte Feld, bis weitere Optionen im Menü erscheinen.
  8. Wähle die unten gezeigten Menüeintrag:
  9. Folge dem Bildschirm, und aktiviere die erste Option. Den Hexadecimalcode (Kennung des Gateways) braucht man nur wenn man Befehle an das Gateway verschicken möchte (bisher ungenutzt).
  10. Bestätige Sie alles und gehe zum Ausgangsmenü.
  11. Zu diesem Zeitpunkt sendet das Gateway an ein Subnetz, an das Multicast-Pakete an 224.0.0.50 angeschlossen sind.

Wenn Sie Ihren Router konfigurieren oder einige andere Geräte hinzufügen, um Pakete zu sammeln, können Sie sie direkt in Loxone verwenden. Beispiel für gesendete Daten:

  {'data': '{' data ':' {'value': ' : 'sensor_ht', 'short_id': 29375} 
{'data': '{' data ':' {'data': ' : 19705}
{'data': '{' data ':' : 18966}
'' '' '' '' '' '' '' '' ' : 28469}
'' '' '' '' '' '' '' ' : 'sensor_ht', 'short_id': 31102}
{'data': '{' data ':' {'
'' '' '' '' '' '' '' '' ' : 30648}
{'data': '{' data ':' {'value': '

Dieser JSON ist ganz einfach zu lesen und zu sammeln. Jedes Gerät hat seine Kennung (sid) so kann es leicht unterschieden werden.


Für die Vorbereitung von Daten von Smart Gateway, wird ein einfaches Python-Programm verwendet.

Es ist notwendig, Xiaomi Home Gateway und PC auf dem gleichen Subnetz zu haben, sonst funktioniert die Kommunikation nicht richtig.

Python 3 und das Mihome Projekt sind für den Einsatz erforderlich.

Je nachdem, was Sie für die Verteilung verwenden, wird die Anweisung sehr vage sein. Ich verwende Debian / Ubuntu um die Installation zu skizzieren:

  1. Überprüfen Sie, ob Python 3.x installiert ist
  2. Wenn es fehlt, installieren Sie es: "apt-get install python3"
  3. Als nächstes install pip: "apt-get install -y python3-pip"
  4. Installiere das mihome Paket: "pip3 install mihome"
  5. Hier ist ein Beispielprogramm (nach /usr/local/bin kopieren)
      

    .

  6. Nach dem Herunterladen öffnen Sie das Skript und bearbeiten die Zeilen nach Bedarf:
      #Loxone Adresse und Port 
    UDP_IP = '192.168.1.12'
    UDP_PORT = 56666

    Dies ist die IP-Adresse Ihres Loxone und der Port, auf dem die Daten gesendet werden sollen.

  7. Nun, jetzt können wir alles ausführen "python3 run-mihome.py"
  8. Es sollte eine Kommunikation mit dem Gateway geben - nach dem Start fordert die Anwendung Informationen von allen Sensoren an.
  9. Und als letzter Ausweg ist es eine gute Idee, dafür zu sorgen, dass die Anwendung beim Start läuft. Ich empfehle die Verwendung der Supervisor, ein kurzes Tutorial: https://www.digitalocean.com/community/tutorials/how-to-install-and-manage-supervisor-on-ubuntu-and-debian-vps , meine config (umbenennen wieder zu * .conf):

Hier ist, wie man alles zusammenlegt und Loxone liest.


In meiner Beispieldatei sendet die Anwendung Loxon-Daten an Port 56666, so dass es notwendig ist, die entsprechende virtuelle UDP-Eingabe in Loxone zu erstellen. Als IP-Adresse können Sie die Mini-PC-Adresse verwenden oder leer lassen:

Auf der ersten Berührung ist es eine gute Idee, den UDP-Monitor zu öffnen und zu sehen, ob die Gateway-Daten erscheinen :


Jetzt geht es nur darum, alle Features zu durchlaufen und deine UDP-Befehle zu erstellen. Jedes Gerät hat seine eindeutige Kennung, so gibt es also keine Konflikte.

Beispiel, wie man Daten aus einem Thermometer liest:

Das gleiche für ein paar Würfel Aktionen:

 




Verwandte Artikel