Projekt: Xiaomi Live-Karte in FHEM, ioBroker und per Telegram

Mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks.

Im letzten Beitrag ging es ausführlich darum, wie wir per SSH auf unseren Staubsauger-Roboter zugreifen können. Doch was genau haben wir jetzt davon? Genau das möchte ich Dir in diesem Beitrag zeigen. Hier erkläre ich, wie Du die Live-Karte sowohl in FHEM TabletUI, als auch in ioBroker integrieren kannst. Zu guter letzt kannst Du die Karte auch noch per Telegram versenden. Alle Befehle und den nötigen Code findest Du entweder hier im Beitrag, oder auf den unten verlinken GitHub-Seiten.

Was Du brauchst?

  • Einen Xiaomi Vacuum (gerootet)
  • Eine FHEM oder ioBroker Installation
  • Das Token und die IP zum Roboter

Video

Arduino-Kurs

Befehle

Auf dem Xiaomi-Roboter führst Du diese Befehle aus. Bitte achte darauf, dass die Version aktuell ist. Stand heute ist 0.0.8 die letzte verfügbare Version, auf welcher auch dieses Video basiert.

apt-get update
apt-get install wget
wget https://github.com/Hypfer/Valetudo/releases/download/0.0.8/valetudo

mv valetudo /usr/local/bin/
chmod +x /usr/local/bin/valetudo

wget https://raw.githubusercontent.com/Hypfer/Valetudo/master/deployment/valetudo.conf
mv valetudo.conf /etc/init/

service valetudo start

ioBroker

Die Scripts findest Du hier. Der Rest wird im Video erklärt.

sudo apt install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev

FHEM

Über HTTPMOD wird jetzt (während der Saugvorgang läuft) ständig ein aktuelles Bild generiert. Für dieses wird dann eine URL zusammengebaut und diese kann in TabletUI verwendet werden.

define WHG_StaubsaugerMap HTTPMOD http://192.168.44.50/api/remote/map?drawRobot=true&drawCharger=true&scale=5&border=1&doCropping=true&drawPath=true 30
attr WHG_StaubsaugerMap userattr reading01JSON reading01Name
attr WHG_StaubsaugerMap alias Staubsaugerroboter (Karte)
attr WHG_StaubsaugerMap enableControlSet 1
attr WHG_StaubsaugerMap event-on-change-reading .*
attr WHG_StaubsaugerMap icon vacuum_top
attr WHG_StaubsaugerMap reading01JSON mapsrc
attr WHG_StaubsaugerMap reading01Name mapsrc
attr WHG_StaubsaugerMap stateFormat mapPath
attr WHG_StaubsaugerMap userReadings mapPath { return 'http://192.168.44.50' . ReadingsVal($NAME, 'mapsrc', '/'); }

Über ein DOIF wird HTTPMOD gestartet und gestoppt.

define doif_StaubsaugerMap DOIF ##
attr doif_StaubsaugerMap alias Staubsauger: Karte aktualisieren, während Saugvorgang läuft
([WHG_Staubsauger:in_cleaning] eq "yes")
	(set WHG_StaubsaugerMap start)
DOELSE
	(set WHG_StaubsaugerMap stop)

In TabletUI brauchen wir dann nur den Pfad zum Bild. Fertig. Hierbei könnte es zu Problemen kommen, wenn Du TabletUI über HTTPS aufrufst, da die meisten Browser dann unverschlüsselte HTTP-Requests unterbinden. Dann wird das Bild nicht angezeigt. Ein Workaround wäre, die Bilddateien lokal abzulegen. Das habe ich schonmal in einem Video zur IPCam und im TabletUI-Kurs gezeigt.

<li data-row="1" data-col="3" data-sizex="7" data-sizey="10">
    <header>Staubsauger-Roboter</header>
    <div class="sheet">
        <div class="row">
            <div class="cell">
                <div data-type="image" data-device="WHG_StaubsaugerMap" data-get="mapPath" data-refresh="15" data-size="700px" data-opacity="1" data-fhem-cmd="set WHG_StaubsaugerMap reread" class="nocache"></div>
            </div>
        </div>
    </div>
</li>

Per Telegram kannst Du die aktuelle Karte genau so versenden. Wie Du Telegram unter FHEM einrichtest, habe ich bereits in einem separaten Video erklärt.

set WEB_Telegram cmdSend {GetHttpFile('192.168.44.50', ReadingsVal('WHG_StaubsaugerMap', 'mapsrc', '/'))}

Newsletter

Trage Dich jetzt in den Newsletter ein und genieße dadurch viele Vorteile:

  • 5€-Gutschein als Dankeschön
  • Zugang zu exklusiven Inhalten
  • Angebote für Produkte

* Durch Angabe meiner E-Mail-Adresse erkläre ich mich damit einverstanden, dass mir regelmäßig Informationen und Produktempfehlungen aus dem Fachgebiet Smart Home zugesendet werden. Mit dem Eintrag akzeptieren Sie unsere Datenschutzbestimmungen. Meine Einwilligung kann ich jederzeit widerrufen.

Matthias Kleine

Matthias Kleine Autor

Großer Fan von OpenSource-Projekten und erweiterbaren Lösungen. Je offener und flexibler das System, desto besser. Ich lege mich nicht auf einzelne Protokolle oder Standards fest, sondern kombiniere aus allen Welten das Beste. Unterwegs als Softwareentwickler, Trainer und Blogger im Bereich Smart Home seit 2013.

Auf YouTube und hier im Blog gibt es bereits unzählige kostenlose Videos, Informationen und Tutorials. Wenn Dir das noch nicht reicht, ist ein Training genau das richtige für Dich! Die folgenden Trainings haben den Vorteil, dass immer von Anfang an gestartet wird und Du ohne Vorwissen teilnehmen kannst.