FHEM Tutorial-Reihe - Part 12: WhatsApp-Nachrichten und Bilder über FHEM senden und empfangen

Mit ** gekennzeichnete Links auf dieser Seite sind Affiliatelinks.

FHEM Tutorial-Reihe - Part 12: WhatsApp-Nachrichten und Bilder über FHEM senden und empfangen
FHEM Tutorial-Reihe - Part 12: WhatsApp-Nachrichten und Bilder über FHEM senden und empfangen
  • Matthias Kleine
  • 19.07.2016
  • Benachrichtigung
  • Webservice

Jetzt wird es richtig spannend! In diesem Tutorial werden wir WhatsApp in FHEM integrieren! Dabei können wir nicht nur Nachrichten auf dem Smartphone empfangen, sondern sogar antworten und so einen richtigen Dialog mit unserem Smart-Home führen. Seid gespannt!

Achtung: Dieser Inhalt wurde vor mehreren Jahren aufgenommen und ist nicht mehr aktuell! Es ist nicht empfohlen nach dieser Anleitung vorzugehen.
Wichtig: WhatsApp ist leider nicht sehr stabil und schmeißt viele Telefonnummern wieder aus dem System - bitte Telegram nutzen (siehe Teil 18)
Hausbau-Kurs

Folgende Befehle braucht ihr:

sudo apt-get update
sudo apt-get upgrade
update
shutdown restart
sudo apt-get install python-soappy python-dateutil python-pip python-dev build-essential libtiff5-dev libjpeg-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.5-dev tk8.5-dev python-tk
sudo pip install --upgrade pip
sudo pip install python-axolotl
sudo pip install pillow
sudo su - fhem
echo $HOME
cd $HOME
logout
cd /opt
sudo git clone https://github.com/tgalal/yowsup.git yowsup-master
sudo mkdir yowsup-config
cd yowsup-config
sudo vi yowsup.config

Hier muss die Telefonnummer angepasst werden:

# phone darf derzeit nicht bei whatsapp verwendet werden! z.B. Die Festnetznummer von zu Hause
cc=49
phone=498912345678
id=0000000000
password=
sudo chown -R fhem:dialout /opt/yowsup-master /opt/yowsup-config
sudo su - fhem
cd /opt/yowsup-master

Etwas zum schreiben holen - man bekommt eine 6-Stellige Nummer angesagt

python yowsup-cli registration -c /opt/yowsup-config/yowsup.config -r voice

Die Ausgabe sieht in etwas so aus

yowsup-cli  v2.0.15
yowsup      v2.5.0

Copyright (c) 2012-2016 Tarek Galal
http://www.openwhatsapp.org

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://openwhatsapp.org/yowsup/donate

INFO:yowsup.common.http.warequest:{"status":"sent","length":6,"method":"voice","retry_after":64,"sms_wait":64,"voice_wait":64}

status: sent
retry_after: 64
length: 6
method: voice

Hier am Ende den erhaltenen Code am Ende ergänzen

python yowsup-cli registration -c /opt/yowsup-config/yowsup.config -R 123456
Die Antwort sieht in etwas so aus:

yowsup-cli  v2.0.15
yowsup      v2.5.0

Copyright (c) 2012-2016 Tarek Galal
http://www.openwhatsapp.org

This software is provided free of charge. Copying and redistribution is
encouraged.

If you appreciate this software and you would like to support future
development please consider donating:
http://openwhatsapp.org/yowsup/donate

INFO:yowsup.common.http.warequest:{"status":"ok","login":"498912345678","type":"new","pw":"abcdef1234567890=","expiration":4444444444.0,"kind":"free","price":"0,89 \u20ac","cost":"0.89","currency":"EUR","price_expiration":1471669741}

status: ok
kind: free
pw: abcdef1234567890=
price: 0,89 €
price_expiration: 1471669741
currency: EUR
cost: 0.89
expiration: 4444444444.0
login: 498912345678
type: new

Jetzt hinter “pw” das Passwort eingeben

sudo vi /opt/yowsup-config/yowsup.config
exit
cd /opt/yowsup-master

So wird eine Testnachricht verschickt

python yowsup-cli demos -c /opt/yowsup-config/yowsup.config -s 4917112345678 "Das ist ein Test"

Das Gerät in FHEM anlegen

define WhatsApp yowsup
attr WhatsApp cmd /opt/yowsup-master/yowsup-cli demos -c /opt/yowsup-config/yowsup.config --yowsup
attr WhatsApp home PWD

PID und state “connected” sollte da sein. Im WhatsApp auf dem Handy sieht man dann, dass FHEM online ist.

set WhatsApp send <nummer> <text>
set WhatsApp image <nummer> <bildpfad>

Analog zum letzten Beitrag, wird so das aktuellste Bild immer per WhatsApp verschickt (wird nicht im Video gezeigt):

define n_Bewegung notify OUT.Bewegung set WhatsApp image 4917112345678 /var/www/upload/camera/$EVTPART1

So könnte ein Notify aussehen, welches auf Nachrichten reagiert:

WhatsAppMatthias:message.* {
    if ($EVTPART1 eq 'Licht') {
        if ($EVENT =~ 'an') {
            fhem("set WZ_Dekolicht on");
            fhem("set WZ_Fensterlicht on");
            fhem("set WZ_Fernsehlicht on");
        }
        elsif ($EVENT =~ 'aus') {
            fhem("set WZ_Dekolicht off");
            fhem("set WZ_Fensterlicht off");
            fhem("set WZ_Fernsehlicht off");
        }
    }
    elsif ($EVTPART1 eq 'Zocken') {
        fhem("set WZ_Fernsehlicht on");
        fhem("set WZ_Receiver on");
        fhem("set WZ_TV power on");
        fhem("sleep 5 quiet");
        fhem("set WZ_TV input hdmi1");
        fhem("set WZ_Receiver input GAME");
    }
    elsif ($EVTPART1 eq 'Nacht') {
        fhem("set WZ_Dekolicht off");
        fhem("set WZ_Fensterlicht off");
        fhem("set WZ_Fernsehlicht off");
        fhem("set WZ_Receiver off");
        fhem("set WZ_TV power off");
        fhem("set $NAME send Profil Nacht aktiviert");
    }
    elsif ($EVTPART1 eq 'Status') {
        my $temperature = ReadingsVal("WZ_Balkontuer", "temperature", "");
        fhem("set $NAME send Temperatur: $temperature");
    }
    else {
        fhem("set $NAME send Befehlt nicht bekannt");
    }
}
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