Domoticz Windows et Powershell : Envoyer un SMS via Free

Quelques articles existants:

https://easydomoticz.com/domoticz-et-windows-les-scripts-powershell-1

https://easydomoticz.com/domoticz-et-windows-les-scripts-powershell-2

permettent de vous familiariser avec l’écriture de scripts Powershell (PS) sous Windows et surtout leurs appels au sein des champs Action On/Action Off de Domoticz.

Voyons ici comment utiliser les service d’envoi de SMS de chez Free (accessibles aux abonnés uniquement) depuis Windows.

Un article ancien décrivait l’activation de ce service chez Free et il reste valable encore à ce jour.

Nous ne verrons ici que la partie script powershell spécifique à Windows.

Le Script Powershell.

Sous Linux, la commande  qui permet d’appeler une url se nomme curl.

En powershell, la commande  qui permet d’appeler une url se nomme curl aussi. :mrgreen:

Testons en ligne de commande powershell  en ouvrant tout d’abord une invite de commande DOS puis en tapant powershell

ps_1

Puis tapons

curl  "https://smsapi.free-mobile.fr/sendmsg?user=4745125&pass=DD44DCQQAECGH145541nWhNe&msg=Mon message !"

Un message arrive sur le téléphone, PS montre ceci  avec un StatusCode 200 OK:

ps_3Plaçons le bout de code dans un fichier smson.ps1, puis créons, comme nous l’avons vu dans un précédent article, un lanceur de ce ps1 en .bat.

Je crée donc un smson.bat dans mon dossier scripts/powershell qui contient :

Powershell.exe -WindowStyle hidden  -nologo -executionpolicy remotesigned -Command "& 'C:\Program Files (x86)\Domoticz\scripts\powershell\smson.ps1'"

J’ai pris l’habitude de nommer de la même façon le .ps1 et le .bat, cela simplifie le débogage.

L’interrupteur virtuel.

Si vous avez suivi les autres articles vous avez compris qu’il faut appeler le fichier .bat au sein du Action On/off de l’inter.ps_4

Certains 😛 souhaiteraient avoir la date et l’heure de l’envoi du SMS.

La commande est Get-Date

Le code PS devient :

$startTime = Get-Date
curl  "https://smsapi.free-mobile.fr/sendmsg?user=cx045511xsdg&pass=hjDdxxxfffggeessse&msg=Porte Ouverte à $startTime"

Ca marche pas !

Déjà un bon point de repère est l’ouverture de la fenêtre Powershell, si vous ne l’obtenez pas vérifiez les noms dans l’inter et dans le fichier .bat.

Testez vos scripts depuis PS_ISE  ou la ligne de commande en mode powershell et allant dans le répertoire des scripts pour lancer vos script.

Un lecteur me signale que  »

Pour les Utilisateurs sous Seven, ne pas oublier de mettre à jour NetFramework puis passer à la version Powershell 4
(La version 2 d’origine sous Seven ne connait pas la commande CURL.) »

Merci encore

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/
Posted in domoticz, powershell, scripts, windows and tagged , , , , .