[gelöst] Whats App Nachrichten lassen sich nach yowsup update nicht mehr senden.

Begonnen von StefanV, 03 Mai 2015, 11:22:19

Vorheriges Thema - Nächstes Thema

StefanV

Hallo Zusammen,

ich versende seit einem halben Jahr diverse Statusmeldungen von FHEM über yowsup (per shellscript) an Whats App.
Am 1 Mai musste ich ein Update von yowsup einspielen, da Whats App irgendwas geändert hatte und yowsup eine Meldung auswarf, das die Authentifizierung fehlgeschlagen ist.
Update über Git Pull gemacht und yowsup Aufruf funktioniert wieder sofern ich das Script aus der shell manuell aufrufe.

Wenn ich das Script aber aus FHEM aufrufe wird das script zwar ausgeführt, aber keine nachricht über yowsup abgesetzt.

Das Shell Script sieht so aus:
#!/bin/bash
myStr=""
#echo "You start with $# positional parameters"

# Loop until all parameters are used up
while [ "$1" != "" ]; do
    #echo "Parameter 1 equals $1"
    #echo "You now have $# positional parameters"
<------>myStr="$myStr $1"
    # Shift all the parameters down by one
    shift
done
echo "Parameters: $myStr"
logger Vor Whats App Aufruf $myStr
#python /opt/yowsup/yowsup-cli demos --debug --config /opt/yowsup/config --send 49xxxxxxxxxx "$myStr"
python /opt/yowsup/yowsup-cli demos --config /opt/yowsup/config --send 49xxxxxxxxxxxxxx Hallo
logger Nach Whats App Aufruf
/opt/fhem/cfg/scripts/svdrpsend.pl -d vdr -p 6419 MESG "$myStr"


Der Aufruf aus myUtils sieht so aus:
######## Nachricht per WhatsApp Versenden. ############
sub
WhatsApp($)
{
my ($myMessage) = @_;
Log 1, "Sub: WhatsApp -> Nachricht: $myMessage";
system("screen -dm sh -c '/opt/fhem/cfg/scripts/send_whatsapp.sh $myMessage'");
}


Was mir noch aufgefallen ist sind die unterschiedlichen Ausgaben des Loggers in die messages Datei:
May  3 11:01:51 cubie root: Vor Whats App Aufruf
May  3 11:01:53 cubie root: Nach Whats App Aufruf
May  3 11:02:10 cubie logger: Vor Whats App Aufruf Bewegung in der Lounge
May  3 11:02:11 cubie logger: Nach Whats App Aufruf


Wenn ich das Script aus der shell manuell aufrufe wird die Nachricht an Whats App abgesetzt und der Eintrag in der messages Datei mit "root" gekennzeichnet.
Wenn das Script über FHEM aufgerufen wird dann steht dort "logger" und die Nachricht wird nicht gesendet.

Kann es sich um ein Rechte Problem handeln?

Zur Info: Der letzte Aufruf im script (per svdrpsend) um eine Nachricht an den VDR zu senden funktioniert auch wenn das Script über FHEM aufgerufen wird.
Habe schon so einiges versucht aber keine Lösung gefunden.

Vielleicht habt Ihr ja noch eine Idee oder Hinweis für mich.

Danke, Stefan.
FHEM auf FritzBox 7390
Cuno für FS20, HMLAN für HomeMatic
EM 1000-WZ, S300TH
FS20ST-4, FS20 AS4-2
HM-LC-Bl1PBU-FM

StefanV

Ich bin ein Stückchen weiter gekommen.

Es handelt sich in der Tat um ein Berechtigungsproblem, bin mir aber im Moment nicht klar wie ich das Lösen kann.

Ich haber mal den Aufruf für yowsup umgestellt.
Statt ein Script aufzufrufen nutze ich den den direkten Aufruf über python aus FHEM heraus:
   #Direkter Aufruf
   system("python /opt/yowsup-master/yowsup-cli demos -c /opt/yowsup-master/config.example -s $nr \"$Message\"");


Dabei bekomme ich nun Debug Ausgaben in der Konsole:
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: '/root/.yowsup'


In "/root/.yowsup/" liegt eine Ordner mit der Handynummer 4915112345678 und 2 Dateien (id, nonce).
Auf diese möchte yowsup nun gerne zugreifne, darf aber nicht.

Habe mal kurz den /root/ Ordner lesend auch für andere User frei gegeben und schon funktionierte der Versand der Nachrichten wieder.

Habt Ihr einen Vorschlag wie das sinnvoll aufzulösen ist? Anderen Usern den Zugriff auf den /root/ Ornder zu geben ist bestimmt nicht sinnvoll.

Kann mann vielleicht den Python Aufruf per "sudo" ausführen?

Danke, Stefan.
FHEM auf FritzBox 7390
Cuno für FS20, HMLAN für HomeMatic
EM 1000-WZ, S300TH
FS20ST-4, FS20 AS4-2
HM-LC-Bl1PBU-FM

JoWiemann

Hallo Stefan,

ja geht. Du must aber dem User fhem die entsprechende Berechtigung geben.

sudo visudo

und dort ergänzen:

fhem ALL=(ALL) NOPASSWD: ALL

Dann kannst du mit System("sudo ...) in Fhem arbeiten.

Grüße Jörg



Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

StefanV

Hallo Jörg,

Danke Dir!
Das war der entscheidende Hinweis.
Jetzt kann FHEM auch wieder Nachrichten über yowsup versenden.  :D

VG, Stefan.
FHEM auf FritzBox 7390
Cuno für FS20, HMLAN für HomeMatic
EM 1000-WZ, S300TH
FS20ST-4, FS20 AS4-2
HM-LC-Bl1PBU-FM