SMS über Fhem senden via raspi mit gammu

Begonnen von chaot4ever, 15 Oktober 2013, 16:58:21

Vorheriges Thema - Nächstes Thema

chaot4ever

Nach Installation von gammu auf einem raspi und Konfiguration des Modem-USB Sticks lässt sich via Linux Shell problemlos ein SMS senden:

echo "Mein SMS Text" | sudo gammu sendsms TEXT 079xxxxxxx

Bei folgender Einbindung in FHEM wird der Befehl aber nicht ausgeführt:

{ `echo "Mein SMS Text" | sudo gammu sendsms TEXT 079xxxxxxx` }
auch mit Pfad  { `echo "Mein SMS Text" | usr/bin/sudo gammu sendsms TEXT 079xxxxxxx` } passiert nichts.

Was mach ich falsch?

Jaydee

versuch mal

{ system(`echo "Mein SMS Text" | sudo gammu sendsms TEXT 079xxxxxxx`) }

p.s.: und nimm deine Nummer besser aus dem Eintrag ;-)

chaot4ever

Hallo Jaydee

Besten Dank für deine Info bez. meines Eintrages.  ;)

Leider geht deine Version auch nicht, sie zeigt in FHEM als Resultat ein -1!

Habe auch exec versucht, geht auch nicht..........

Jaydee

das -1 muss nicht unbedingt was heissen, ich habe mehrere Shell-Scripte, die das zurück geben obwohl alles prima funktioniert...

schau mal ins Log, bzw. lass es mal per tail -f mitlaufen...

Bist du sicher, dass deine Nummer stimmt? in deinem Beispiel hier im Forum hast du eine 079-Nummer... sicher, dass es nicht 0179 sein soll?

chaot4ever

Na ja funktionieren tut gar nichts, die Nummer ist korrekt, trotz nächtelangen Sessions weiss ich zum Glück noch meine Telefonnummer  :D :D

Da ich ein Newbi bin musst du mir das Vorgehen mit dem Log per tail -f schnell erklären.  ;)

Jaydee

Sorry, wegen der Nummer, aber wir wollen ja alles ausschließen, und bei SMS lagen klassiche Handyvorwahlen nahe... :-)

Der Befehl tail zeigt dir das Ende einer Datei an. Mit tail -f wird dieses auch weiter fortgesetzt während die Datei - z.B. das Log - weiter anwächst. Du kannst also zusehen, wie etwas ins Log geschrieben wird.

Mit
tail -f -n 100 /opt/fhem/log/fhem-2013-10.log
werden dir die letzten 100 Zeilen plus alles was noch kommt angezeigt - sofern Pfad und Dateiname des aktuellen Logs bei dir identisch sind.



Jaydee

ich hab keine Ahnung, ob das das Problem ist, aber ich könnte mir vorstellen, dass FHEM vielleicht Schwierigkeiten mit der Pipe ( | ) hat.

bastel dir doch vorher vielleicht ein Shell-Skript, was nur noch den reinen Text übergeben bekommt. Die Nummer dürfte ja wahrscheinlich bei FHEM eh immer dieselbe sein.

also nach dem Schema {system('smsnotify.sh "BLABLATEXT" ')}


Jaydee

Öhm... und nachdemmich gerade mal nach Gammu gegoogelt habe:

echo "Hallo! Ich bin ein Gammu-Test." | gammu --sendsms TEXT 0123456789

Du hattest das -- vor sendsms vergessen (zumindest im Foreneintrag)
Aber du sagtest es würde direkt von der Shell aus laufen, oder?
Ist das jetzt beim Einsetzen ins Forum verloren geggangen, oder schon in FHEM?


chaot4ever

Also ein Shell skript habe ich auch schon gemacht: fhem2sms.sh; wenn ich dieses Skript im raspi unter Linux aufrufe funktioniert alles bestens (mit oder ohne -- vor sendsms) aber unter FHEM geht mit  {system( `/usr/bin/fhem2sms.sh` )} nichts, es wird nur -1 ausgegeben, aber kein SMS.
Auch mit { `/usr/bin/fhem2sms.sh` } passiert nichts, weder ein SMS noch irgendeine Ausgabe noch irgend ein Eintrag im Log.

Der Befehl tail liefert Unknown command tail.

:(

Jaydee

das mit tail wundert mich, eigentlich ist das ein standard-befehl, kann mich nicht erinnern den nachinstalliert zu haben... aber für später:
sudo apt-get install tail

könnte es an den Rechten liegen?
FHEM nutzt ja nicht deine Rechte, sondern hat (höchstwahrscheinlich) einen eigenen user
du kannst das Skript für alle und jeden ausführbar machen mit:
sudo chmod a+x /usr/bin/fhem2sms.sh

chaot4ever

tail wird bei der Installation im raspi mit apt get nicht gefunden.

Alle Rechte sind auf 777 gesetzt, daran habe ich zuerst gedacht, leider ohne Erfolg.

Wichtig wäre wer der user von fhem ist (fhem selber und welches Passwort hat dieser).

Sonst bin ich nach wie vor ratlos, langsam gehen mir die Ideen aus ......  :-\

netbus

bist du noch auf der suche oder hast du das Problem schon gefunden?
Ich glaub nämlich zu wissen was das Problem ist

aonsux

da ich jetzt geschlagene Stunden dass selbe Problem hatte hier die Lösung die bei mir funktioniert hat:

Zum Testen eines Triggers habe ich mir ein Dummydevice angelegt

attr SMS_Melder room Wohnung
attr SMS_Melder setList on off
define act_on_SMS_Melder notify SMS_Melder:on "echo 'Fenster wurde geschlossen' | sudo /usr/bin/gnokii --sendsms +43xxxx"

Wenn man das Programm zum SMS verschicken mit sudo startet muss natürlich die Konfiguration auch im entsprechenden Verzeichnis vom root User liegen. Bei mir war das: /root/.config/gnokii/config

Dann hatte ich ein paar Fehlermeldungen die wie folgt aussahen:
sudo: no tty present and no askpass program specified

Zuerst habe ich dem User fhem über sudo visudo noch die Rechte zum Ausführen von gnokii verpasst:
fhem ALL=(ALL) NOPASSWD:/usr/bin/gnokii

Danach habe ich den User fhem noch in die Gruppe dialout gegeben, damit hat er automatisch Zugriff auf mein USB Modem Device ttyUSB0.

Ob des 100% mit dem sudoers passt weiß ich jetzt nicht, aber egal. Bin froh dass es funktioniert.

LG

Forums

#13
Hallo zusammen.

Ich stehe vor gleiche Problem mit gammu. :-\. Die SMS kann ich ohne Problemen über die Konsole mit der Befehl

echo "sms test" | sudo /usr/bin/gammu sendsms TEXT +4917********

versenden, jedoch nicht über FHEM. Wenn ich bei FHEM im Befehlfeld das eingebe

{system("echo "sms test" | sudo /usr/bin/gammu sendsms TEXT +4917********")}

Dan erhalte ich folgende Meldung

syntax error at (eval 15) line 1, near ""echo "sms test"  :o

Was mache ich falsch?



Rince

Hast du es so mal versucht?

Zitat{ system(`echo "Mein SMS Text" | sudo gammu --sendsms TEXT 079xxxxxxx`) } 
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)