NodeRED: Steuerung des Roborock S5 Max mit Valetudo per REST

Valetudo ist für den Staubsauger-Bot Roborock S5 Max noch im Beta-Status. In der Version 21.04 funktioniert bei mir das Senden von MQTT-Kommandos nicht – der Prozess valetudo stürzt ohne weitere Meldung ab. Daher nutze ich ihn derzeit über das REST-Interface von Valetudo, welches man auch mit den HTTP-Request-Nodes in NodeRED verwenden kann.

Voraussetzungen

Umsetzung

Für die Ansteuerung der REST-Schnittstelle hat NodeRED bereits alles an Board.

Für das Versenden des Kommandos nutze ich den Node “http request“. Für das Ausführen der Kommandos ist die HTTP-PUT-Methode notwendig.

Die verschiedenen Aktionen liegen auf unterschiedlichen Endpunkten, die ich mit der Variablen capability unterscheide. Diese Konfiguration erfolgt im Change-Node. Zudem wird hier gleich der HTTP-Header für den Inhaltstypen “Content-Type” gesetzt.

Die eigentlichen Kommandos habe ich in den Buttons versteckt, natürlich kannst Du das auch in andere Nodes einbauen.

Um die für dich passenden Koordinaten, Segmente oder Zonen herauszufinden, kannst Du in Deinem Browser die Valetudo-Oberfläche aufrufen. Die Segment-IDs findest du heraus, indem du in die Map soweit hineinzoomst, bis die Bezeichnung am Dreieck sichtbar ist. Die Segment-ID steht in runden Klammern.

Die Koordinaten findest du über einen Mitschnitt des Netzwerkverkehrs (Tab “Network”) in den “Entwicklertools” heraus. Dort siehst Du, was aufgerufen wurde. Der nachstehende Screenshot zeigt die Entwicklertools des Browsers Chromium. Valetudo hat bereits an einigen Stellen einen Info-Button eingebaut, der Dir zukünftig die IDs vermutlich auch direkt anzeigt.

Zu beachten ist, dass

  • der Inhaltstyp “Content-Type” auf application/json gesetzt wird und
  •  alle Zeichenketten in der JSON-Zeichenkette in Anführungsstriche eingeschlossen werden.

Den Flow aus dem Beispiel findest du in github.

Fazit

Auch wenn Valetudo sich für den S5 Max noch im Beta-Stadium befindet, so kann man bereits (einfache) Steuerungen per NodeRED durchführen. Mit REST lassen sich auch noch Kartendaten und verschiedene Status holen, so dass man seine UI noch erweitern kann. Bisher genügt mir die einfache Steuerung per REST.

André

War dieser Artikel nützlich für Dich? Dann hinterlasse gern eine Bewertung. So erkenne ich, welche Informationen hilfreich sind und investiere weiter in diese Richtung. Vielleicht habe ich auch bereits eine neuere Version und muss sie nur in den Artikel einarbeiten. Hast Du Meinungen, Hinweise oder Fragen? Dann hinterlasse einen Kommentar, kontaktiere mich per E-Mail an oder schreibe in die Telegram-Diskussionsgruppe https://t.me/joinchat/4v43ZhqxG2sxOTMy.

Alle Beiträge ansehen von André →

Sag mir deine Meinung! (Kommentar-Regeln)

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.