NEWS
[Tester gesucht] Roborock-API
-
Hi. Bin seit dieser Woche stolzer Besitzer eines S7 Pro Ultra. Hatte den zunächst auch mit der Roborock App eingerichtet. Gestern habe ich dann den mihome vacuum Adapter entdeckt und den Roboter zusätzlich in der Xiaomi Home App eingerichtet (geht jetzt in beiden Apps parallel). Wenn der Adapter dann fertig ist kann ich mich für das o.g. Modell auch als Tester anbieten.
@mp_trixi Ach, das geht? Bin bisher davon ausgegangen, dass man nur entweder/oder kann zumal man doch zur Registrierung den Roboter zurücksetzen muss. Oder irre ich mich gewaltig?
Und Du kannst wirklich noch beide Apps verwenden?@tombox In der Tat wäre der Vorteil, dass man die Features, die es nur über den Roborock-Account gibt, weiterhin nutzen kann. Wenn es natürlich möglich wäre, das Gerät mit beiden Accounts parallel zu verwenden, dann braucht man natürlich keinen eigenen Adapter ;-)
-
Hi. Bin seit dieser Woche stolzer Besitzer eines S7 Pro Ultra. Hatte den zunächst auch mit der Roborock App eingerichtet. Gestern habe ich dann den mihome vacuum Adapter entdeckt und den Roboter zusätzlich in der Xiaomi Home App eingerichtet (geht jetzt in beiden Apps parallel). Wenn der Adapter dann fertig ist kann ich mich für das o.g. Modell auch als Tester anbieten.
@mp_trixi
Kannst du uns sagen, wie du das gemacht hast.
Wenn ich mich bei einer anderen App anmelde und verbinde, geht das nur mit zurücksetzen und neuem Verifizierungs code und dann funktioniert der alte Verifizierungs code in der alten App nicht mehr. -
@meistertr Servus, der Adapter sieht doch schon super aus. Gibt es den irgendwo schon zum testen? Gruß & Danke Martin
-
Hallo zusammen, ich fange gerade mit ioBroker an und habe festgestellt dass ich meinen neuen Roborock S7 nicht so wirklich gut einbinden kann. Alles was ich bisher gefunden habe setzt die Mi Home-App und ein schwierig zu beschaffendes Token voraus. Ich würde aber gerne bei der spezialisierten Roborock-App bleiben und habe mir die deswegen mal genauer angeschaut. Mit viel Detektivarbeit konnte ich die Aufrufe weitestgehend entschlüsseln.
Herausgekommen sind dabei bisher zwei Skripte, die sich erstmal nur an technisch Versierte richten:
https://gist.github.com/rovo89/dff47ed19fca0dfdda77503e66c2b7c7Mit
node login.js 'user@example.org' 'password'meldet man sich zunächst bei euiot.roborock.com an und erhält ein JSON mit seinen Benutzerdaten. Die werden inuserdata.jsonzwischengespeichert. Diese Daten enthalten u.a. URL und Anmeldedaten für eine zweite API (bei mir immer api-eu.roborock.com), von der hauptsächlich die Liste der Geräte abgerufen wird. Diese Infos enthalten u.a. die Device-ID und einen "localKey" - keine Ahnung ob das das Token wäre das man für andere Adapter braucht?!?Jedenfalls kann man anschließend
node test.jsausführen, was anhand dieser Daten eine MQTT-Verbindung zu den Roborock-Servern herstellt. Es gibt pro Gerät ein "Input"-Topic zum Senden von Requests und ein "Output"-Topic zum Empfangen der Antworten. Letztendlich sind die Requests JSONs in der Art{"t":1657015047,"dps":{"101":"{\"id\":1,\"method\":\"get_prop\",\"params\":[\"get_status\"]}"}}, was wohl auch bei anderen Implementierungen der Fall ist. Das Ganze wird dann noch verschlüsselt, mit Headern versehen etc. und bei den Antworten genau umgekehrt. Karten (get_map_v1) sind nochmal zusätzlich verschlüsselt, am Ende kommen binäre Daten beginnend mit "rr" dabei heraus die auch im Mapviewer angezeigt werden können.Als Beispiel wird in dem Skript das erste Geräte nach dem Status und seiner Karte gefragt und die Daten angezeigt. Es ist also ein Proof of Concept, das später entweder ein eigenständiger Adapter oder Teil eines bestehenden werden soll. Wenn jemand dabei helfen möchte: sehr gerne!
Mag jemand die Skripte mal testen? Voraussetzung sind nur ein Roborock, der in die Roborock-App (nicht Mi Home!) eingebunden ist, NodeJS (bei mir Version 16) und etwas technisches Verständnis. Skripte einfach herunterladen (oben rechts ist ein "Download ZIP"-Button) und wie beschrieben. Danke für euer Feedback!
@rovo89 Wollte auch vorsichtig nachfragen, ob sich da schon mehr getan hat und es einen Adapter zum testen gibt, bzw. ob man helfen kann? Außer dem POC-Code kann ich leider nichts finden.
Ich würde mich sehr über einen dedizierten Roborock-API Adapter freuen, da ich die Xiaomi-App aus diversen Gründen nicht nutzen möchte (u.a. fehlende Features).
-
Hallo zusammen, ich fange gerade mit ioBroker an und habe festgestellt dass ich meinen neuen Roborock S7 nicht so wirklich gut einbinden kann. Alles was ich bisher gefunden habe setzt die Mi Home-App und ein schwierig zu beschaffendes Token voraus. Ich würde aber gerne bei der spezialisierten Roborock-App bleiben und habe mir die deswegen mal genauer angeschaut. Mit viel Detektivarbeit konnte ich die Aufrufe weitestgehend entschlüsseln.
Herausgekommen sind dabei bisher zwei Skripte, die sich erstmal nur an technisch Versierte richten:
https://gist.github.com/rovo89/dff47ed19fca0dfdda77503e66c2b7c7Mit
node login.js 'user@example.org' 'password'meldet man sich zunächst bei euiot.roborock.com an und erhält ein JSON mit seinen Benutzerdaten. Die werden inuserdata.jsonzwischengespeichert. Diese Daten enthalten u.a. URL und Anmeldedaten für eine zweite API (bei mir immer api-eu.roborock.com), von der hauptsächlich die Liste der Geräte abgerufen wird. Diese Infos enthalten u.a. die Device-ID und einen "localKey" - keine Ahnung ob das das Token wäre das man für andere Adapter braucht?!?Jedenfalls kann man anschließend
node test.jsausführen, was anhand dieser Daten eine MQTT-Verbindung zu den Roborock-Servern herstellt. Es gibt pro Gerät ein "Input"-Topic zum Senden von Requests und ein "Output"-Topic zum Empfangen der Antworten. Letztendlich sind die Requests JSONs in der Art{"t":1657015047,"dps":{"101":"{\"id\":1,\"method\":\"get_prop\",\"params\":[\"get_status\"]}"}}, was wohl auch bei anderen Implementierungen der Fall ist. Das Ganze wird dann noch verschlüsselt, mit Headern versehen etc. und bei den Antworten genau umgekehrt. Karten (get_map_v1) sind nochmal zusätzlich verschlüsselt, am Ende kommen binäre Daten beginnend mit "rr" dabei heraus die auch im Mapviewer angezeigt werden können.Als Beispiel wird in dem Skript das erste Geräte nach dem Status und seiner Karte gefragt und die Daten angezeigt. Es ist also ein Proof of Concept, das später entweder ein eigenständiger Adapter oder Teil eines bestehenden werden soll. Wenn jemand dabei helfen möchte: sehr gerne!
Mag jemand die Skripte mal testen? Voraussetzung sind nur ein Roborock, der in die Roborock-App (nicht Mi Home!) eingebunden ist, NodeJS (bei mir Version 16) und etwas technisches Verständnis. Skripte einfach herunterladen (oben rechts ist ein "Download ZIP"-Button) und wie beschrieben. Danke für euer Feedback!
@rovo89 Guten Tag,
auch wenn ich aufgrund meiner bescheidenen Programmier-Kenntnisse wohl nichts Großes zur Entwicklung beitragen kann - ich teste gerne, wenn man mich wissen lässt, was zu tun ist.
Auf alle Fälle ist das hier der spannendste Entwicklungsansatz, weil Du Dich an die Roborock-App machst, die einfach unschlagbar ist.
Wenn ich was tun kann, freu ich mich - ansonsten lausche ich gespannt, wie sich alles entwickelt. -
Ich habe ehrlich gesagt noch gar nicht weitergemacht, aber @meistertr hatte oben einen Screenshot von einem Adapter gezeigt. Wie weiter da der Stand ist weiß ich allerdings nicht.
-
Ich habe ehrlich gesagt noch gar nicht weitergemacht, aber @meistertr hatte oben einen Screenshot von einem Adapter gezeigt. Wie weiter da der Stand ist weiß ich allerdings nicht.
@rovo89 Ich habe auch mal das ganze ausprobiert und zuerst hat es nicht funktioniert, allerdings habe ich dann, nach kurzem befragen des Internets, die Stelle:
"config.headers.common['Authorization']" durch "config.headers.Authorization" ersetzt und jetzt geht es.Vorher gab es immer eine unauthorized Error.
-
@rovo89 Ich habe auch mal das ganze ausprobiert und zuerst hat es nicht funktioniert, allerdings habe ich dann, nach kurzem befragen des Internets, die Stelle:
"config.headers.common['Authorization']" durch "config.headers.Authorization" ersetzt und jetzt geht es.Vorher gab es immer eine unauthorized Error.
-
ich habe kurzfristig entschlossen, dass ich nach über 6 Jahren meinen Focus von Iobroker zu einem anderen System verschieben will. Von daher stampfe ich auch den rocborock adapter ein und kann auch die anderen Adapter die ich bis jetzt betreut habe nicht weiter pflegen. Wenn jemand Interesse hat hier weiter zu machen, kann er mir gerne seine email Adresse per PN Schicken und ich stelle den Adapter zur Verfügung.
-
ich habe kurzfristig entschlossen, dass ich nach über 6 Jahren meinen Focus von Iobroker zu einem anderen System verschieben will. Von daher stampfe ich auch den rocborock adapter ein und kann auch die anderen Adapter die ich bis jetzt betreut habe nicht weiter pflegen. Wenn jemand Interesse hat hier weiter zu machen, kann er mir gerne seine email Adresse per PN Schicken und ich stelle den Adapter zur Verfügung.
@meistertr schade, aber danke, was du bisher hier getan hast... :+1:
-
ich habe kurzfristig entschlossen, dass ich nach über 6 Jahren meinen Focus von Iobroker zu einem anderen System verschieben will. Von daher stampfe ich auch den rocborock adapter ein und kann auch die anderen Adapter die ich bis jetzt betreut habe nicht weiter pflegen. Wenn jemand Interesse hat hier weiter zu machen, kann er mir gerne seine email Adresse per PN Schicken und ich stelle den Adapter zur Verfügung.
@meistertr das ist sehr schade. Du hast tolle Arbeit geleistet. Danke dafür.
-
ich habe kurzfristig entschlossen, dass ich nach über 6 Jahren meinen Focus von Iobroker zu einem anderen System verschieben will. Von daher stampfe ich auch den rocborock adapter ein und kann auch die anderen Adapter die ich bis jetzt betreut habe nicht weiter pflegen. Wenn jemand Interesse hat hier weiter zu machen, kann er mir gerne seine email Adresse per PN Schicken und ich stelle den Adapter zur Verfügung.
@meistertr Sehr sehr schade, deine Adapter und Scripte und deinen Support werden wir hier ganz schoen vermissen!
Danke danke danke!
-
ich habe kurzfristig entschlossen, dass ich nach über 6 Jahren meinen Focus von Iobroker zu einem anderen System verschieben will. Von daher stampfe ich auch den rocborock adapter ein und kann auch die anderen Adapter die ich bis jetzt betreut habe nicht weiter pflegen. Wenn jemand Interesse hat hier weiter zu machen, kann er mir gerne seine email Adresse per PN Schicken und ich stelle den Adapter zur Verfügung.
@meistertr Sehr schade. Aber man sollte aufhören, wenn es am schönsten ist ;-)
Danke für Deine Arbeit! -
@meistertr Sehr schade. Aber man sollte aufhören, wenn es am schönsten ist ;-)
Danke für Deine Arbeit! -
Hallo zusammen, ich fange gerade mit ioBroker an und habe festgestellt dass ich meinen neuen Roborock S7 nicht so wirklich gut einbinden kann. Alles was ich bisher gefunden habe setzt die Mi Home-App und ein schwierig zu beschaffendes Token voraus. Ich würde aber gerne bei der spezialisierten Roborock-App bleiben und habe mir die deswegen mal genauer angeschaut. Mit viel Detektivarbeit konnte ich die Aufrufe weitestgehend entschlüsseln.
Herausgekommen sind dabei bisher zwei Skripte, die sich erstmal nur an technisch Versierte richten:
https://gist.github.com/rovo89/dff47ed19fca0dfdda77503e66c2b7c7Mit
node login.js 'user@example.org' 'password'meldet man sich zunächst bei euiot.roborock.com an und erhält ein JSON mit seinen Benutzerdaten. Die werden inuserdata.jsonzwischengespeichert. Diese Daten enthalten u.a. URL und Anmeldedaten für eine zweite API (bei mir immer api-eu.roborock.com), von der hauptsächlich die Liste der Geräte abgerufen wird. Diese Infos enthalten u.a. die Device-ID und einen "localKey" - keine Ahnung ob das das Token wäre das man für andere Adapter braucht?!?Jedenfalls kann man anschließend
node test.jsausführen, was anhand dieser Daten eine MQTT-Verbindung zu den Roborock-Servern herstellt. Es gibt pro Gerät ein "Input"-Topic zum Senden von Requests und ein "Output"-Topic zum Empfangen der Antworten. Letztendlich sind die Requests JSONs in der Art{"t":1657015047,"dps":{"101":"{\"id\":1,\"method\":\"get_prop\",\"params\":[\"get_status\"]}"}}, was wohl auch bei anderen Implementierungen der Fall ist. Das Ganze wird dann noch verschlüsselt, mit Headern versehen etc. und bei den Antworten genau umgekehrt. Karten (get_map_v1) sind nochmal zusätzlich verschlüsselt, am Ende kommen binäre Daten beginnend mit "rr" dabei heraus die auch im Mapviewer angezeigt werden können.Als Beispiel wird in dem Skript das erste Geräte nach dem Status und seiner Karte gefragt und die Daten angezeigt. Es ist also ein Proof of Concept, das später entweder ein eigenständiger Adapter oder Teil eines bestehenden werden soll. Wenn jemand dabei helfen möchte: sehr gerne!
Mag jemand die Skripte mal testen? Voraussetzung sind nur ein Roborock, der in die Roborock-App (nicht Mi Home!) eingebunden ist, NodeJS (bei mir Version 16) und etwas technisches Verständnis. Skripte einfach herunterladen (oben rechts ist ein "Download ZIP"-Button) und wie beschrieben. Danke für euer Feedback!
@rovo89 - Vielen Dank hierfür, Wahnsinn :sunglasses: :+1: :+1:
Läuft super. Ich habe es gar nicht erst in node.js selbst getestet, sondern gleich deine Scripts in einen noch zu entwickelnden Adapter eingebaut (TypeScript). Erst mal nur zum Testen.
Ich werde daraus noch entsprechend einen Adapter-Vorschlag bauen.
Viel ist noch nicht da, zunächst lasse ich nur mal States erzeugen aus den verfügbaren Daten.


Ich melde mich hier wieder, sobald ich weiter bin.
-
@rovo89 - Vielen Dank hierfür, Wahnsinn :sunglasses: :+1: :+1:
Läuft super. Ich habe es gar nicht erst in node.js selbst getestet, sondern gleich deine Scripts in einen noch zu entwickelnden Adapter eingebaut (TypeScript). Erst mal nur zum Testen.
Ich werde daraus noch entsprechend einen Adapter-Vorschlag bauen.
Viel ist noch nicht da, zunächst lasse ich nur mal States erzeugen aus den verfügbaren Daten.


Ich melde mich hier wieder, sobald ich weiter bin.
@acgua
Habe einen S7 +, der mit der Roborock-App eingerichtet wurde.
Da Umrüsten auf Xiaomi-App von der Regierung garantiert abgeblockt wird, wäre auch ich hier sehr an dem Adapter interessiert.
Wenn also etwas zu testen ist ... bin dabei ;-) -
@acgua
Habe einen S7 +, der mit der Roborock-App eingerichtet wurde.
Da Umrüsten auf Xiaomi-App von der Regierung garantiert abgeblockt wird, wäre auch ich hier sehr an dem Adapter interessiert.
Wenn also etwas zu testen ist ... bin dabei ;-) -
Am Freitag kommt mein neuer S7 pro Ultra.
Dann kann ich auch testen.Aktuell läuft schon ein Skript zur Spracherkennung (Alexa Adapter) und Multiraumreinigung bei meinem Ecovacs.
Würde das dann gerne für den Roborock Adapter anpassen und noch paar Saug und Wischeinstellungen hinzufügen.
