Roborock Vacuum Cleaner bedienen in Domoticz – Plugin

Stofzuigen… vind jij dat leuk? Ik heb er een gruwelijk hekel aan, maar toch moet dat regelmatig gebeuren. Een jaar of twee geleden was m’n interesse gewerkt door robot-stofzuigers, maar helaas waren die apparaten net in opkomst en hadden ze nogal wat beperkingen. Nu, anno 2019, is er een hoop veranderd, de robot-stofzuigers zijn een stuk beter geworden: grotere accu-capaciteit, ingebouwde lasers, val-sensoren, cloud-bediening, dweilfunctie en natuurlijk….. bediening via Domoticz! Het duurde dan ook niet lang voordat ik een Xiaomi Roborock S5 besteld had, een top apparaat voor een goede prijs!

Benodigdheden

Voorbereidingen

Voordat de Domoticz-plugin geïnstalleerd kan worden moeten we een aantal voorbereidingen treffen. Het eerste wat we moeten doen is de Xiaomi Roborock S5 een vast IP-adres in de router geven. Aangezien dit op iedere router/modem verschillend is verwijs ik je naar de website van de fabrikant of naar Google. Nadat de stofzuigerrobot een vast IP-adres heeft gekregen moet je de Roborock uitzetten, de router/modem rebooten en daarna de Roborock weer aanzetten. Zo weet je zeker dat de stofzuiger het vaste IP-adres toegewezen heeft gekregen.

Maak met PuTTY verbinding met de Raspberry Pi en voer onderstaande commando’s in om de benodigde software te installeren en instellen:

sudo apt-get install libpython3.5-dev
sudo apt-get install python3 python3-dev python3-pip
sudo apt-get install libffi-dev libssl-dev
sudo pip3 install python-miio
sudo pip3 install -U setuptools
sudo pip3 install -U virtualenv
cd /home/pi/domoticz/plugins
git clone https://github.com/mrin/domoticz-mirobot-plugin.git xiaomi-mirobot
cd xiaomi-mirobot
virtualenv -p python3 .env
source .env/bin/activate
pip3 install gevent msgpack-python python-miio==0.4.5
deactivate

Nu gaan we ervoor zorgen dat de MIIO Server als service kan draaien:

sudo nano miio_server.sh

Je moet in dit bestand drie dingen controleren:

  1. Controleer (en wijzig indien van toepassing) het absolute path naar miio_server.py
  2. Update IP en TOKEN van de stofzuigerrobot (hoe je de token kunt vinden lees je hier).
  3. Optioneel: Wijzig de MIIO Server host-port bindings indien van toepassing. In de meeste gevallen is dit niet nodig.

Het gaat dus om onderstaand stukje van het script:

# file miio_server.sh
DAEMON_USER=root
DAEMON=/home/pi/domoticz/plugins/xiaomi-mirobot/miio_server.py
DAEMON_ARGS="192.168.1.12 476e6b70343055483230644c53707a12"
DAEMON_ARGS="$DAEMON_ARGS --host 127.0.0.1 --port 22222"
#

Sla de wijzigingen op met Ctrl-X en bevestig met Y.

Controleer nu het path naar python3 met het commando:

which python3

Standaard is dat /usr/bin/python3. Mocht het path bij jou anders zijn, wijzig dit dan op de eerste regel van het miio_server.py bestand.

Nu gaan we ervoor zorgen dat de MIIO Server als system service kan draaien. Geef onderstaande commando’s in:

sudo chmod +x miio_server.py
sudo chmod +x miio_server.sh
sudo ln -s /home/pi/domoticz/plugins/xiaomi-mirobot/miio_server.sh /etc/init.d/miio_server

Om ervoor te zorgen dat de MIIO Server ook na een reboot van de Raspberry Pi automatisch gestart wordt moeten onderstaande commando’s ingegeven worden:

sudo update-rc.d miio_server defaults
sudo systemctl daemon-reload
sudo reboot

Mocht je eventueel later willen dat de MIIO Server niet automatisch gestart wordt:

sudo update-rc.d -f miio_server remove

Met onderstaande commando’s wordt de MIIO Server gestart en draaien we een test-script om te kijken of alles goed gegaan is:

sudo service miio_server start
sudo chmod +x test.py
sudo ./test.py

Je moet onderstaande als output krijgen:

joost@RPI-Meterkast:~/domoticz/plugins/xiaomi-mirobot $ sudo ./test.py
test: python modules path: ././.env/lib/python3.5/site-packages
test: trying connect to 127.0.0.1:22222
test: sent request to server [status]
test: reading response...
test: got server reply {'clean_seconds': 372, 'state_code': 8, 'clean_area': 0.475, 'battery': 100, 'cmd': 'status', 'error': None, 'fan_level': 77}

Mocht je op regel 6 geen helemaal waarden zien staan (372, 8, 0.475, etc.) dan is er iets niet goed gegaan en kun je proberen om eerst onderstaande commando’s in de terminal in te geven en vervolgens nogmaals test.py starten:

export LC_ALL=C.UTF-8
export LANG=C.UTF-8

Om de MIIO Server te stoppen (wat je natuurlijk helemaal niet wilt!) kun je onderstaand commando gebruiken:

sudo service miio_server stop

Roborock Vacuum Cleaner S5 Plugin

De voorbereiding is klaar, nu kunnen we eindelijk de Xiaomi Mi Robot Vacuum Plugin gaan activeren. Zorg er trouwens wel voor dat in Domoticz “Accept new Hardware Devices” onder “Settings” aanstaat, anders worden de devices niet aangemaakt!

Ga nu naar Setup > Hardware in Domoticz en voeg Xiaomi Mi Robot Vacuum toe.

 

Veld Uitleg
Name mag je zelf kiezen, de mijne heet Svetlana 😉
Data Timeout op “Disabled” laten staan
MIIOServer host:port standaard moet dit 127.0.0.1:22222 zijn
Update interval dit bepaalt de interval van het updaten van de stofzuigerrobot-devices. Aanbevolen is om dit tussen de 10-15 seconden te zetten.
Fan Level Type Standard – Standaard buttons (waarden worden ondersteund door MiHome); Slider – Mogelijk om aangepaste waarden in te stellen, tot max. 100 (in standard Max=90) (waarden worden niet ondersteund door MiHome)
Debug Indien je dit op “true” zet dan krijg je additionele informatie in het Domoticz log

Nadat je op “Add” hebt geklikt zijn de nieuwe devices zichtbaar via Setup > Devices. Klik op de groene pijltjes om ze toe te voegen.

Indien je Fan Level Type wilt wijzigen dan moet je de hardware eerst op “disable” zetten en saven. Daarna Fan Level Type aanpassen en de hardware weer op “enable” zetten. Er wordt nu een nieuw device aangemaakt. Het oude device kun je handmatig verwijderen in het Devices menu. Het kan zijn dat er in de log een foutmelding komt, dan moet de Domoticz even opnieuw starten met commando sudo service domoticz restart.

Plugin updaten

Met onderstaande commando’s kun je de plugin updaten:

cd domoticz/plugins/xiaomi-mirobot
git pull
sudo service domoticz.sh restart

 

Roborock S50 in Domoticz bedienen

Roborock S50 in Domoticz bedienen

Geef een reactie

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