[32_yowsup.pm] Whatsapp versenden (Mit Handy- oder Festnetznummer)

Begonnen von AHA1805, 01 Oktober 2014, 21:58:55

Vorheriges Thema - Nächstes Thema

Tobias

#750
andere Frage, versuche ein Profilbild zu setzen:
set WhatsApp raw /profile setPicture '/opt/fhem/www/images/default/fhemicon_dark.png'

2015.10.21 19:49:19 3: WhatsApp: sending /profile setPicture '/opt/fhem/www/images/default/fhemicon_dark.png'
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 505, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/opt/yowsup-master/yowsup/demos/cli/cli.py", line 154, in startInputThread
    wait = self.execCmd(cmd)
  File "/opt/yowsup-master/yowsup/demos/cli/cli.py", line 138, in execCmd
    return self.doExecCmd(lambda :targetFn(*args))
  File "/opt/yowsup-master/yowsup/demos/cli/cli.py", line 141, in doExecCmd
    return fn()
  File "/opt/yowsup-master/yowsup/demos/cli/cli.py", line 138, in <lambda>
    return self.doExecCmd(lambda :targetFn(*args))
  File "/opt/yowsup-master/yowsup/demos/cli/layer.py", line 219, in profile_setPicture
    pictureData = src.resize((640, 640)).tobytes("jpeg", "RGB")
  File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 668, in tobytes
    e = _getencoder(self.mode, encoder_name, args)
  File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 430, in _getencoder
    return encoder(mode, *args + extra)
SystemError: unknown raw mode


und wenn ich ein Bild senden will:
2015.10.21 19:57:07 3: WhatsApp: sending /image send 4912345678 /opt/fhem/www/images/default/fhemicon_dark.png
ERROR:yowsup.layers.protocol_media.mediauploader:Error occured at transfer cannot write mode LA as JPEG
Traceback (most recent call last):
  File "/opt/yowsup-master/yowsup/layers/protocol_media/mediauploader.py", line 137, in run
    self.successCallback(sourcePath, self.jid, result["url"])
  File "/opt/yowsup-master/yowsup/demos/cli/layer.py", line 541, in <lambda>
    successFn = lambda filePath, jid, url: doSendFn(filePath, url, jid, resultRequestUploadIqProtocolEntity.getIp(), caption)
  File "/opt/yowsup-master/yowsup/demos/cli/layer.py", line 518, in doSendImage
    entity = ImageDownloadableMediaMessageProtocolEntity.fromFilePath(filePath, url, ip, to, caption = caption)
  File "/opt/yowsup-master/yowsup/layers/protocol_media/protocolentities/message_media_downloadable_image.py", line 82, in fromFilePath
    preview = ImageTools.generatePreviewFromImage(path)
  File "/opt/yowsup-master/yowsup/common/tools.py", line 153, in generatePreviewFromImage
    if ImageTools.scaleImage(image, fileObj, "JPEG", YowConstants.PREVIEW_WIDTH, YowConstants.PREVIEW_HEIGHT):
  File "/opt/yowsup-master/yowsup/common/tools.py", line 132, in scaleImage
    im.save(outfile, imageFormat)
  File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 1665, in save
    save_handler(self, fp, filename)
  File "/usr/local/lib/python2.7/dist-packages/PIL/JpegImagePlugin.py", line 565, in _save
    raise IOError("cannot write mode %s as JPEG" % im.mode)
IOError: cannot write mode LA as JPEG
ERROR:yowsup.demos.cli.layer:Upload file /opt/fhem/www/images/default/fhemicon_dark.png to https://mmi680.whatsapp.net/u/xxxxxxxxxxxx/xxxxxxxxxxxxx for 4912345678@s.whatsapp.net failed!

Bin nach Wiki vorgegangen und habe die Pakete die für die Bilder verantwortlich sind installiert (cubietruck mit debian wheezy)
sudo apt-get install libtiff4-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.5-dev tk8.5-dev python-tk

sudo pip install pillow


Normaler Text senden um empfangen funktioniert :)
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

Tueftler1983

#751
Hallo versuche jetzt seid 3 Stunden WhatsApp mit deinem Modul ans laufen zu bekommen aber es klappt einfach nicht.
Bekomme in meinem Handy weder fhem als Kontakt angezeigt noch kann ich aus fhem oder via telnet eine Nachricht an mich senden.

Das kommt wenn ich es via ssh versuche:


fhem@raspberrypi:/opt/yowsup-master$ python yowsup-cli demos -c /opt/yowsup-config/yowsup.config -s 49163xxxxxxxx "Das ist ein Test"
WARNING:yowsup.stacks.yowstack:Implicit declaration of parallel layers in a tuple is deprecated, pass a YowParallelLayer instead
Traceback (most recent call last):
  File "yowsup-cli", line 323, in <module>
    if not parser.process():
  File "yowsup-cli", line 231, in process
    self.startSendClient()
  File "yowsup-cli", line 279, in startSendClient
    not self.args["unmoxie"])                                                  File "/opt/yowsup-master/yowsup/demos/sendclient/stack.py", line 49, in __init__                                                                            self.stack.setCredentials(credentials)
  File "/opt/yowsup-master/yowsup/stacks/yowstack.py", line 155, in setCredentials
    self.getLayerInterface(YowAuthenticationProtocolLayer).setCredentials(credentials)
  File "/opt/yowsup-master/yowsup/layers/auth/layer_authentication.py", line 42, in setCredentials
    self._credentials = self.__getCredentials(credentials)
  File "/opt/yowsup-master/yowsup/layers/auth/layer_authentication.py", line 37, in __getCredentials
    password = base64.b64decode(pb64)
  File "/usr/lib/python2.7/base64.py", line 76, in b64decode                     raise TypeError(msg)
TypeError: Incorrect padding                                                 fhem@raspberrypi:/opt/yowsup-master$

Hoffe du kannst mir helfen

Carsten

#752
Zitat von: Tueftler1983 am 23 Oktober 2015, 02:31:27
Hallo versuche jetzt seid 3 Stunden WhatsApp mit deinem Modul ans laufen zu bekommen aber es klappt einfach nicht.
Bekomme in meinem Handy weder fhem als Kontakt angezeigt noch kann ich aus fhem oder via telnet eine Nachricht an mich senden.

Wenn auf deinem Handy dein FHEM nicht als Whatsapp-Kontakt angezeigt wird, obwohl du die Nummer in den Kontakten hast, dann würde ich vermuten, dass die Registrierung gar nicht funktioniert hat.

Gab es dabei Probleme?

Edit: Und warum heißt dein Home-Ordner PWD?

Tueftler1983

#753
Die regestrierung War glaube ich okay.

Siehe Bild 1

Und home Verzeichnis habe ich nach Anleitung gemacht.

Bild 2

Carsten

Zitat von: Tueftler1983 am 23 Oktober 2015, 16:45:05
Die regestrierung War glaube ich okay.
Okay, dann sollte der aber auch in den Whatsapp-Kontakten auftauchen.
Übrigens sind da noch Nummer und PW im Screenshot sichtbar.

Zitat von: Tueftler1983 am 23 Oktober 2015, 16:45:05
Und home Verzeichnis habe ich nach Anleitung gemacht.
Okay, ist an mir vorbeigegangen, dass das geht. Bei mir steht der komplette Pfad drin.

Mir ist noch was aufgefallen: Versuch mal das send ohne Plus vor der Nummer. Also set WhatsApp send 49163xxxxx Test

Tueftler1983

Hallo teilerfolg!
Über telnet console kann ich jetzt WhatsApp Nachrichten senden.

Aber in fhem geht's nicht und im state steht offline.
Habe jetzt das home Verzeichnis mit Pfad angegeben.

P.s. habe das senden auch ohne + versucht und mit 00 auch kein Erfolg

Vielleicht fällt jemandem noch ein Fehler im Screenshot auf.

Tueftler1983

So ohne das ich jetzt noch was gemacht habe klappt das senden auch aus fhem.

Aber wie bekomme ich es hin das ich vom Handy befehle an fhem senden kann und diese ausgeführt werden?
Z.b. set Brunnen on
attr WhatsApp commandPrefix 1 ..... bringt die Meldung das es ein unbekannter Befehl ist


justme1968

was genau hast du gesendet? was steht bei verbose 5 im log ?

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Tueftler1983

Habe fhem neu gestartet jetzt läuft alles auch mit empfangen und schalten klappt

Tobias

irgendjemand eine idee warum ich keine BIlder senden kann? Fehlermeldungen siehe oben
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

steimer-vl

Hallo zusammen,

ich bin am verzweifeln.

Das versenden einer Nachricht über FHEM (set NUMMER send NACHRICHT) funktioniert problemlos.

Auch das Versenden einer Nachricht über den Putty mit

python /opt/yowsup-master/yowsup-cli demos -c /opt/yowsup-config/yowsup.config -s 49xxxxx 'text'

funktioniert.

Wenn ich jedoch aus FHEM folgendes ausprobiere

{system("python /opt/yowsup-master/yowsup-cli demos -c /opt/yowsup-config/yowsup.config -s 4916xxxxxx \"Das ist ein Test\"")}

bekomme ich folgenden Fehler in der Konsole:

File "/opt/yowsup-master/yowsup/common/tools.py", line 44, in constructPath
    os.makedirs(os.path.dirname(fullPath))
  File "/usr/lib/python2.7/os.py", line 150, in makedirs
    makedirs(head, mode)
  File "/usr/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/.yowsup'


Ich habe bereits Leserechte auf den Root Ordner gesetzt und auch den fhem user in die Gruppe root aufgenommen, alles ohne Erfolg.

Danke für Eure Unterstützung

ZeitlerW

Hallo steimer-vl
OSError: [Errno 13] Permission denied: '/.yowsup'

Das .yowsup Directory kann nicht angelegt werden. Wobei ich mich frage warum Du nicht aus FHEM heraus versenden willst.

vG
Wolfgang

steimer-vl

Hallo Wolfgang,

besten Dank für Deine schnelle Antwort. Ich möchte Nachrichten auch aus einem Script (weiter vorne auf Seite 7-9 in diesem Beitrag beschrieben) versenden.

Anwendungsfall:

Ich schreibe eine Nachricht per iPhone mit dem Text "Wetter" an fhem, dafür möchte ich mir ein notify anlegen welches mir dann die aktuellen Daten meiner Wetterstation schickt.

Das funktioniert bei mir momentan nur "umständlich" über (Nachricht von meinem iPhone an Fhem)
{Value("Wetterstation")}

Zu Deiner Antwort: Wo möchte er das Verzeichnis /.yowsup anlegen?

Danke!

steimer-vl

Andere Frage, wie kann ich über FHEM Readings von meinen unterschiedlichen Devices per Nachricht versenden,

ich denke da an folgendes:

{set 49XXXXX send {Value("Wetterstation")}}

Vielleicht bin ich an der Stelle auf einer falschen Spur, aber auf diese Weise wäre es für mich einfach ein notify zu realisieren.

Andernfalls muss ich an dieser Stelle über ein Script gehen, dazu müsste ich den Fehler (siehe oben beheben).

Danke!

VG
Steffen

marvin78

Werte von Readings erhält man mit der Funktion ReadingsVal. FHEM Grundlagen. Das hat im Grunde nichts mit yowsup zu tun.

Ein notify könnte bspw. so aussehen:

DEVICE:TRIGGER {my $val=ReadingsVal("DEVICENAME","READINGNAME",0);fhem("set WHATSAPPDEVICE send $val")}