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?
versuch mal
{ system(`echo "Mein SMS Text" | sudo gammu sendsms TEXT 079xxxxxxx`) }
p.s.: und nimm deine Nummer besser aus dem Eintrag ;-)
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..........
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?
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. ;)
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.
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" ')}
Ö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?
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.
:(
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
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 ...... :-\
bist du noch auf der suche oder hast du das Problem schon gefunden?
Ich glaub nämlich zu wissen was das Problem ist
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
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?
Hast du es so mal versucht?
Zitat{ system(`echo "Mein SMS Text" | sudo gammu --sendsms TEXT 079xxxxxxx`) }
Bei mir funktioniert es seit Langem so:
# System- SMS versenden; Benutzung: set Dum_SMS_D Text der in der SMS stehen soll
# Auslösen: set Dum_SMS_D text der in der sms stehen soll
define Dum_SMS_D dummy
define Func_SMS_N notify Dum_SMS_D { \
\
my $SMSText = (Value("Dum_SMS_D"));;\
\
{system("echo $SMSText. | sudo gammu --sendsms TEXT 016xxxxxxxxxx &")};;\
Log 1, "SMS wurde versendet: $SMSText";; \
}
Hallo,
also das klappt wirklich sehr gut. Aber man muss dem Benutzer fhem auf dem Raspi der Gruppe sudo und dialout zuordnen und die Berechtigung zum
Ausführen von gammu erteilen!
Ich benutze einen Vodafone-Stick (Huwai K32772). Da er auch ziemlich verbreitet ist Folgendes:
Der wird von gammu nicht unterstützt. Deshalb bin ich auf gnokii 0.69 ausgewichen. Funktioniert genau
wie gammu, die Syntax aus fhem heraus ist fast identisch.
{system(`echo "SMS über FHEM" | sudo gnokii --sendsms +4917????????`)}