yowsup

Aus FHEMWiki
Version vom 19. Juni 2015, 09:21 Uhr von Ph1959de (Diskussion | Beiträge) (Diverse Änderungen und Ergänzungen)


yowsup
Zweck / Funktion
Schnittstelle, um WhatsApp-Nachrichten empfangen und senden zu können.
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Thema
Support (Forum) Unterstuetzende Dienste
Modulname 32_yowsup.pm
Ersteller André / justme1968 (Forum / Wiki)
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


Das Modul yowsup dient dazu, WhatsApp-Nachrichten zu empfangen und zu senden.

Voraussetzungen

  • yowsup Client (von Github) muss, wie hier beschrieben, installiert werden
  • Die Funktionalität ist vermutlich auf Linux/Unix Systeme beschränkt.
  • Nach der Erstinstallation/-einrichtung muss zwingend das cmd Attribut korrekt gesetzt werden.

Anwendung

Define

  • Fhem Device anlegen: define <name> yowsup
  • wenn alles gut geht, gibt es danach im Device ein internal PID und das Reading state
  • im Whatsapp Client auf dem Handy sollte man sehen, dass Fhem online ist
  • zum Senden aus Fhem kann man das Kommando set WhatsApp send <nummer> <text> verwenden

Attribute

  • cmd
    komplettes Kommando, um den yowsup Client zu starten. z.B.: attr WhatsApp cmd /opt/local/bin/yowsup-cli demos -c /root/config.yowsup --yowsup
  • accept_from
    kommagetrennte Liste von Kontakten (Nummern), von denen Nachrichten akzeptiert werden. Ist das Attribut nicht gesetzt, so werden die Nachrichten von jedem akzeptiert.
  • commandPrefix
    nicht gesetzt -> es werden keine Befehle akzeptiert.
    0 -> es werden keine Befehle akzeptiert.
    1 -> erlaubt Befehle, jede Nachricht wird als Fhem-Befehl interpretiert.
    alles andere -> Wenn die Nachricht mit diesem Prefix startet, wird alles weitere als Befehle interpretiert.
Emblem-question-yellow.svgallowedCommands should work as intended, but no guarantee can be given, that there is no way to circumvent it.
  • allowedCommands
    Eine Komma-getrennte Liste von zulässigen Befehlen für diesen Kontakt. Wenn die Liste leer ist (z.B. nur ein Komma), dann werden keine Befehle akzeptiert.

Befehle

  • image -> Über diesen Befehl können Bilder gesendet werden.

Anwendungsbeispiele

Beispielnachricht

Beim Empfang einer Nachricht wird automatisch ein Fhem Device für diesen Kontakt angelegt. In diesem Device gibt es das Reading message für die empfangene Nachricht und ab der ersten Nachricht auch das Reading chatstate, in dem zu sehen ist, ob gerade getippt wird. Nachdem ein Device für einen Kontakt angelegt ist, lässt sich auch direkt dieses Device zum Senden verwenden:

set <device> send <text>,

d.h., man spart sich die Angabe der Nummer.

Gruppen

Gruppennachrichten werden von yowsup mit Sonderzeichen im Absender empfangen:

49yyyyyyyyyyyy/49xxxxxxxxxxx-1234567890
absender/gründer-timestamp

Aufgrund der Sonderzeichen schlägt das automatische Anlegen einer yowsup Instanz fehl. Es kann aber zum Versenden direkt die JID der Gruppe genutzt werden, oder manuell die yowsup Instanz ohne Sonderzeichen gemacht werden.

erst kommt die Nummer des Gruppenerstellers, dann die Uhrzeit im Unix Zeitformat.
49xxxxxxxxxxx-1234567890
gründer-timestamp
define whatsapp.gruppe yowsup 49xxxxxxxxxxx-1234567890

JID der Gruppe ermitteln

Am einfachsten ist es, eine Nachricht an die Gruppe zu senden und aus der Fehlermeldung von Fhem die JID herauszusuchen. Etwas gezielter geht es mit der Auflistungsfunktion von yowsup direkt.

set WhatsApp raw /groups list

Um die Ergebnisse eines raw Befehls im Log zu sehen, muss noch verbose 4 gesetzt werden:

attr WhatsApp verbose 4

Dieses Attribut sollte, wenn nicht mehr benötigt, wieder gelöscht werden, um unnötige Logeinträge zu vermeiden.

Links

  • Forenthread, in dem die Whatsapp Anwendung beschrieben wird
  • Foreneintrag, ab dem das yowsup Modul beschrieben wird
  • Die Python Whatsapp Library auf github