Zones stofzuigen met de Roborock S5 en mappen opslaan

Sinds enige tijd kun je via de Mi Home app de map van je huis opslaan op de de Roborock S5, zodat je later een bepaalde zone (bv. de keuken, hal of slaapkamer) kunt laten stofzuigen. Aan deze functionaliteit in de Mi Home app zitten enkele nadelen:

  • je moet telkens op de kaart een zone tekenen, waarna je de Roborock deze zone kunt laten stofzuigen
  • indien je een keer niet het hele huis hebt laten stofzuigen, bijvoorbeeld omdat er een deur ergens dicht zat, dan kun je de zone daarachter niet meer laten stofzuigen, totdat de Roborock weer een volledige ronde heeft gemaakt.
  • de Mi Home app bewaart altijd de laatste map: dit heeft als nadeel dat als je de Roborock een keer op een bovenverdieping hebt gebruikt, je de map van beneden kwijt bent.

Deze problemen gaan we in dit artikel oplossen!

Benodigdheden

Voorbereiding

Zorg ervoor dat je de Mi Home app en FoleVac app geïnstalleerd hebt op je telefoon en dat je ingelogd bent. Zet alle deuren open en verwijder obstakels zoveel als mogelijk. Start de Roborock S5 nu en laat hem een volledige ronde stofzuigen.

Ervan uitgaande dat je reeds SSH-toegang hebt op de Roborock S5, log je met bv. FileZilla of WinSCP in op de stofzuiger. Je ziet in de map /mnt/data/rockrobo/ dat er onder andere de volgende staan:

  • user_map0
  • PersisData_1.data
  • PersistData_2.data
  • last_map

Dit zijn de vier bestanden die na elke zuig-ronde bijgewerkt worden en dus voor ‘problemen’ zorgen als je een keer op de bovenverdieping hebt gestofzuigd. Het doel is nu dus om deze bestanden ergens te bewaren en te kunnen laden, indien dat nodig is.

We gaan nu drie bash-bestandjes aanmaken:

Bestand 1: save_map_roborock.sh

#!/bin/bash
ssh root@192.168.2.79 'cd /mnt/data/rockrobo; cp user_map0 /mnt/data/rockrobo/saved_maps/; cp last_map /mnt/data/rockrobo/saved_maps/; cp PersistData_1.data /mnt/data/rockrobo/saved_maps/; cp PersistData_2.data /mnt/data/rockrobo/saved_maps/'

Aanvullende info: er wordt met SSH ingelogd op de Roborock S5, vervolgens gaan de naar de folder /mnt/data/rockrobo/ en kopiëren we de vier bestanden naar de map /mnt/data/rockrobo/saved_maps.

Bestand 2: reset_map_roborock.sh

#!/bin/bash
ssh root@192.168.2.79 'cd /mnt/data/rockrobo; rm user_map0; rm last_map; rm PersistData_1.data; rm PersistData_2.data'

