Xiaomi Roborock S5/S50 mit Alexa steuern (Valetudo RE und Home Assistant)

Der lasergesteuerte Saugroboter Roborock S5(50) ist schon ein geiles Stück Hardware. Mit der relativ neuen Raumerkennung ist er ein echter Helfer geworden. Zuvor hatte ich immer Sauger von iRobot (Roomba) die nur dumm durch die Gegen gefahren sind aber trotzdem ihre Arbeit relativ gut verrichtet haben. Nur hat es immer ewig gedauert und war laut. Meine Roombas sind letztendlich alle aus dem Haus geflogen und nun werkelt nur noch ein Roborock S5 mit Valetudo RE Firmware. Mich hat es allerdings immer genervt (ich weiß, das sind mega Probleme), dass ich den Robi per Handy oder mit meinem iPad (hängt an der Wand als Hauszentrale) starten muss, da mein Robi schön versteckt unter dem Küchenschrank steht.

 

Ich habe recherchiert und habe eigentlich direkt nichts passendes gefunden. Allerdings habe ich ja nun seit neustem die Valetudo RE Firmware installiert, diese bietet ja MQTT, also die Möglichkeit, den Robi von einem anderen Gerät aus starten zu lassen. Was ist Valetudo? Das ist eine alternative Open Source Firmware bzw. ein Webserver, der zusammen mit der originalen Firmware (die geschlossen ist) auf den Robi gespielt wird. Dadurch ist der Robi von der Cloud befreit und man hat viel mehr Möglichkeiten. Ich hatte zuvor die ursprüngliche Valetudo Firmware drauf, die mir allerdings zu einfach gestrickt war. Deshalb habe ich mich dann für den Valetudo Clon (Valetudo Sourcecode kopiert und erweitert = Valetudo RE) "Valetudo RE" entschieden. Ich muss sagen, ich bin sehr zufrieden mit der Entscheidung!

 

Zurück zum Thema Alexa. Also mit Valetudo RE auf dem Robi ist es schonmal möglich, den Robi extern zu steuern. Also auch Raumreinigung starten, das war mir wichtig. Nun fehlt die Alexa Anbindung. Da ich ja Home Assistant (HA auf einem Raspberry Pi 3B) zur Steuerung meines Lichts usw (siehe ZigBee / Iskra Stromzähler) verwende und dort die Anbindung mit Alexa bereits eingerichtet ist, musste ich nur noch den Roborock via MQTT mit meinem HA verbinden und ein paar Skripte für Alexa erstellen. Voila nun kann ich mit Alexa einen oder mehrere Räume gleichzeitig saugen lassen. Wie geht das? Weiterlesen :)

 

Anleitung:

Teil 1 - Valetudo RE auf den Roborock S5(50) übertragen

Damit ihr loslegen könnt benötigt ihr ein Laptop mit WLAN (Windows) und Tools zum Übertragen. Ihr könnt es auch mit einem MAC oder Linux System machen, aber hier beschränke ich mich auf ein Windows Laptop.

 

Tools und Firmware:

  1. Windows Tool "WIN-MIROBO 1.1.0" herunterladen + entpacken. Offizieller Downloadlink. Falls nicht verfügbar alternativer Download Link.
  2. Tool zum Auslesen des Roborock Token. Offizieller Downloadlink. Alternativer Link.
  3. Valetudo RE Firmware aussuchen und herunterladen. Für den Roborock S5(50) = Gen2 Downloadseite. Dort findet ihr eine Liste mit Downloads. Achtet darauf, dass am Ende valetudo_re steht. Die Zahl davor ist die Originale Roborock Firmwareversion, die ihr haben wollt. Ich habe die neuste Firmware und Valetudo RE Version genommen, also 2034 und Valeutdo Re 0.10.5 (Stand 03.2021). Somit landet ihr bei "vacuum_2034_valetudo_re_0_10_5.pkg". Falls der Link nicht mehr funktioniert oder sonstwas, hier ein alternativer Download Link

Roborock Resetten:

  1. Ihr benötigt eine Büroklammer
  2. Roborock aus der Ladestation nehmen
  3. Ladestation Taste (Steckersymbol) auf dem Robi gedrückt halten für 5s
  4. Weiterhin gedrückt halten + und nun zusätzlich mit einer Büroklammer die Reset Taste kurz drücken
  5. LEDs gehen aus und Stimme ertönt "Firmware Reset"
  6. Knopf loslassen und  paar Minuten warten bis erneut eine Stimme ertönt ODER ihr den Roborock WLAN Hotspot findet

Firmware einspielen:

  1. Nach dem Firmware Reset mit dem Laptop (auf dem die Firmware und die Tools sind) mit dem offenem Wifi Hotspot des Roborocks verbinden
  2. Roborock wieder auf die Ladestation fahren lassen/stellen.
  3. Token und die Roborock IP mit dem "Roborock Token Ausleseprogramm" auslesen lassen. Token und IP notieren => Textdatei. Programm schließen!
  4. Im entpackten "win-mirobo-min" Ordner die win-mirobo.ini Datei mit einem Texteditor (Notepad) öffnen und die eben ausgelesene IP und den Token dort eintragen.
  5. Die zuvor heruntergeladene Valetudo Firmwaredatei .pkg in den Ordner "firmwares" kopieren
  6. win-mirobo.bat starten und Firmwareupdate auswählen. Die Firmware sollte erkannt werden. Es kann losgehen! Euer Notebook muss während des Vorgangs neben dem Robi stehen. Lauft nicht damit weg. Der Robi muss auf der Ladestation stehen!
  7. Paar Minuten später sollte eine Stimme ertönen und ihr solltet nicht mehr mit dem Hotspot verbunden sein
  8. Erneut mit dem Hotspot verbinden und die IP (siehe oben) im Browser eingeben. Kann sein das der Robi noch eine gewisse Zeit benötigt bevor ich etwas sehen könnt
  9. Falls erfolgreich seht ihr die Valetudo Weboberfläche. Dort unter Einstellungen müsst ihr eure WLAN Accessdaten eingeben, damit sich der Robi verbinden kann. Drückt auf speichern, danach findet ihr die IP des Roborocks in eurem WLAN Router.
  10. FERTIG

Optional kann danach noch das Language Paket de.pkg über die Valetudo RE Seite eingespielt werden. Anleitung.

 

MQTT für Home Assistant einstellen:

  1. Unter Settings -> MQTT -> Enabled aktivieren
  2. Autoconfiguration Prefix: homeassistant
  3. Bei URL nun folgende Adresse eingeben = mqtt://mqtt@HOMEASSISTANT-IP
    HOMEASSISTANT-IP = IP eures Home Assistant Systems
  4. Identifier: rockrobo
  5. Topic Prefix: valetudo
  6. Optional: Provide map data: aktivieren
  7. Safe MQTT configuration

 

Teil 2 - Homeassistant einstellen (MQTT und Alexa)

 

MQTT installieren und einstellen:

  1. Im Menüpunkt Supervisor -> Add-on Store den "Mosquitto broker" suchen + installieren
  2. Configuration alles auf Standard lassen und dann starten
  3. Im Menüpunkt Configuration -> Users "+ ADD USER" um einen Benutzer für mqtt zu erstellen:
    Display name = mqtt
    Username = mqtt
    Password = mqtt
    Group = Users
  4. Im Menüpunkt Configuration -> Integrations "+ ADD INTEGRATION" drücken und den "Mosquitto broker" hinzufügen oder die Integration wird bei euch bereits automatisch angezeigt. Dort auf Configure drücken und dort dann auf Re-Configure MQTT
  5. Broker und Port auf Standard lassen, bei Username und Passwort füllt ihr den eben erstellten Benutzer ein (mqtt, mqtt)
  6. Auf der nächsten Seite alles so lassen und auf Finish klicken
  7. MQTT ist nun fertig eingerichtet und sollte automatisch euren Saugrobi "rockrobo" finden und unter Devices anzeigen.

 

