iobroker-community-adapters / ioBroker.mihome-vacuum

Control your Xiaomi vacuum cleaner
MIT License
109 stars 51 forks source link

Neues China Gadget Roborock P10 - wäre super wenn ihr den einbinden könntet #842

Closed poldiderjungdrache closed 12 months ago

poldiderjungdrache commented 1 year ago

Hallo, ich hab mir ein neues Gadget aus China mitgebracht. Es handelt sich um einen Roborock P10:

Zur Spec konnte ich das hier finden. Da sehe ich nicht wirklich grosse Unterschiede zum S7 Pro (bin aber nicht wirklich der Experte).

Ich habe schon mal selber etwas rumprobiert und, wie hier beschrieben: "roborock.vacuum.a74": VacuumManager, // Roborock P10

Mal in der main.js hinzugefügt. Das führt dazu, dass ich keine Fehler oder Warnungen mehr im Log sehe. Jedoch werden dadurch in den Objekten nicht mehr Infos angezeigt. Kontrollieren (also z.B. einfach mal saugen schicken) geht auch nicht wirklich.

Bin gerne bereit noch weiter zu probieren. Ich muss aber ehrlich sagen, dass ich nicht genau weiss wie ich weiterkomme. Bin daher sehr dankbar wenn mir jemand ein paar Hinweise geben kann.

poldi

dirkhe commented 1 year ago

Wenn der nicht reagiert, scheint der ein anderes protokoll zu sprechen. Ist er denn verbunden? zeig doch mal das debug log

poldiderjungdrache commented 1 year ago

Ok erstmal zur Vollständigkeit. Ich hab die main.js direkt auf dem Host angepasst. Die sieht jetzt so aus:

simon@iobroker-iot:/opt/iobroker/node_modules/iobroker.mihome-vacuum$ more main.js | grep roborock "roborock.vacuum.s4": VacuumManager, // Roborock S4 "roborock.vacuum.s5": VacuumManager, "roborock.vacuum.s5e": VacuumManager, // Roborock S5 Max "roborock.vacuum.s6": VacuumManager, "roborock.vacuum.a08": VacuumManager, // Roborock S6 Pure "roborock.vacuum.m1s": VacuumManager, "roborock.vacuum.a10": VacuumManager, // Roborock S6 MaxV "roborock.vacuum.a15": VacuumManager, // Roborock S7 "roborock.vacuum.a27": VacuumManager, // Roborock S7 MaxV "roborock.vacuum.a38": VacuumManager, // Roborock Q7 Max "roborock.vacuum.a62": VacuumManager, // Roborock S7 Pro Ultra "roborock.vacuum.a70": VacuumManager, // Roborock S8 Ultra Pro "roborock.vacuum.a74": VacuumManager, // Roborock P10

Hoffe das ist korrekt so?

Dann hab ich nochmal den Adapter komplett gelöscht und neu deployed. Danach habe ich den Token und die IP direkt gesetzt (Vacuum Port bleibt Default, own Port muss ich ändern, da ich mehrere Adapter am laufen habe).

Dann hab ich den log level hochgesetzt und den Adapter gestartet. Der Adapter State wird dann recht schnell grün, also scheint der Token zu stimmen. Anbei der Log Output: iobroker.current.log

Auffällig finde ich folgendes: 2023-09-13 19:56:43.859 - debug: mihome-vacuum.2 (4546) MIIO MESSAGE TESTING: {"id":47,"error":{"code":-10002,"message":"rrcheck access denied"},"exe_time":41} 2023-09-13 19:56:43.860 - debug: mihome-vacuum.2 (4546) MIIO RECIVE: {"id":47,"error":{"code":-10002,"message":"rrcheck access denied"},"exe_time":41}

Access denied klingt nicht so als würde da irgendwas brauchbares zurückkommen. Aber ist mit nicht ganz klar woran das liegen könnte? Gruss, poldi

dirkhe commented 1 year ago

Also prinzipiell scheint er mit dir zu reden, aber ich denke, er spricht ein anderes protokoll. Die wichtigste Anfrage get_status scheint nicht zu funktionieren. Das sieht nicht gut aus.. Hast du mal den roborock adapter ausprobiert?

poldiderjungdrache commented 1 year ago

Danke für die schnelle Antwort. Ich denke ich bin einen Schritt weiter. Hab den gleichen Fehler hier gefunden. Das scheint an dem Region Lock zu liegen (hätte ich mir denken können). Den Roboter habe ich vor 2 Wochen in China gekauft und mitgebracht. Der wird bisher nur in China verkauft. In China hat er auch gut funktioniert. Aber in Deutschland verweigert sowohl die MiHome App als auch die Roborock App die Zusammenarbeit mit dem Hinweis Cloud Dienste für dieses Gerät wären in meiner Region nicht verfügbar. Ich hätte jetzt nicht erwartet, dass damit dann auch das komplette Gerät für lokale Zugriffe gesperrt wird. Ist eigentlich ein starkes Stück. Mist dann muss ich mich dochmal an so einen VPN versuchen um den Geoblock irgendwie auszuhebeln. Ich melde mich nochmal wenn ich damit weitergekommen bin. Danke erstmal für die Hilfe.

poldiderjungdrache commented 1 year ago

Kurzes Update von meiner Seite. Ich war erfolgreich. War allerdings ein bisschen Arbeit bis ich das VPN richtig hingekriegt habe. Für alle die in das gleich Problem laufen: Für die Geolocation nach IP ist die WAN Adresse des Roboters ausschlaggebend. Wo das Handy mit der MiHome App sich aufhält ist egal. D.h. ich habe auf einer Alibaba VM einen OpenVPN aufgesetzt. Meine UDM Pro als Client mit diesem VPN Server verbunden und ich route jetzt den Traffic aus einem dedizierten WLAN nur über diese VPN Verbindung. In dieses WLAN hab ich den Roboter eingehängt. Das scheint auszureichen um das Geoblocking von Roborock auszuhebeln.

Und siehe da auf einmal redet er mit mir und schickt Daten zurück: Screenshot 2023-09-26 at 22 02 02

Das Logfile hab ich auch angehängt: iobroker log.txt

Ich werde morgen mal ausprobieren in wieweit er sich kontrollieren lässt (die Kinder schlafen schon also keine Roboterfahrten mehr heute Abend).

poldiderjungdrache commented 1 year ago

Quick update. So far testing has shown no issues. Seems to be working out of the box.

dirkhe commented 12 months ago

v 4.1.0