Wpis z mikrobloga

Mirki, odnośnie tego i tego wpisu: zrootowałem swój #roborock S50 ( ͡° ͜ʖ ͡°).

Wołam @wex009 bo był zainteresowany.

Generalnie mamy tutaj do czynienia z trzema narzędziami:

Pierwsze i najważniejsze to narzędzia Dustcloud, to jest repozytorium gościa z MIT, który pracował nad złamaniem zabezpieczeń odkurzacza i przygotował sporo fajnych narzędzi, między innymi to, które umożliwia budowanie zmodyfikowanego firmware oraz flashowanie go po WiFi jako update'u oprogramowania. Tutaj jest adres repozytorium Dustcloud.

Drugie to alternatywny interfejs obsługi Valetudo. Wystawia on interfejs przeglądarkowy w sieci lokalnej, dzięki któremu możemy obsługiwać odkurzacz przez zwykłą przeglądarkę, zarówno z telefonu, jak i z komputera. Bardzo ważną informacją jest to, że Valetudo blokuje wysyłanie danych do chmury Xiaomi, w związku z czym odkurzacz traci komunikację z aplikacją mobilną i po zainstalowaniu Valetudo nie da się go obsługiwać z poziomu aplikacji Mi Home. Przez to niestety tracimy możliwość obsługi sprzętu spoza domu, z drugiej strony nasze dane nie lądują w chińskiej chmurze, więc instalacja tego narzędzia jest kwestią osobistych preferencji. Ja akurat mam na domowym serwerze zapięty VPN, więc mogę się logować z internetu do swojej sieci lokalnej, ale większość ludzi nie jest takimi nerdami jak ja i odetnie sobie możliwość obsługi odkurzacza spoza domu.
Co do tego problemu, to Valetudo jest napisane w node.js i jest otwarte, więc mam plan na zmodyfikowanie go tak, żeby działała również oficjalna aplikacja. Zainteresowanych tematem proszę o wyplusowanie odpowiedniego komentarza, to zawołam jak już moja modyfikacja będzie gotowa. Repozytorium Valetudo pod tym linkiem.

Trzecie to bardzo fajna aplikacja desktopowa Roborock Control Center. Korzysta ona z interfejsu odkurzacza w celu wydawania mu poleceń oraz dodatkowo z API Valetudo w celu obsługi mapy i stref (jeśli nie mamy zainstalowanego Valetudo na odkurzaczu, to te ostatnie funkcje nie będą działać na rrcc). Aplikacja jest wieloplatformowa, działa na Windowsie, Linuksie oraz Mac OS. Repozytorium rrcc pod tym linkiem.

Napiszę instrukcję jak to zrobić. Od razu zaznaczam, że poniższa instrukcja służy wyłącznie celom edukacyjnym i nie ponoszę żadnej odpowiedzialności za skutki jej wykonania. Jeśli uceglicie sobie odkurzacz, to nie odpowiadam za to.

Procedura, którą przyjąłem jest następująca:

1. Zbudowanie niestandardowego firmware przy pomocy tego narzędzia.
Instrukcja:
Jeżeli nie macie klucza ssh, wygenerujcie go sobie na podstawie tej instrukcji. W przypadku Windowsa polecam użyć Git Basha (zainstalujcie gita). Na Linuksie i Mac OS jest ssh na standardzie, więc wystarczy jedna komenda.

1.1. W polu "voucher" wpisujemy "rockrobo"
1.2. W polu na maila podajemy swojego maila
1.3. W polu klucza publicznego wrzucamy wygenerowany klucz publiczny (idrsa.pub)
1.4. Z rozwijanej listy wybieramy odpowiednią wersję oprogramowania (nie pomylcie się bo możecie sobie sprzęt zepsuć!), ja wybrałem S50 wersja 1886
1.5 Klikamy captchę i akceptujemy formularz.

Odnośnie powyższego: nie zaznaczajcie innych opcji, jak będziecie później chcieli podpiąć się z apki mobilnej, to Valetudo Wam to uniemożliwi jeśli je zainstalujecie! Instalację Valetudo można wykonać również z poziomu rrcc.

