SMS clé 4G Huawei [Script]

Tags: #<Tag:0x00007f282e7c6908>

Bonjour à tous,

j’ai trouvé un script bash permettant d’envoyer des SMS via une clé 4G Huawei E3372.
Source : https://stackoverrun.com/fr/q/10478644
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 :
image

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 :

image

Alors ça fonctionne bien :slight_smile:
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 ? :grin:

Merci !

Le plugin Huawei ne fonctionne pas chez toi ?
J’ai un E5372 et les SMS fonctionnent.

#!/bin/bash
sudo /var/www/html/plugins/script/data/sms.sh "${1}" "${2}"

Bonjour @Stanymanman,

Sinon il y a le plugin officiel gratuit SMS.

akenad :slight_smile:

Salut,
Merci pour ton retour je vais tester avec ta syntaxe.
Le plugin Huawei j’ai suis pas aller plus loin car il fallait absolument un login/password.

Le plugin SMS oui mais pour un d’ongle local.
La clé Huawei monte une interface réseau, elle se monte pas en modem.
Surement possible en passant par modprobe.
Mais ce n’est pas utile dans mon cas car ma clé est déportée sur mon routeur Synology en backup de la laison ADSL.

E3372 se monte en modem en local avec usb-modeswitch : [Présentation] akenad

akenad :slight_smile:

Hello,
Oui à l’aide de modprobe et si elle est branchée en local sur la machine Jeedom.
Et en mode modem tu perds la possibilité d’en faire une gateway 4G non ?

Oui.

akenad :slight_smile:

Salut,
ta syntaxe n’a pas amélioré les choses, je dois toujours mettre le message entre quote.

Et pour le plugin Huawei c’est bien écrit dans la doc :

Le plugin n’est pas compatible avec les modèles suivant :
Huawei B2368-22
Huawei E3372

Il faut que mettes entre guillemets dans ton script bash le $2 mais aussi dans la requête du plugin script : "#title#" "#message#"

Si ton #message# fait plus de 1 argument, le script ne verra que le premier qui correspond à $2.

Super ça marche merci !
"#title#" "#message#" est suffisant :slight_smile:
En espérant que ça puisse aider :grin: