Automatischer Xiaomi Mi Mop Pro mit Homeassistant
Automatischer Xiaomi Mi Mop Pro mit Homeassistant
Wir haben uns zu beginn von Corona einen Staubsaugroboter zugelegt. Einen Mi Mop Pro von Xiaomi. Bisher haben wir diesen immer nach Bedarf gestartet. So langsam vergesse ich aber immer häufiger den Roboter zu starten. Man kann in der App zwar automatische Startzeiten einstellen, dies ist aber nervig wenn man gerade im gleichen Raum ist.
Da ich unsere Smarthome Geräte mittels Homeassistant verwalte, nutze ich dies um den Roboter automatisch zu starten sobald alle Bewohner nicht zuhause sind.
Xiaomi Cloud Map Extractor
Als ich das letzte mal den Roboter in Homeassitant einbinden wollte war unser Modell noch nicht unterstützt. Dies ist nun aber der Fall. Also schnell über den HACS die Integration hinzugefügt.
Auch der Token Extractor funktioniert mittlerweile einwandfrei. Nachdem ich die configuration.yml aktualisiert habe, muss Homeassitant nur noch neugestartet werden. Hoffentlich.
Fast. Es fehlt noch die Xiaomi Vaccum Map Card, welche es ermöglicht den Staubsaubroboter über Homeassistant zu steuern. Nachdem ich Homeassistant erneut neugestartet habe, konnte ich die Karte hinzufügen.
Jetzt fehlt nur noch der automatische Start sobald niemand Zuhause ist.
Presence Detection
Für die Presence Detection wähle ich die NMap Integration. Diese überprüft regelmäßig die Geräte im lokalen Netzwerk. Der einzige Faktor welche Präsenz bestimmt, ist also das eigene Handy welches mit dem WLAN verbunden ist. Dies müsste ausreichen, da es nicht wichtig ist, den genauen Standort in der Wohnung zu tracken.
Die Integration liefert recht schnell eine Liste mit allen verbundenen Geräten. Nun muss ich nur noch die Automatisierung erstellen, welche den Roboter startet, sobald keines unserer Handys mit dem WLAN verbunden ist.
Dies erwies sich als schwieriger als gedacht. Mir wird die Karte zwar angezeigt, ich kann den Roboter noch nicht bedienen. Es existiert lediglich eine “Kamera”, welche den Grundriss unserer Wohnung zeigt. Um mich mit dem Roboter zu verbinden, teste ich als erstes die Miio2 Custom Integration von nqkdev. Mit dieser habe ich recht schnell eine Entität, welche es mir erlaubt den Staubsaugroboter zu starten.
Die Automatisierung ist auch schnell geschrieben:
alias: James Autostart
description: ''
trigger:
- platform: state
entity_id: device_tracker.nmap_handy_1
from: home
to: not_home
- platform: state
entity_id: device_tracker.nmap_handy_2
from: home
to: not_home
condition:
- condition: device
device_id: DEVICE_ID
domain: device_tracker
entity_id: device_tracker.nmap_handy_1
type: is_not_home
- condition: device
device_id: DEVICE_ID
domain: device_tracker
entity_id: device_tracker.nmap_handy_2
type: is_not_home
action:
- service: vacuum.start
target:
entity_id: vacuum.james
- service: automation.turn_off
target:
entity_id: automation.james_autostart
mode: single
Die Automatisierung prüft, ob der alle Geräte abwesend sind. Falls ja, so wir der Roboter gestartet und die Automatisierung anschließend deaktiviert. Auf diese Art kann der Roboter nicht mehrfach in Folge gestartet werden. Ich benutze eine weitere Automatisierung, welche einmal am Tag diese Automatisierung wieder reaktiviert.