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/

Envoi de valeurs pour SMS/email et notifications

Une petite info rapide : les versions supérieures ou égales à V2.3857 permettent maintenant l’envoi de valeurs au sein des emails/SMS/notifications via Blockly à l’intérieur de votre bloc message.

On peut ainsi faire :

La Température Salon est de {{temperaturedevice[idx]}}, et l'humidité est de {{humiditydevice[idx]}} %

idx est  l’idx de mon périphérique concerné.

idx_domoticz

Voici la liste de toutes les expressions utilisables

temperaturedevice
dewpointdevice
humiditydevice
barometerdevice
utilitydevice
weatherdevice
raindevice
rainlasthourdevice
uvdevice
winddirdevice
windspeeddevice
windgustdevice
variable

Source : http://www.domoticz.com/wiki/Events

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/

Nouveau système de notification

La version 2404 de Domoticz introduit une nouvelle gestion des notifications liées aux interrupteurs, capteurs, etc.

Le système de notification à été étendu en fonctionnalités et services puisque on peut dorénavant envoyer, pour un même événement,  plusieurs types de notification (mail,sms,http…) mais également paramétrer le contenu des messages de notification.

Examinons cela en précision.

Les notifications : rappels.

Quelques petits rappels : ce sont des messages, principalement destinés à nos smartphones, qui peuvent être envoyés au changement d’état d’un dispositif Domoticz (basculement d’un interrupteur, température supérieure à, inférieure à… ).

Plusieurs systèmes de notification sont disponibles que ce soit pour Iphone (Prowl et PushOver) ou pour Android (Mma, Pushover) et même pour Windows Phone (!) via Pushalot.

Ces services nécessitent  une inscription, les versions ‘free’ ne permettent de recevoir que X notifications par jour, variable suivant les fournisseurs.

L’utilisation de ces services est paramétrable dans le menu « Réglages/Paramètres/Notifications ».

Notifications_Domoticz

Vous pouvez depuis ici accéder aux sites web des fournisseurs de service puis copier/coller les clés d’utilisation qu’ils vous ont octroyées.

Concernant l’utilisation des notifications, les boutons « Notification » permettent de définir les critères d’alerte et depuis la version 2404, bien plus.

En effet, jusqu’à la version 2404, une seule notification pouvait être envoyée.

Maintenant plusieurs services peuvent être contactés pour une même notification, on peut envoyer des SMS par le biais de Clickatell, le contenu des messages envoyés est configurable.

Un lien nous renvoie vers clickatell ou 10 messages sms nous sont offerts, sinon c’est 5.1 centime le SMS (pour la France) une fois le compte ouvert.

Les champs HTTP Personnalisés/Action servent à pouvoir appeler un script ou une url en lui donnant des paramètres.

Ainsi imaginez que je veuille contacter un site web nommé messms.com qui nécessite une url de ce type :

https://www.messms.com/pushurl.php?username=mon_user_name&password=#mon_password&apikey=#ma_cle_secrete&from=#le_nom_de_l’emetteur&to=#le_numero_a_contacter&message=#mon_message

En remplissant comme suit ce formulaire , les champs FIELD1,2,3,4 et TO,MESSAGE sont remplacés par leur correspondance lord de l’envoi de la notification.

notifs2

Donc si votre fournisseur favori de SMS vous donne une url spéciale pour envoyer vos SMS , le paramétrage se fait ici dans le champ URL et les champs FIELD1234 permettre de définir vos user/password …

Si vous avez un autre système à la maison qui dialogue via http, envoyez lui vos notifications par ce biais.

Ce système permet aussi de passer des valeurs à un de vos propres scripts pour peu que celui gère correctement le passage de paramètres.

notifs

Voyez ici que le script home/pi/domoticz/scripts/envsms.sh est appelé et Domoticz « lui donne à manger » FIELD1,FIELD2, MESSAGE que le script utilise suivant sa logique. (Il y a bien 3 / après script:, ce n’est pas une erreur)

Le script ressemble à cela :

#!/bin/sh
curl -s -i -k "https://smsapi.free-mobile.fr/sendmsg?user=#FIELD1&pass=#FIELD2&msg=#MESSAGE"

il appelle l’url free ici par exemple et lui passe les 3 variables FIELD1,2;MESSAGE

N.B

En bas de l’écran de configuration des notifications il y a un paramétrage qui permet de définir la fréquence d’envoi des messages de notification afin d’éviter d’être  bipé en permanence par la température de son aquarium.

Par défaut une notification survenant sur un interrupteur est envoyée directement, alors que les capteurs attendront 12h pour vous renvoyer une nouvelle alerte.

notif_intervalles

Gérer les notifications

Sur chaque dispositif on peut assigner des notifications.