Aanvullende info: er wordt met SSH ingelogd op de Roborock S5, vervolgens gaan de naar de folder /mnt/data/rockrobo/ en worden de vier bestanden verwijderd. Hiermee wordt de map geheel verwijderd (er wordt automatisch weer een nieuwe aangemaakt als de Roborock S5 gaat stofzuigen (of als je handmatig een oude map gaat laden, zie hieronder).

Bestand 3: load_map_roborock.sh

#!/bin/bash
ssh root@192.168.2.79 'cd /mnt/data/rockrobo/saved_maps; cp user_map0 /mnt/data/rockrobo/; cp last_map /mnt/data/rockrobo/; cp PersistData_1.data /mnt/data/rockrobo/; cp PersistData_2.data /mnt/data/rockrobo/'

Aanvullende info: er wordt met SSH ingelogd op de Roborock S5, vervolgens gaan de naar de folder /mnt/data/rockrobo/saved_maps en worden de vier bestanden teruggezet naar de oorspronkelijke locatie. Hiermee herstel je dus bv. de map van de benedenverdieping als je boven een keer gestofzuigd hebt. Note: de map is in de Mi Home app pas zichtbaar als je de stofzuiger een keer gestart (en gestopt) hebt.

Zet deze drie bestanden op de Raspberry Pi in bv. de map /home/pi/domoticz/scriptsjoost/bash/ (mag ook een andere map zijn, maar dan moet je daar later in het artikel ook rekening mee houden). Zorg ervoor dat de rechten van de drie bestanden op 755 staan.

Log nu via SSH in op de Roborock S5 en maak de map /mnt/data/rockrobo/saved_maps aan. Dit is de map waar we de vier bestanden straks naar toe kopiëren, zodat we ze later weer kunnen gebruiken indien nodig.

Map saven, resetten en laden in Domoticz

De voorbereidingen zijn nu klaar, het is tijd voor de laatste stappen in Domoticz. Maak in Domoticz een dummy Selector Switch aan en gebruik de settings, zoals in onderstaande afbeelding. Vergeet niet om op Save te klikken!

Je kunt nu in Domoticz een map saven, laden of resetten:

Aangezien ik hier alles gelijkvloers heb hoef ik maar één map te kunnen saven. Mocht je, zoals de meeste mensen hebben, in een huis met twee of meer verdiepingen wonen dan maak je op de Roborock S5 meerdere mappen aan, bv. /mnt/data/rockrobo/saved_maps/benden, /mnt/data/rockrobo/saved_maps/boven en /mnt/data/rockrobo/saved_maps/zolder. Uiteraard moet je de drie bash-bestandjes dan ook enigszins aanpassen (bestandsnaam + inhoud) en heb je in de selector switch in Domoticz 3x 3 regels staan.

Zones stofzuigen via Domoticz

Nu we de gehele map kunnen saven en opnieuw laden is het tijd om bepaalde zones te kunnen stofzuigen via Domoticz. Hiervoor hebben we de X- en Y-coördinaten van de map nodig. Deze achterhalen we met de FloleVac app. We gaan ervan uit dat je reeds ingelogd bent in de FloleVac app met je Mi account. Ga nu via het menu (drie liggende streepjes linksboven) naar Map. Je krijgt nu de laatste map te zien. Druk op “Zoned cleanup”. Je krijgt nu de rechter afbeelding te zien met een vierkant. Dit vierkant kun je verschuiven en groter/kleiner maken. Zorg nu dat een bepaalde zone (bv. de hal bij de voordeur) geheel gedekt is door het vierkant. Vervolgens houdt je “Cleanup” ingedrukt, totdat je “Copied to clipboard” krijgt te zien. De coördinaten staan nu in het geheugen van je telefoon en kun je bv. in Whatsapp plakken, zodat ze zichtbaar worden. Je krijgt dan iets te zien als: [[26490,26927,28940,2927,1]]. Doe dit voor alle zone’s die je wilt aanmaken.

      

Nu je de coördinaten van alle zone’s hebt gaan we voor iedere zone een bash-bestandje aanmaken:

Zone Woonkamer: stofzuigen_woonkamer.sh

#!/bin/bash
sudo -H -u pi mirobo --ip 192.168.2.79 --token 57364a6716946a653475183656673343 zoned-clean [[24651,25171,31851,31221,1]]

Aanvullende info: Als gebruiker pi geven we een mirobo-commando. Uiteraard moet je het IP-adres, het token en de coördinaten aanpassen. Het nummer achter de coördinaten, in dit voorbeeld 1, geeft aan hoe vaak de zone gestofzuigd moet worden.

Maak voor alle zone’s zo’n bash-bestandje aan en zet deze in de map /home/pi/domoticz/scriptsjoost/bash/ (mag ook een andere map zijn, maar dan moet je daar later in het artikel ook rekening mee houden). Zorg ervoor dat de rechten van de drie bestanden op 755 staan.

Ik heb ook een bash-bestandje aangemaakt met de naam stofzuigen_vuilnisbak.sh. Uiteraard hoeft de vuilnisbak niet gestofzuigd te worden, maar hier heb ik een “go to” commando ingezet, zodat met één klik de Roborock S5 onder de bank vandaan komt, naar de vuilnisbak rijdt en ik het stofbakje leeg kan maken, ideaal! Dit bash-bestandje ziet er iets anders uit:

#!/bin/bash
sudo -H -u pi mirobo --ip 192.168.2.79 --token 57364a6716946a653475183656673343 goto 31299 25783

 

Tijd voor de laatste stap! Maak in Domoticz een dummy Selector Switch aan en gebruik de settings, zoals in onderstaande afbeelding. Vergeet niet om op Save te klikken!

Je kunt nu in Domoticz een zone laten stofzuigen of de Roborock S5 naar de vuilnisbak laten rijden.

Je hebt nu, via Domoticz, de functionaliteit van de veel duurdere Roborock S6 !

Eén gedachte over “Zones stofzuigen met de Roborock S5 en mappen opslaan

  • 26 november 2019 om 10:19
    Permalink

    Hallo Joost,

    Ik probeer de mappen te scheiden voor boven en beneden, maar als ik de roborock boven laat lopen ontbreken de mappen: user_map0 en PersistData_2.data in de directory /mnt/data/rockrobo

    Groet
    Rudi

    Beantwoorden

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *