Bonjour à tous,
j’ai trouvé un script bash permettant d’envoyer des SMS via une clé 4G Huawei E3372.
Source : stackoverrun.com
Ma clé est connectée en USB sur mon routeur Synology RT1900AC.
J’ai amélioré le code pour que le premier argument passé au script soit le numéro de téléphone et que tous les autres arguments soient considérés comme le message à envoyer.
Voi ci le contenu du script :
#!/bin/bash
curl -b session.txt -c session.txt http://192.168.8.1/html/index.html > /dev/null 2>&1
TOKEN=$(curl -s -b session.txt -c session.txt http://192.168.8.1/html/smsinbox.html)
TOKEN=$(echo $TOKEN | cut -d'"' -f 10)
echo $TOKEN > token.txt
distro=($*)
## get length of $distro array
len=${#distro[@]}
## Use bash for loop
for (( i=1; i<$len; i++ )); do message="$message ${distro[$i]}" ; done
#echo $message
NUMBER=$1
MESSAGE=$message
LENGTH=${#MESSAGE}
TIME=$(date +"%Y-%m-%d %T")
TOKEN=$(<token.txt)
SMS="<request><Index>-1</Index><Phones><Phone>$NUMBER</Phone></Phones><Sca/><Content>$MESSAGE</Content><Length>$LENGTH</Length><Reserved>1</Reserved><Date>$TIME</Date></request>"
echo $SMS
curl -v -b session.txt -c session.txt -H "X-Requested-With: XMLHttpRequest" --data "$SMS" http://192.168.8.1/api/sms/send-sms --header "__RequestVerificationToken: $TOKEN" --header "Content-Type:text/xml"
J’ai créé un objet « Script » dans Jeedom :
Qui contient :
#!/bin/bash
sudo /var/www/html/plugins/script/data/sms.sh $1 $2
Pour récupérer les variables #title# et #message# passé par Jeedom.
Mais lorsque j’utilise ma commande dans Jeedom je suis obligé de mettre des guillemets autour du message à envoyer :
Alors ça fonctionne bien
Mais mon but est d’éviter d’avoir à mettre des guillemets dans le message mais je ne vois pas où sa cloche…
Auriez-vous une idée ?
Merci !