Zum Ende der Metadaten springen
Zum Anfang der Metadaten


AutorMichael Schlenstedt
Logo

Status

BETA

Version0.5.3
Kompatibilität

LB 0.2.3 LB 1.2

Download

https://github.com/mschlenstedt/LoxBerry-Plugin-MiRobot2Lox-NG/archive/mirobot2lox-ng-0.5.3.zip

Zweck

Das MiRobot2Lox-NG Plugin ermöglicht die Kommunikation zwischen bis zu 5 Mi Vacuum Robots und dem Loxone MiniServer. 

 Version History...

Nutze die Beobachten-Funktion rechts oben um über neue Versionen informiert zu werden. 

Inhalt

 


   

Ursprung des Plugins

Dieses Plugin basiert auf dem Original-Plugin MiRobot2Lox von Dieter Schmidberger . Leider wird das Original-Plugin nicht mehr weiterentwickelt. Da es noch nicht auf LoxBerry V1.0 angepasst war und mittlerweile auch bei der Installation der notwendigen Python-Tools Probleme bereitet, wurde diese Version ins Leben gerufen. Die grundlegenden Ideen und das Konzept wurden vom Originalplugin übernommen - dennoch ist es von Grund auf neu programmiert und nutzt eine andere Kommunikationsschnittstelle zum Miniserver. Durch die direkte Integration in LoxBerry V1.0 konnten viele Standardfunktionen aus LB1.0 übernommen werden.

 

 

Aufgabe des Plugins

Mit dem Plugin können Saugrobotoer der Firma Xiaomi gesteuert werden. Es können sowohl Befehle an den Roboter abgesetzt werden als auch Daten vom Roboter ausgelesen werden (z. B. den aktuellen Status, diverse Verbrauchszähler, usw.). Alle Daten können in LoxConfig visualisiert werden und auch in Logiken verwendet werden. Die Ausgangsbefehle an den Roboter können ebenfalls aus der Logik in LoxConfig heraus abgesetzt werden.


Download

 

Fehlerberichte

  

Fehlerberichte bitte direkt im Repository auf GitHub melden.

 

Konfigurationsoptionen

Einstellungen

Hole Daten vom Robot

Sollen Statusmeldungen vom Robot abgeholt werden, muss diese Option eingeschaltet werden (das will man normalerweise ). Alle 60 Sekunden reicht normalerweise aus. Wer auf Grund einer Logik wirklich aktuellere Daten haben muss, kann auch noch auf 30 Sekunden umschalten. Eine kürzere Zeit gibt es nicht, da es doch recht lange dauert, bis der Robot antwortet. Wer mehr als 2 Robots im Einsatz hat, sollte die Zeit etwas hochnehmen, da in der gewählten Periode alle Robots nacheinander abgefragt werden.

Sende per UDP

Wer die Statusdaten per UDP zum Miniserver senden und dort per Virtuellen Eingängen weiterverarbeiten möchte, muss diese Option aktivieren. Eine andere Alternative ist, die Daten per Virtuellen HTML Eingang abzufragen. Das verursacht aber mehr Netzwerkverkehr, da bei UDP die Daten nur übertragen werden, wenn sie sich geändert haben. Daher ist UDP die bessere Wahl. Nur bei Netzwerkproblemen ist häufig HTML die einfacherere Variante.

UDP Port

Der Port, auf dem der Miniserver auf neue Daten lauscht.

Miniserver

Wähle den Miniserver aus, an den die Daten per UDP gesendet werden sollen. Es kann nur ein Miniserver ausgewählt werden.

Sende per HTML

"Senden" ist eigentlich nicht der richtige Ausdruck. Es wird eine Text-Internetseite zur Verfügung gestellt, die per Virtuellem HTML Eingang vom Miniserver abgerufen werden kann. Diese Option ist immer aktiv.

Robot #1 - #5

Aktiviere Robot

Mit dieser Option aktivierst Du den Robot. Aktivieren heisst, dass von diesem Robot die Statusdaten abgerufen werden.

IP-Adresse

Die IP-Adresse des Robots. Diese darf sich nicht ändern. Konfiguriere Deinen Router entsprechend.

Token

Der Netzwerkverkehr zum Robot ist per "Token" gesichert. Ohne den Token kann man mit dem Robot nicht kommunizieren. Leider kann der Token aus Sicherheitsgründen nicht automatisch aus dem Robot ausgelesen werden. Bitte folge dieser Anleitung, um den Token auszulesen: Token extrahieren

Der ausgelesene Token muss hier eingegeben werden.

Zeit Ladestation verlassen (s)

Es gibt einen Befehl "Dock Release" bzw. "Ladestation verlassen", der an den Robot abgesetzt werden kann. Bei diesem Befehl fährt der Robot x Sekunden geradeaus nach vorne (z. B. unter einem Schrank hervor). Die Zeit kann hier eingestellt werden. Der Befehl kann z. B. genutzt werden, um den Robot zum Staubbehälter-Leeren vorzufahren.

Robot Kommados

