NEWS
[Tester gesucht] Roborock-API
-
Moin. Könntest du die Module zum download veereitsstellen? Würde gerne auch damit spielen. Danke
-
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...
-
Moin. Könntest du die Module zum download veereitsstellen? Würde gerne auch damit spielen. Danke
-
@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
@rovo89 Hab das ganze unter Windows ausprobiert. Da erhalte ich Folgende Meldung. Nich wundern, ich hab da deine Daten aus deinem Beispiel reingeschrieben.
C:\Program Files\iobroker\SmartHome>node login.js 'user@example.org' 'password'
C:\Program Files\iobroker\SmartHome\login.js:37
loginApi.defaults.headers.common['Authorization'] = userdata.token;
^TypeError: Cannot read properties of null (reading 'token')
at main (C:\Program Files\iobroker\SmartHome\login.js:37:64)
at processTicksAndRejections (node:internal/process/task_queues:96:5) -
@dontoben said in [Tester gesucht] Roborock-API:
@oxident
Gibt es schon einen Adapter zum Testen?Na, von mir sowieso nicht ;-)
Da liegen unsere Hoffnungen auf @Meistertr und @rovo89 -
@dontoben said in [Tester gesucht] Roborock-API:
@oxident
Gibt es schon einen Adapter zum Testen?Na, von mir sowieso nicht ;-)
Da liegen unsere Hoffnungen auf @Meistertr und @rovo89 -
@oxident
Also ich kann schnell ein Adapter schreiben aber ich habe ein s7 der mit mihome app und adapter gut funktioniert
Was wäre der genaue Vorteil von einem eignen roborock adapter@tombox Beim S7 MaxV lässt sich in Verbindung mit der Roborock-App das Kamerabild aus der Ferne betrachten. Das geht mit der Mihome-App nicht. Und per Roborock-App eingerichtet lässt sich der roborock leider nicht mit dem Mihome-Adapter verbinden.
Das wäre der einzige Unterschied, der mir momentan einfällt.Gruss, Jürgen
-
@tombox Beim S7 MaxV lässt sich in Verbindung mit der Roborock-App das Kamerabild aus der Ferne betrachten. Das geht mit der Mihome-App nicht. Und per Roborock-App eingerichtet lässt sich der roborock leider nicht mit dem Mihome-Adapter verbinden.
Das wäre der einzige Unterschied, der mir momentan einfällt.Gruss, Jürgen
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.
-
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.
versucht einzuloggen, no way. versucht neu zu reggen, no way.