Ehoco.nl

SSH-toegang verkrijgen bij een Xiaomi Roborock S5

Xiaomi Roborock S5 in Domoticz bedienen - token uitlezen

In dit artikel leggen we uit hoe je SSH-toegang kunt krijgt op de Xiaomi Roborock S5. SSH-toegang is onder andere nodig als je een andere taal op de stofzuiferrobot wilt installeren of alle verbindingen met de Chinese servers een halt wilt toeroepen.

Benodigdheden

Software installatie

In de PuTTy terminal geef je onderstaande commando’s in om de benodigde software te installeren:


Kloon/kopieer de Dustcloud Repository met Git:


Ga naar de firmwarebuilder folder:


Download op de Dustcloud site de firmware. Het is belangrijk dat je de juiste firmware download, anders kan het zomaar einde verhaal zijn! Roborock S5 (S50/S51/S52/S55) is Gen2. Als je firmware 3.3.9_001720 wilt gebruiken krijg je bijvoorbeeld als link https://cdn.awsbj0.fds.api.mi-img.com/rubys/updpkg/v11_001720.fullos.pkg. Op dit moment staan de firmware-bestanden van Gen1 op twee servers en de firmware-bestanden van Gen2 op vier verschillende servers. Niet alle firmware-bestanden staan op alle servers. Dit is een kwestie van proberen.


Download het Engelse taalpakket:


Maak nu de SSH-keys aan (het maakt niet uit wat voor een mailadres gebruikt wordt):


Er zal nu gevraagd worden waar je de key wilt opslaan. Druk alleen op Enter. Vervolgens wordt er gevraagd om een wachtwoord in te geven. Vul niets in, maar druk twee keer op Enter.

Kopieer de public key:


Nu is het tijd om de firmware met SSH-toegang te maken. Let erop dat je eventueel de versie van de firmware aanpast:


Na een minuut of vijf krijg je de MD5 (b70357a6ced2ce739ccad248e42abd52) en het bestand (output/v11_001720.fullos.pkg) te zien. Controleer nog even of er geen foutmeldingen voorbij gekomen zijn.

Nu de aangepaste firmware gemaakt gaan we de Xiaomi Roborock S5 flashen. Let erop dat je eventueel de versie van de firmware aanpast:


Het flashen zal 5 tot 10 minuten duren. De led op de Xiaomi Roborock S5 zal snel knipperen. Zodra het flashen klaar is zal de led langzamer knipperen.

Je kunt nu in PuTTY inloggen op de Xiaomi Roborock S5 met onderstaand commando. Het IP-adres moet je uiteraard wel aanpassen naar het IP-adres van jouw Roborock S5.


Je krijgt de eerste keer onderstaand tekst te zien:


Typ nu yes in en je bent ingelogd als root@rockrobo !

SSH-toegang met password

Indien gewenst kun je een password voor SSH-toegang instellen, zodat je met PuTTY snel op de Roborock S5 kunt inloggen:


Typ nu twee keer het wachtwoord in (en vergeet het niet!).

SSH-toegang met key

Op zich heb je vanaf de gebruikte Raspberry Pi al SSH-toegang via een SSH-key. Echter, het kan ook handig zijn om vanaf je Windows PC (met PuTTY, of WinSCP) in te kunnen loggen op de Xiaomi Roborock S5. Hiervoor moeten we de private key kopieren.

Eerst moeten we de SSH-verbinding verbreken (indien deze nog in stand was):


Ga nu naar de folder waar de key opgeslagen is:


Aangezien de key in de /root.ssh/ folder staat kopiëren we de key eerst naar /home/pi/.


Pas de eigenaar van het bestand aan:


Nu kun je de key (bestand id_rsa) eenvoudig van de Raspberry Pi naar de Windows PC downloaden met WinSCP of FileZilla.

Op nu op de PC het programma PuTTYgen en klik op Load om de private key te laden. Je krijgt een melding dat de key in het oude PEM formaat is. Dat is geen probleem. Klik op Ok en vervolgens op Save private key. Je krijgt de vraag of je de private key wilt opslaan zonder een (extra) wachtwoord. Beantwoord deze vraag met Ja. Sla de private key (.pkk formaat) op een locatie op je PC op.

Open PuTTY en geeft het IP-adres van je Xiaomi Roborock S5 in. Zorg er ook voor dat bij Port de waarde 22 staat en bij Connection type SSH is geselecteerd. Ga nu naar Connection > SSH > AUTH. Klik op Browse onder “Private key file for authentication”. Selecteer de private key die je eerder op je PC hebt opgeslagen. Tot slot ga je nu aan de linkerkant weer terug naar Session (helemaal bovenaan) en klik je op Save.

Token opvragen

Nu je SSH-toegang op de Xiaomi Roborock S5 hebt kun je ook heel eenvoudig de token opvragen:

Tip!

Mocht je een foutmelding tegenkomen als “UnicodeEncodeError: ‘ascii codec can’t encode characters in position xx-xx” geef dan onderstaande in de terminal in en volg de stappen opnieuw:

Mobiele versie afsluiten