Skripte zur Raumreinigung erstellen:

Damit ihr schön bequem via Alexa eure Räume reinigen könnt müsst ihr vorher natürlich in Valetudo solche erstellen und passende Namen vergeben.

Ja wir sind noch nicht ganz fertig. Damit Home Assistant mit Alexa später Räume reinigen kann müssen Skripte erstellt werden. Dazu geht zu Configuration -> Scripts und erstellt für euren ersten Raum das erste Skript, hier im Beispiel für den Raum "Küche".

  1. Skript erstellen drücken
  2. Name z.B. "Staubsauger Raum Küche"
  3. Action type "Call service"
    Service = vacuum.send_command
    Targets = + Pick entity = rockrobo
    Command = segmented_cleanup
    Parameters = segment_ids:
                                 - Küche
  4. Bei segment_ids müsst ihr euren Raumnamen exakt 1:1 eingeben. Erstellt keine Räume mit Leerzeichen.
  5. Nun erstellt für jeden eurer Räume ein Skript

 

 

Alexa in HA nutzen und einrichten:

Hier kommt es drauf an ob ihr Geld bezahlen wollt oder lieber alles selbst einrichten möchtet. Folgt bitte dieser Anleitung:

https://www.home-assistant.io/integrations/alexa/

Wollt ihr kein Geld ausgeben (so wie ich), dann könnt ihr auch direkt auf diesen Link klicken:

https://www.home-assistant.io/integrations/alexa.smart_home/

 

Wenn ihr damit fertig seit und in eurer configuration.yaml alexa aktiviert habt, dann müsst ihr nur noch für alexa Filter einrichten sonst wird einfach alles von Alexa als Device gefunden. Ich habe mir eine neue alexa.yaml Datei erstellt (nutzt das Addon File Editor). In der configuration.yaml habe ich folgendes stehen:

 

alexa:

  smart_home: !include alexa.yaml

 

In der alexa.yaml fügt ihr nun eure zuvor erstellten Raum Reinigungsskripte ein:

 

entity_config:

  script.staubsauger_raum_kuche:

    name: Staubsauger Küche

  script.staubsauger_raum_flur:

    name: Staubsauger Flur

 

Darunter erstellt ihr einen Filter, nur die folgenden Entities werden an Alexa weitergereicht. Natürlich könnt ihr dort auch eure Lampen usw einstellen und steuern.

 

filter:

 

  include_entities:

    - script.staubsauger_raum_kuche

    - script.staubsauger_raum_flur

 

Nun speichert alles und startet Home Assistant neu. In eurer Alexa App oder über https://alexa.amazon.de/spa/index.html#appliances könnt ihr nun eure Skills bzw. Räume finden lassen. Ich habe in der Alexa App noch Routinen erstellt damit es einfacher ist den Raum Befehl zu sagen. Dort habe ich eingestellt: Alexa, sauge Küche. Führe das Skript Küche aus und sage OkiDoki. Das müsst ihr dann für jeden Raum einmal machen. Danach könnt ihr auch die Räume hintereinander reinigen lassen in dem ihr folgendes sagt: Alexa, sauge Küche .... ok .... Alexa, sauge Flur ... ok ... usw!

 


Gästebuch

Kommentare: 4
  • #4

    Sebastian (Donnerstag, 04 November 2021 22:19)

    wow das ging schnell, setze morgen mal die HA instanz auf ;) Vielen Dank!

  • #3

    ottelo (Donnerstag, 04 November 2021 21:44)

    FERTIG!

  • #2

    ottelo (Mittwoch, 03 November 2021 20:04)

    Oh es interessiert doch jemanden ;). Nagut dann werde ich da morgen mal ran. Oder so

  • #1

    Sebastian (Mittwoch, 03 November 2021 17:42)

    Bin auf Teil 2 und 3 gespannt!