[gelöst] fhem soll Anruf über Mobiltelefon ausführen

Begonnen von McShire, 02 Dezember 2022, 00:23:24

Vorheriges Thema - Nächstes Thema

McShire

#30
Aus fhem funktioniert auch alles, z.B. in der Kommandzeile:
"echo ""gammu Test in fhem 2022-12-07 11:07"" | /usr/bin/gammu --sendsms TEXT +49151xxxxxxxx"

Damit kann man jetzt aus jeder Anwendung heraus eine SMS senden, auch wenn der Router ausgefallen ist,
z.B. wenn Stromausfall durch einen geeigneten Sensor (z.B. umgebauten Homematic Fensterkontakt) ein event erzeugt.

{fhem ("echo $myTextnachricht | /usr/bin/gammu --sendsms TEXT +49151xxxxxxxx")}

mfg
Werner

Wernieman

Ich muß gestehen, das ich das in ein externes Script auslagern würde. Dieses könntest Du dann in fhem mit "" aufrufen und es würde dann "non blocking" funktionieren ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

McShire

ZitatIch muß gestehen, das ich das in ein externes Script auslagern würde.

Ich nehme an, Du meinst ein bash-skript und nicht eine procedure in  myUtils.

Zum zyklischen Löschen der älteren Logfiles und Backup-files habe ich ein Script erstellt,
das von einem at device regelmäßig gestartet wird. Backups werden dabei auch auf einem Stick gesichert.
Dies verhindert, dass irgendwann der Speicher überläuft. Dafür halte ich ein Script für sinnvoll.

Für ein paar SMS-Versendungen halte ich das nicht für notwendig. Das Skript wird dann beim
Backup von fhem nicht mitgesichert, und man muss sicherstellen, dass es im Zusammenhang
mit der fhem Sicherung mitgesichert wird und bei einem Transfer oder Neuinstallation Sorge tragen,
dass es mit installiert wird.
Den zu versendenden Text stellt man sowieso in einer Variablen oder einem Reading ein und die
Telefonnummer ebenfalls.

Wernieman

ZitatDen zu versendenden Text stellt man sowieso in einer Variablen oder einem Reading ein und die
Telefonnummer ebenfalls.
Sorry aber das ist kein Argument, da man diese auch übergeben kann.

Nicht ohne Grund habe ich geschrieben "das ich das" .. jeder wie er will.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

McShire

#34
Ich habe den Gedanken jetzt einmal aufgegriffen und eine Script erstellt.

#!/bin/bash
#
# SMS mit Text in Parameter1 an Telefonnummer in Parameter2 senden


#Kommandozeilen-Parameter einlesen
Text=$1
TelNr=$2

echo "SMS $Text an $TelNr senden"

#jetzt  SMS senden
echo $Text | /usr/bin/gammu --sendsms TEXT $TelNr

#End of Program


Der Aufruf kann dann aus fhem beliebig erfolgen mit
""
{qx()}
{system"...&"}

Ein Beispiel für die Def in einem notify mit Namen SMS_act, Text und Telefonnummer werden in Readings von SMS_act eingestellt.

SMS_send {
   my $Text = ReadingsVal("SMS_act","mySMS_text"," ");
   my $Number = ReadingsVal("SMS_act","mySMS_number"," ");
   system "bash SMS_senden.sh $Text $Number&";
}


mfg
Werner