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:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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:
1 |
sudo nano miio_server.sh |
Je moet in dit bestand drie dingen controleren:
- Controleer (en wijzig indien van toepassing) het absolute path naar miio_server.py
- Update IP en TOKEN van de stofzuigerrobot (hoe je de token kunt vinden lees je hier).
- 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:
1 2 3 4 5 6 |
# 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:
1 |
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:
1 2 3 |
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:
1 2 3 |
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:
1 |
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:
1 2 3 |
sudo service miio_server start sudo chmod +x test.py sudo ./test.py |
Je moet onderstaande als output krijgen:
1 2 3 4 5 6 |
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:
1 2 |
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:
1 |
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!
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:
1 2 3 |
cd domoticz/plugins/xiaomi-mirobot git pull sudo service domoticz.sh restart |