NEWS
[Tester gesucht] Roborock-API
-
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.json
zwischengespeichert. 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.js
ausfü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 ich bin unfassbar beeindruckt, ich habe Tage (wenn nicht sogar Wochen) davor gesessen und bin einfach nicht weiter gekommen. Meinen größten Respekt dafür!!! Das ist das wo ich schon seit 2 Jahren drauf warte. Würde es aber nicht in die Mihome app integrieren da Roborock und "Xiaomi" mittlerweile zu weit auseinander driften und ein Roborock Adapter eine bessere Wiedererkennung bietet.
Werde es gleich Testen und mir ein Bild machen.wenn du möchtest kann ich gerne einen Basisadapter fertigmachen oder umgekehrt und ich untertütze wo ich kann,. An dem Projekt liegt mir sehr viel...
-
Erster test verlief super. Habe 2 roborocks in der mihome und einen 'Schläfer' in der roborock app. Einen s7,s5 und einen s5max
-
@meistertr sagte in [Tester gesucht] Roborock-API:
wenn du möchtest kann ich gerne einen Basisadapter fertigmachen oder umgekehrt und ich untertütze wo ich kann,. An dem Projekt liegt mir sehr viel...
das wäre sicher was feines! ich hab im moment wieder das canvas problem seit dem js update und somit wird die karte wieder mal nicht upgedatet. vllt ist das problem dann auch geschichte?
-
@da_woody das ist kein Fehler, liegt auch nicht am Adapter sondern an canvas selbst da offiziell nur eine geringe anzahl von Plattformen und Systemen unterstützt wird. wird aber auch dran gearbeitet und gehört hier nicht hin
-
@meistertr ich hab ja nicht behauptet, daß es am adapter liegt. wollte auch keine diskussion darüber anzetteln, nur meine hoffnung zum ausdruck bringen, daß mit dem neuen adapter das problem erledigt ist.
sorry, wenn du das falsch interpretiert hast. -
@meistertr sagte in [Tester gesucht] Roborock-API:
ich bin unfassbar beeindruckt, ich habe Tage (wenn nicht sogar Wochen) davor gesessen und bin einfach nicht weiter gekommen. Meinen größten Respekt dafür!!! Das ist das wo ich schon seit 2 Jahren drauf warte.
Hehe danke. Ich habe recht viel Erfahrung mit sowas, aber trotzdem hat es eine ganze Weile gedauert. Ich hatte schon befürchtet dass das Ergebnis keinen außer mich interessiert, weil erstmal keine Reaktion kam.
Würde es aber nicht in die Mihome app integrieren da Roborock und "Xiaomi" mittlerweile zu weit auseinander driften und ein Roborock Adapter eine bessere Wiedererkennung bietet.
OK, ich denke auch dass es nur wenig Überlappung gibt.
wenn du möchtest kann ich gerne einen Basisadapter fertigmachen oder umgekehrt und ich untertütze wo ich kann,. An dem Projekt liegt mir sehr viel...
Danke! Ich mache gerade verschiedene Sachen gleichzeitig, Priorität hat gerade dass ich meine selbstgebaute Bewässerung einbinde. Dafür habe ich schon mit dem Wizard die Struktur erstellt und schaue mir an dem Beispiel an wie die wichtigsten Sachen funktionieren. Danach würde ich dann damit anfangen, dass ich anhand der API die Objekte/States anlege. Wenn ich Fragen habe melde ich mich, insbesondere wie man den Login realisiert und die Daten sicher speichert wird bestimmt knifflig.
-
ich mache grade 2 sachen. Spiele mit der api, (hab ein modul aus dem code gemacht, was sich leicht in adapter einbinden lässt) und zum anderen arbeite ich gerade an der Kartendarstellung, da die neueren mehr dastellen können als die älteren geräte
-
@meistertr
Sehr interessant, das alles zu lesen.Wie ist eure Abschätzung? Wird es einen Adapter mit der Roborock Cloud für die Saugroboter geben, oder ist das technisch nicht möglich?
Danke und VG
-
-
@meistertr said in [Tester gesucht] Roborock-API:
Super, dann werde ich jetzt auch Roborock Kunde.
Echt Klasse, was hier hier in eurer Freizeit leistet. Respekt. -
Lässt sich der Adapter schon irgendwie testen?
-
@darkdevil ne noch nicht
-
Habe mir eine Roborock S7 MaxV gekauft und habe diesen mit dem mihome-vacuum Adapter und der Xiaomi Home App in iobroker eingebunden.
Doch leider lassen sich dann einige Funktionen, die nur in der Roborock App verfügbar sind, nicht nutzen.Hätte gerade versucht dafür eine Lösung zu finden und habe dieses Thema gefunden.
Ich habe sehr großes Interesse an diesem Adapter und könnte mit testen unterstützen, wenn es euch hilft. -
Moin. Könntest du die Module zum download veereitsstellen? Würde gerne auch damit spielen. Danke
-
@m-a-hueb ersten post nicht gelesen? github...
-
Da wartet mein S7+ schon lange!! Mit den anderen Adaptern und der China-Wolke bin ich nicht klar gekommen. Dann werde ich mal githup besuchen...
-
@da_Woody ich meinte eigentlich den Adapter von @Meistertr
-
@m-a-hueb sorry, aber auf github gibts halt die verschiedenen.
hier gehts um dir robo-api, und nicht um xiaomi... -
@da_woody ich mein ja die roborock. Nur obs die Möglichkeit gibt die direkt als adapter via github zu installieren