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

Mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks.

Projekt: Xiaomi Live-Karte in FHEM, ioBroker und per Telegram
Projekt: Xiaomi Live-Karte in FHEM, ioBroker und per Telegram
  • Matthias Kleine
  • 23.12.2018
  • Projekt

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

Hausbau-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', '/'))}
Du willst mehr?

Smart-Home-Trainings von A-Z

Steig noch tiefer in die Themen ein und meistere Deine Projekte! Über 13.000 Teilnehmer konnten sich schon von der Qualität der Online-Kurse überzeugen.

ioBroker-Master-Kurs

ioBroker-Master-Kurs

Mehr Infos
Hausbau-Kurs

Hausbau mit KNX

Mehr Infos
Lox-Kurs

Lox-Kurs

Mehr Infos
Node-RED-Master-Kurs

Node-RED-Master-Kurs

Mehr Infos