notif

L’écran suivant permet d’ajouter autant de notification et de moyen de les envoyer.

ajout_notif

Ainsi on voit ici que si la température est supérieure à 22 , j’envoie un email et une notification via nma (Android) avec le message « Température sup a 22 » et lorsque on est a 28 ° idem plus un sms clickatell avec le message « Temperature sup a 28 ».

Les notifications sur les switches sont configurables de la même manière.

Voila encore une joli avancée qui va nous éviter quelques scripts shell et python 😛

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/

Nouveau service sms pour les utilisateurs de Free Mobile: Envoyer des SMS depuis Domoticz

Free Mobile vient de lancer un service de notification via SMS pour ses abonnés, le bonheur pour notre plateforme de domotique préférée.

On peut donc maintenant envoyer des sms directement depuis Domoticz (ou autres) en appelant une simple url https

Le principe est d’activer le service SMS chez Free qui donne alors un password  lié à votre identifiant Free mobile puis on obtient une url de la forme

« https://smsapi.free-mobile.fr/sendmsg?user=000000pass=xxxxxxxxx&msg=Hello%20World%20! »

Voyons comment en profiter avec notre DOMOTICZ préféré et faire envoyer des sms suivant nos besoins

Du coté de chez Free

Connectez vous à votre espace abonné avec votre identifiant

2014-06-18 09_33_53-Free Mobile - Bienvenue dans votre Espace Abonné

 

C’est cet identifiant qui sera utilisé par la suite pour l’envoi des sms.

Choisissez le forfait sur lequel vous voulez activer le service. puis allez dans « Options/Gerer »2014-06-17 20_43_49-Free Mobile - Bienvenue dans votre Espace Abonné2014-06-17 20_45_14-Free Mobile - Bienvenue dans votre Espace Abonné

 

Activez les notifications SMS

2014-06-17 20_45_29-Free Mobile - Bienvenue dans votre Espace AbonnéConfirmez l’activation puis vous obtenez alors une clé liée à votre forfait (cette clé change à chaque activation/désactivation du service SMS)

2014-06-17 20_49_23-Free Mobile - Bienvenue dans votre Espace Abonnéle petit i deux lignes au dessus de ce code vous donne DIRECTEMENT l’URL à utiliser vous n’aurez qu’a y changer le message , faites un copier de la ligne commençant par https

2014-06-17 20_50_08-Free Mobile - Bienvenue dans votre Espace AbonnéPour vérifier si tout est correct , copiez collez cette url dans votre navigateur et après quelques secondes vous devez recevoir un SMS.

Maintenant voyons cela dans Domoticz

Coté Raspberry-Domoticz

La première idée qui vient serait de faire un action on/action off depuis le switch concerné

2014-06-18 10_05_22-Domoticz

or il s’avère que DOMOTICZ ne supporte pas le https  ici

On peut utiliser le mode « Blocks » de Domoticz (merci à bricolo44)

Rendez vous dans « Plus d’options » puis « Evenements » créez alors votre block comme suit :

2014-06-24 17_00_47-Domoticz

 

Puis pensez à l’activer avec la case à cocher à gauche

Une autre façon de faire et de passer par 2 scripts bash directement lancés par le contact lui meme.

nous ferons donc 2 scripts bash un pour l’état on , l’autre pour l’etat off

Le script pour le ON : smson.sh
#!/bin/sh
curl -s -i -k "https://smsapi.free-mobile.fr/sendmsg?user=monid_ci_dessus&pass=celui_ci_dessus&msg=Porte Garage Ouverte !!"

Le script pour le OFF : smsoff.sh
#!/bin/sh
curl -s -i -k "https://smsapi.free-mobile.fr/sendmsg?user=monid_ci_dessus&pass=celui_ci_dessus&msg=Porte Fermée"

Le -k dans curl est INDISPENSABLE pour éviter la verification des certificats SSL.

Ces 2 scripts sont à créer dans home/pi/domoticz/scripts/ (pas ailleurs)

Faites un chmod +x sur chacun d’entre eux

Lancez les à la main par un ./smson puis ./smsoff pour vérifier que tout est correct et que vous recevez les SMS en question.

Dans Domoticz allez sur le composant à gérer puis dans le « Editer »

2014-06-18 13_57_08-Domoticz Dans les action ON et Off placez l’appel à vos 2 scripts

script:///home/pi/domoticz/scripts/smson.sh

et

script:///home/pi/domoticz/scripts/smsoff.sh

IL Y A BIEN 3 /

2014-06-18 13_46_42-Domoticz

Validez et testez, enjoy

Pour toute question technique concernant cet article, veuillez utiliser les forum situés à https://easydomoticz.com/forum/