Xiaomi Vacuum Staubsauger Roboter mit Homematic steuern
Nach einer langen Odyssee von Try&Error eines geeigneten SmartHome Staubsauger-Roboters zu finden, bin ich mit unserer neuesten Errungenschaft endlich zufrieden.
Dieser hat die Ansprüche von Preis-/Leistung, Geräuscharm, Saugleistung, Tierhaar tauglich, neuester Sensorik und letztendlich der SmartHome-Tauglichkeit bestanden.
Es handelt sich um den Roborock S50, welcher auch wieder in das SmartHome eingebunden wurde.
Im Vorteil zu seinem Vorgänger, dem Xiaomi Vacuum, der übrigens identisch mit dieser Anleitung angebunden werden kann, besitzt das zweite Modell auch eine Wischfunktion, die wir nicht mehr vermissen möchten.
Dabei sollte der Staubsauger über Homematic vollautomatisch gesteuert werden. Dies bedeutet konkret, dass dieser durch eine Anwesenheitserkennung bei Abwesenheit selbstständig alle 2 Tage saugt, jedoch nicht wenn der Hund im Haus ist. Das Ganze soll auch komplett abschaltbar oder gar erzwungen werden können.
Wie ich das gelöst habe, möchte ich euch nicht vorenthalten.
Voraussetzung: Lauffähige IoBroker und CUXD-Installation
-> IoBroker auf Raspberry Pi installieren
-> Installation CUxD-Addon
Los geht’s!
Xiaomi Token mit Android auslesen
-
Zuerst werden die Entwickleroptionen freigeschaltet und anschließend das USB-Debugging aktiviert.
Dazu habe ich ein kleines Youtube-Video angehängt.
Java wird ebenfalls benötigt. https://java.com/de/download/
Das Mi Toolkit ist nahezu selbsterklärend. Hier bitte einfach den Anweisungen des Programms und auf dem Smartphone folgen. Dabei bitte beachten, kein Passwort einzugeben, auch wenn dies irgendwo verlangt wird!
Hat alles geklappt, so ist jetzt der Token zu sehen. Bitte sorgfältig notieren.
In der Doku des IoBroker mihome-Adapters gibt es weitere Anleitungen um den Token z.B. mit IOS auszulesen.
ioBroker Adapter
- Die iobroker.Admin Seite (http://deine-iobroker-ip:8081) aufrufen
- ioBroker mihome-vacuum Adapter hinzufügen
- ioBroker Javascript Adapter hinzufügen
mit + wird der Adapter hinzugefügt. - ioBroker Adapter konfigurieren
mit + wird der Adapter hinzugefügt.
Achtet darauf, dass der Adapter nach der Installation gestartet ist (Reiter Instanzen)
Im Reiter Instanzen öffnet man nun die Konfiguration des mihome-vacuum Adapters.
Achtet vorher darauf, dass der Robot immer die gleiche IP bekommt.
Wie man die IP-Adresse für ein Gerät fest vergibt, habe ich bereits im Artikel Homematic Anwesenheitserkennung per Smartphone beschrieben.
Hier wird nun die IP-Adresse und der zuvor ausgelesene Token eingetragen.
Der Haken add Alexa State ist unbedingt zu setzen. Dieser wird später im Script, sowie zum steuern über Alexa benötigt.
Hat alles geklappt, kann man jetzt schon mal den ersten Test machen.
Dazu einfach Wert des Objekts mihome-vacuum.0.control.clean_home unter Objekte zwischen true und false umschalten. Bei true startet der Staubsauger und bei false fährt er wieder zurück zur Ladestation.
CuxD Homematic Staubsauger Gerät anlegen
Ist kein CuxD installiert, so können Sie in diesem Blog nachlesen, wie man dieses Addon installiert.
- Unter Geräte legen wir nun unser Gerät(4) Staubsauger in der Homematic an.
Sobald man auf Gerät auf der CCU erzeugen klickt, wird das Gerät auf der CCU erzeugt.
Unter Geräte anlernen > Posteingang erscheint nun unser angelegtes Gerät. Die Installation ist mit dem Button Fertig abgeschlossen.
Unter Startseite -> Geräte kann dieses virtuelle Homematic Gerät nun bedient werden. Dies hat allerdings erst zum Ende dieses Tutorials seine Funktion!
Daten zwischen Homematic und IoBroker synchronisieren
-
Damit der Staubsauger nun mit Homematic gesteuert werden kann und im Falle einer Steuerung über IoBroker bzw. der Mi Home App auch die Homematic über den aktuellen Status des Staubsaugers informiert ist, bedarf es einer Synchronisierung beider Systeme.
- Falls dieser noch nicht im Iobroker existiert, wird ein zusätzlicher Homematic RPC Adapter separat für den CUXD installert. Dazu wird dazu ein neuer Homematic RPC Adapter hinzugefügt, wie folgt konfiguriert und im Homematic Rega Adapter verknüpft:
Ist der Adapter gestartet, so tauchen dann unter Objekte auch die CUXD-Geräte bzw. unser Homematic Staubsauger Gerät auf.
Die ID vom State-Objekt des CUXD-Gerätes ist hier zu notieren, da dies im folgenden Script benötigt wird. -
Bevor wir nun das Script einfügen können, müssen wir zuerst den Reiter SCRIPTE in der Ansicht anzeigen lassen.
Dies geschieht über das Icon und anschließendem Klick auf Ansicht -> Scripte.
Ist der Reiter Script jetzt zu sehen, kann der Bearbeitungsmodus mit erneutem Klick auf das Symbol beendet werden.
-
Wechseln wir nun zum Reiter Scripte.
Anschließend wird per Klick auf das Icon ein neues Script vom Typ Javascript erstellt.
Diesem geben wir einen sinnvollen Namen (SYNC HM-IO-STAUBSAUGER) und fügen folgenden Code-Beispiele ein:// ioBroker-Script für Xiaomi Vacuum Staubsauger Roboter mit Homematic steuern by Homematic-Guru.de // https://homematic-guru.dexiaomi-vacuum-staubsauger-roboter-mit-homematic-steuern var IO = 'mihome-vacuum.0.control.clean_home'; // Clean Home Objekt vom mihome-Adapter var HM = 'hm-rpc.1.CUX4000003.1.STATE'; // Objekt vom CUXD-Schalter on(IO, HM); // Synchronisierung IoBroker zu Homematic on(HM, IO); // Synchronisierung Homematic zu IoBroker
Jetzt noch die Variablen IO und HM auf die Objekte der eigenen Umgebung anpassen, speichern und das Script starten.
Hat alles geklappt, kann jetzt schon mal das CUXD-Gerät der Homematic bedient, bzw. der Staubsauger über Homematic gesteuert werden.
Dies kann recht leicht über einen zusätzlichen RPC-Adapter sowie eines kleinen Scripts realisiert werden.
Homematic Systemvariablen für Staubsauger anlegen
Staubsaugerautomatik: Dies Variable setzt die Staubsaugerautomatik bei Bedarf außer Kraft.
Staubsauger gesaugt gestern: Definiert ob gestern gesaugt wurde
Staubsauger gesaugt heute: Definiert ob heute gesaugt wurde
Staubsauger saugen erzwingen: Erzwingt den Saugvorgang auch wenn gestern oder heute bereits gesaugt wurde.
Homematic Programme Staubsauger
Programmbeispiel zum automatischen Staubsaugerstart bei Abwesenheit.
Basierend auf meiner Anleitung Anwesenheitserkennung per Bluetooth wird in unserem Haus automatisch bei Abwesenheit gesaugt und bei Ankunft, falls der Staubsauger noch saugt, gestoppt.
Auch auf unseren Hund habe ich Rücksicht genommen, so dass bei seiner Anwesenheit eben nicht gesaugt wird.
Programm anlegen
Quicktipp: Programm anlegen
- Homematic Programm Staubsauger bei Abwesenheit
- Homematic Staubsauger Variablen Vortag übertragen
Damit die Variable „Staubsauger gesaugt gestern“ gefüllt und „Staubsauger gesaugt heute“ geleert wird, bedarf es eines weiteren Homematic Programms, das einmal Nachts um 00:00 Uhr ausgeführt wird.
Zeitmodul:
Script:
! Homematic-Script für Staubsauger Variablen übertragen/reset by Homematic-Guru.de ! https://homematic-guru.dexiaomi-vacuum-staubsauger-roboter-mit-homematic-steuern var staubsaugerheute = dom.GetObject('Staubsauger gesaugt heute').State(); dom.GetObject('Staubsauger gesaugt gestern').State(staubsaugerheute); dom.GetObject('Staubsauger gesaugt heute').State(0);
Das Script setzt voraus, dass die Variablen exakt wie oben beschrieben angelegt sind!
Fertig!
Staubsauger mit Alexa steuern
Wer den Xiaomi Vacuum bzw. Roborock S50 über Alexa steuern möchte, der benötigt jetzt nur noch einen kleinen Schritt im IoBroker Cloud-Adapter.
Viel Spaß!