Hier findest Du eine Auflistung aller Kommandos, die für die Robots voreingerichtet sind. Die Kommandos werden per HTTP REST API an das Plugin übergeben. Du kannst so auch eigene Kommandos generieren. Zum absetzen der Befehle an den Robot wird die Software miiocli verwendet (Achtung! Die Syntax von miiocli unterscheidet sich leicht von mirobo! mirobo-Befehle funktionieren nicht!) . Dokumentation hier: https://python-miio.readthedocs.io/en/latest/miio.html#module-miio.vacuum

Um einen Befehl an den Robot abzusetzen, wird folgende API verwendet (die möglichen Befehle finden sich in der miio-Dokumentaion):

Kommando ohne Option, z. B. "find":

http://loxberry/plugins/mirobot2lox-ng/sendcmd.cgi?command=find&robot=1&debug=0


command= Kommando, welches abgesetzt werden soll (siehe miio Dokumentation)

robot=1|2|3|4|5 Nummer des Robots, an den das Kommando gesendet werden soll

debug=0|1 Debugging-Informationen aus oder an

Kommando mit Option, z. B. "set_fan_speed":

http://loxberry/plugins/mirobot2lox-ng/sendcmd.cgi?command=set_fan_speed&option=50&robot=1&debug=0


command= Kommando, welches abgesetzt werden soll (siehe miio Dokumentation)

option= Zusätzliche Option für das Kommando (siehe miio Dokumentation)

robot=1|2|3|4|5 Nummer des Robots, an den das Kommando gesendet werden soll

debug=0|1 Debugging-Informationen aus oder an

Soundpacks

Hier kannst Du neue Soundpacks auf dne Robot installieren, z. B. Deutsche Sprache. Wir haben verschiedene TTS Engines verwendet. Die beste Sprachqualität liefert normalerweise Amazon Polly. Nachdem Du ein Soundpack ausgewählt hast, musst Du noch festlegen, auf welchen Robot Du das Soundpack spielen möchtest. Anschließend wird das entsprechende Kommando ausgeführt.

 

Hinweis

Der Robot muss über die XIAOMI App zuvor auf englische Sprache gestellt werden. Der Befehl zum Installieren des Soundpacks überschreibt die englischen Sprachdateien im Robot.

 

Eingänge / Ausgänge

Mit diesem Wizard


kannst Du sehr einfach die notwendigen Templates für die Ein- und Ausgänge in LoxConfig erstellen. Die Templates können dann sehr einfach ins eigene Projekt importiert werden und Du brauchst so nicht alle Ein- und Ausgänge manuell anzulegen. Nur Virtuelle Text Eingänge müssen manuell angelegt werden.

Virtuelle Texteingänge

Die Virtuellen Texteingänge müssen manuell angelegt werden. Die Bezeicnung oder der Name müssen dem im Wizard angezeigten exakt entsprechen. Diese Virtuellen Textausgänge kann man dann z. B. auf einen Statusbaustein zur Anzeige in der App legen.

Virtuelle Ausgänge

Ab LoxConfig Version 9 kannst Du die Datei direkt importieren:

 

 

 

Bis LoxConfig Version 8 muss die Datei manuell in das Verzeichnis C:\ProgramData\Loxone\Loxone Config VERSION\Templates\VirtualOut kopiert werden. Sie muss dabei unbedingt mit VO_ beginnen, damit sie erkannt wird. LoxConfig muss anschließend neu gestartet werden.


Virtuelle UDP Eingänge


Wenn Du die Status-Daten per UDP im Miniserver empfangen möchtest (Hinweis: Dazu muss die entsprechende Option in den Einstellungen des Plugins aktiviert sein), musst Du dieses Template in Dein Projekt integrieren. Ab LoxConfig Version 9 kannst Du die Datei direkt importieren:

 

 

Bis LoxConfig Version 8 muss die Datei manuell in das Verzeichnis C:\ProgramData\Loxone\Loxone Config VERSION\Templates\VirtualIn kopiert werden. Sie muss dabei unbedingt mit VIU_ beginnen, damit sie erkannt wird. LoxConfig muss anschließend neu gestartet werden.

Virtuelle HTTP Eingänge

Wenn Du die Status-Daten per HTTP-Eingäng im Miniserver einlesen möchtest, musst Du dieses Template in Dein Projekt integrieren. Ab LoxConfig Version 9 kannst Du die Datei direkt importieren:

 

 

Bis LoxConfig Version 8 muss die Datei manuell in das Verzeichnis C:\ProgramData\Loxone\Loxone Config VERSION\Templates\VirtualIn kopiert werden. Sie muss dabei unbedingt mit VI_ beginnen, damit sie erkannt wird. LoxConfig muss anschließend neu gestartet werden.

 

Kommentar

  1. Thomas Marck sagt:

    Könnte mal bitte jemand ein beispiel.loxone Template ins Wiki stellen? Ich habe nämlich insbesondere nicht den Punkt "Virtuelle Texteingänge" und "Virtuelle Textausgänge" verstanden und mit einem konkreten Beispiel kann ich das immer besser nachvollziehen.