Home Assistant - Xiaomi Roborock V1/S50/S55/S5 - sprzątanie wybranego pokoju głosowo

Home Assistant - Xiaomi Roborock V1/S50/S55/S5 - sprzątanie wybranego pokoju głosowo

Czy warto kupować Xiaomi Roborock S6, który wyróżnia się głównie możliwością sprzątania wybranych pokoi? Moim zdaniem nie! Mam na to lepsze rozwiązanie!

Dla mnie to był prosty rachunek - S6 kosztuje 2500 zł a S5 kupimy już za 1600 zł - różnica prawie 1000 zł. Zakup fajnego zestawu Rasberry Pi 3 B+ do obsługi powyższego to niecałe 220 zł a będziemy mogli zrobić za jego pomocą dużo, dużo więcej! No to zaczynamy!

Token Roborocka

W pierwszej kolejności musimy wyciągnąć Token naszego odkurzacza. Niestety kiedyś było to proste, potem usunęli tę informację z aplikacji a obecnie (podobno jest dostępna w logach). Jak komuś się udało to wyciągnąć z logów dajcie znać. Ja naszukałem się tego, oraz przeglądnąłem bardzo, bardzo dużo stron (te bardziej treściwe na samym dole artykułu).

W końcu znalazłem tutaj, link do tej wersji programu czyli 5.4.38 i nie trzeba nic kombinować. Po prostu instalujemy tę wersję, zamiast posiadanej. Logujemy się (pamiętajcie o wyborze serwera jaki mieliście czyli China Mainland lub Europa) wchodzimy w naszego Roborocka -> trzy kropki w prawym górnym rogu -> General Setting-> Więcej ustawień -> Informacje o sieci -> Token (powinno się dać przytrzymać na nim palec i skopiować aby tego nie przepisywać).

HA_1

Zrób zrzut ekranu aby mieć, kopię zapasową IP + tokena.

Pamiętaj aby ustawić stałe IP na swoim routerze dla odkurzacza, możesz o tym przeczytać tutaj w punkcie Stałe IP urządzenia.

Musimy mieć w Mi Home zapamiętaną mapę: trzy kropki w prawym górnym rogu -> Vacuum Setting -> Map saving mode (Beta) -> ON

Instalacja Component (Integracji)

Otwieramy configuration.yaml i dodajemy na koniec pliku:

vacuum:
  - platform: xiaomi_miio
    host: [IP ODKURZACZA]
    token: [WYCIĄGNIĘTY TOKEN]
    name: [NADAJ_TUTAJ_NAZWĘ] # jeden wyraz bez polskich znaków

U mnie wygląda to tak:

vacuum:
  - platform: xiaomi_miio
    host: 192.168.0.35
    token: 6c4X3XXX576XX64XX14b34XX5a3XX7XX
    name: Benji

Stworzenie skryptu sprzątania strefy

Następnie otwieramy scripts.yaml - jest w tym samym katalogu co configuration.yaml i dodajemy na koniec:

vacuum_kitchen: # unikatowa nazwa skryptu
      alias: "Vacuum kitchen" # unikatowa polecenie (będzie nam potrzebne dla Google Home)
      sequence:
        - service: vacuum.send_command
          data:
            entity_id: vacuum.Benji # nazwę Benji  zastąp swoją wcześniej nadaną nazwą z pliku configuration.yaml
            command: app_zoned_clean
            params: [[23685,24153,25185,28253,1]] # przeczytaj niżej jak je uzyskać

Skryptów możemy mieć wiele, jeden za drugim, dla przykładu:

vacuum_mop:
      alias: "Vacuum water"
      sequence:
        - service: vacuum.send_command
          data:
            entity_id: vacuum.Benji
            command: app_zoned_clean
            params: [[23885,24203,25185,28403,1],[24075,28400,25175,30850,1],[23911,30878,25811,34178,1]]
        - service: vacuum.set_fan_speed
          data:
            entity_id: vacuum.Benji
            fan_speed: 105


vacuum_bathroom:
      alias: "Vacuum bathroom"
      sequence:
        - service: vacuum.send_command
          data:
            entity_id: vacuum.Benji
            command: app_zoned_clean
            params: [[23911,31928,25711,34178,1]]

Jak możecie zauważyć w sekcji MOP, jest wiele parametrów, ponieważ przedpokój jest w kształt litery L a przy wejściu jest dywan, którego nie chcę mopować. Dodatkowo ustawiona jest prędkość na 105 - jest to odgórnie ustalona wartość aby wywołać mycie na mokro (pozostałe tryby są od 0 do 100).

Grupowanie skryptów w listę rozwijaną

Jeżeli chcemy mieć porządek, tak żeby to wszystko ładnie wyglądało możemy zrobić grupowanie skryptów w liście rozwijanej.

Uzyskanie koordynat sprzątania

Zanim zaczniemy -> całe nasze mieszkanie dla odkurzacza to układ współrzednych X/Y. Położenie stacji bazowej to koordynat: [25500,25500]. Na szczęście nie musimy nic liczyć ani rysować w paincie! Wystarczy, że użyjemy aplikacji FloleVac. W której narysujemy strefę którą uważamy np. za kuchnie.

Roborock S50_2

Przytrzymamy przycisk Sprzątaj - koordynat zostanie skopiowany do schowka. Teraz możemy go wkleić w skrypts.yaml-> params - zwróć uwagę na nawiasy aby zgadzały się z przykładem.

Nowa wersja oprogramowania

Pełny artykuł tutaj: Sprzątanie wybranych pokoi w Xiaomi Roborock S5 - nowe oprogramowanie

FloleVac nie odczytuje nowej mapy (na 4.01.2020) ale możemy w prosty sposób zrobić script sprzątania danych pokoi bez tego: 

entity_id: vacuum.Benji
command: app_segment_clean
params: [1]

Gdzie params to numer pomieszczenia, niestety trzeba przetestować każde po kolei - w moim przypadku zaczęły się dopiero od 10. Jeżeli trafimy w zły numer, odkurzacz wyjedzie kawałek, obróci się i powie sprzątanie strefy zakończone a następnie wróci do bazy. 

Test

No to skoro wszystko mamy to restartujemy malinkę, przeczytaj jak to zrobić tutaj. Ale zanim to zrobisz koniecznie sprawdź poprawność plików aby nie zwiesić na amen HA. Jeżeli będziesz dodawać nowe skrypty bez edytowania configuration.yaml to możesz przeładować tylko skrypty: Configuration -> General -> Configuration reloading -> Reload Scripts

Następnie łączymy się z HA przez stronę www i patrzymy na zakładkę Overview, powinien się nam pojawić nowy box o tytule Scripts  z nazwami skryptów a obok Execute. No to czas przetestować działanie. Włączamy sprzątanie wybranego pokoju. Sprawdzamy w Mi Home czy rzeczywiście zaznaczona jest ta strefa co chcieliśmy i radujemy się z pierwszego praktycznego wykorzystania Home Assisntant!

Integracja z Google Home

Wszystko już opisałem w osobnym artykule. Pamiętaj tylko aby nasze skrypty były włączone dla Google Home, zgodnie z obrazkiem w tamtej instrukcji. Teraz mówimy do Google Home dokładnie to co mamy napisaliśmy w aliasie naszego skryptu, poprzedzając to słowem activate

Pamiętajcie aby wszystko nazywać po Angielsku, do póki Google nie rozpoznaje oficjalnie Polskiego.

Kliknij i sprawdź aktualne promocje na te odkurzacze.


Źródła:
https://www.home-assistant.io/components/vacuum.xiaomi_miio/#retrieving-the-access-token
https://community.home-assistant.io/t/get-the-xiaomi-home-token/53500/3
https://community.home-assistant.io/t/howto-xiaomi-vacuum-zoned-cleaning/51293
https://miboy.pl/2018/04/08/xiaomi-vacuum-wersja-1-i-2-jezyk-polski-jako-komendy-glosowe-i-strefy/
https://community.athom.com/t/xiaomi-mi-roborock-s50-vacuum-cleaner-token/2516/21
https://play.google.com/store/apps/details?id=de.flole.xiaomi


Chcesz wiedzieć więcej? Dołącz do naszej grupy na FB - będzie nam też miło jak polubisz nasz Fanpage!