2. Jak nam przyjdzie paczka na maila, to pobieramy i rozpakowujemy ten plik i lecimy według tej instrukcji, ale tylko sekcji "Upload the firmware image" używając paczki z oprogramowaniem z maila.
Generalnie wystarczy zainstalować pythona razem z zależnościami z instrukcji, przepiąć odkurzacz w tryb resetowania WiFi, potem podłączyć się do tego WiFi z komputera i odpalić komendę flashera. Odkurzacz się zaktualizuje i powie nam o tym komunikatem głosowym - cała filozofia.

3. Po tej operacji podpinacie się do odkurzacza z apki mobilnej i podłączacie go do WiFi. Odkurzacz jest zrootowany!

4. Czas na odpalenie Roborock Control Center. Pobierzcie go z linka, który był na początku posta i uruchomcie. Po odpaleniu rrcc zapyta Was o adres IP odkurzacza oraz token.
Adres IP powinien się automatycznie uzupełnić (spiszcie go sobie!). Klikacie "extract token via SSH", podajecie wcześniej wygenerowany klucz publiczny (id
rsa.pub) i akceptujecie. Token powinien zaciągnąć się do odpowiedniego pola. Potem klikacie "save" i wchodzicie to aplikacji. Z tego poziomu możecie zainstalować Valetudo na odkurzaczu. Operacja jest mega prosta, nic nie trzeba wybierać, wystarczy tylko kliknąć. Pamiętajcie jednak, że zainstalowanie Valetudo oznacza koniec obsługi z poziomu Mi Home!

Co możemy z tym zrobić:
po pierwsze możemy się zalogować przez SSH do systemu odkurzacza. Jest to logowanie po kluczu publicznym, na Linuksie i Mac OS wystarczy wpisać "ssh root@adres-ip-odkurzacza". Na Windowsie tak samo, ale z poziomu Git Basha.
Oprócz tego, jeśli zdecydowaliśmy się na Valetudo, mamy możliwość obsługi odkurzacza z przeglądarki. Wystarczy wpisać w przeglądarce jego adres IP (musimy być w tej samej sieci lokalnej) i voila! Możemy obsługiwać odkurzacz z dowolnego urządzenia.
Do tego rrcc umożliwia nam sporo rzeczy, między innymi podmienianie paczek głosów. Generalnie dużo tego jest ( ͡° ͜ʖ ͡°).
  • 10
  • Odpowiedz
Zaplusuj ten wpis jeśli chcesz być wołany na informację o pojawieniu się zmodyfikowanej przeze mnie wersji Valetudo zachowującej funkcjonalność oryginalnej aplikacji mobilnej.
  • Odpowiedz
@isActive: Valetudo umożliwia np. tworzenie i zapamiętywanie nazwanych stref czego nie masz w apce oryginalnej. W tym momencie nie ma tam opcji mapowania różnych pięter, może w przyszłości się pojawi.

Ja to wrzuciłem dlatego, że udostępnianie odkurzacza domownikom przy pomocy Mi Home było upierdliwe (jedna osoba w ogóle nie ma smartfona, więc trzeba by było emulator Androida instalować). Przez przeglądarkę wystarczy im linka podać i można korzystać.

Ja zamierzam przywrócić wysyłanie
  • Odpowiedz
@TheRealMikz: ja mam w planach r2d2 ( ͡° ͜ʖ ͡°)
Dobrze rozumiem, że do rrcc (który wystarczy do podmiany dźwięków?) nie potrzeba appki?
Mam iosa wiec appka i tak odpada :/
  • Odpowiedz
@mrOlii: Valetudo obsługujesz przez przeglądarkę, więc nie ma znaczenia z jakiego urządzenia (tak długo, jak długo ma w miarę świeżą przeglądarkę z obsługą JavaScript). Rrcc to jest aplikacja na PC, którą możesz odpalić pod Windowsem, Linuksem lub Mac OS, ale instalujesz ją na swoim kompie. Żadne z nich nie jest aplikacją mobilną! Są jakieś alternatywne appki mobilne, ale nie korzystałem z nich, więc wiele o nich nie wiem.

Ty, R2D2 to
  • Odpowiedz