Une 2eme plateforme SMS à base de téléphone Android puis évolution vers le pilotage SMS de Domoticz

C’est le deuxième article sur le sujet des SMS et de Domoticz.

Il est le copié/collé (pas tout à fait quand même) d’un article précédent https://easydomoticz.com/une-plateforme-sms-a-laide-dun-vieux-telephone-android-pour-domoticz/ , la seule différence est le changement de l’appli du téléphone Android.

Ce changement permet de pouvoir réutiliser un script Lua réalisé par Vil1driver sur le forum , référence ici https://easydomoticz.com/forum/viewtopic.php?f=17&t=596 permettant le pilotage de Domoticz VIA l’envoi de SMS (oui, oui c’est possible)

Vil1driver c’est basé sur une appli Android (SMS Gateway Ultimate) et moi sur une autre SMS Gateway (tout court)).

Je vais donc détailler ici l’utilisation d’une autre gateway SMS pour Android puis nous verrons comment utiliser le script Lua au sein de Domoticz afin de donner des ordres via SMS dans un autre article.

Repartons donc à la découverte de l’envoi de SMS depuis Domoticz.

Introduction

Une question récurrente des utilisateurs Domoticz est l’envoi de SMS depuis notre système favori, voyons ici les possibilités qui nous sont offertes, leurs avantages et leurs inconvénients.

  • Free permet à ses utilisateurs l’envoi gratuit de SMS vers leur propre numéro, mais on est donc limité à un seul numéro (c.f cet article). L’inconvénient est d’avoir un forfait téléphonique Free et on doit utiliser l’api http:// de Free dépendante d’une connexion Internet.
  • On peut aussi utiliser la plateforme SMS Clickatell, surtout depuis son inclusion native dans Domoticz, ou d’autres (OVH) mais radins comme nous sommes, le coût nous freine rapidement.

Partant de ce constat j’ai cherché une autre solution.

Le postulat de base est :

  • le moins cher possible avec des coûts prévisibles et planifiables (un forfait fixe),
  • pas de trucs dans le cloud (je ne veux pas dépendre de ma connexion internet pour cela).

Sachant que j’ai un vieux téléphone Android dans un placard, qu’un forfait à 2 euros chez Free ne me parait pas prohibitif, l’idée vient rapidement d’utiliser le téléphone pour envoyer nos SMS. Il nous faut donc un logiciel sur le téléphone capable d’envoyer des SMS et d’être piloté depuis l’extérieur (Raspberry/Domoticz).

Quelques recherches sur le Google Play nous amènent vers le logiciel SMS gatewaySMS Gateway Ultimate qui possède une interface qui écoute sur http pour envoyer les SMS.

D’autres fonctions sympathiques existent dans cette appli (SMS vers Http que nous utiliserons plus tard, mail vers SMS, SMS vers mail…)

L’appli SMS GATEWAY Ultimate SMSGUltimate

Après installation depuis le Google Play , le lancement de l’appli donne cela:

Utilisons le bouton Add pour ajouter une passerelle SMS.

smsgult1

Puis une Passerelle SMS (SMS Gateway).

smsgult3

Il nous faut nommer notre plateforme SMS changer éventuellement le port et le noter (nous en aurons besoin tout à l’heure).

smsgult2La configuration de l’outil est terminée.

De retour au menu principal , le bouton « Settings » , permettra de cocher les cases permettant de  lancer cette appli au boot du téléphone et de sauvegarder la configuration sur la Sdcard

smsgult4

Pour pouvoir utiliser cette plateforme SMS il nous faudra son adresse IP  que l’on trouve dans le menu « Info », ici 192.168.1.66.

smsgult6

Nous lançons le serveur SMS par un appui sur « Start »

smsgult7 smsgult8

Le serveur SMS fonctionne.

Pour l’arrêter le le libérer de la mémoire du téléphone il faudra faire « Stop » puis « Exit »

smsgult5

 

Utilisation de la passerelle SMS.

Ouvrons simplement un navigateur à l’adresse de notre téléphone:le port de l’appli.

Vous tomberez dans un formulaire web qui vous permettra de renseigner le numéro de téléphone et le  message à envoyer.

L’url finale est de la forme : http://192.168.1.66:59494/send.html?smsto=NUMERODETEL&smsbody=MESSAGE&smstype=sms

On voit plus bas la requête http qu’il faudra appeler vers cette appli pour lancer des SMS, elle est du type http://adresseipdutelephone:port/send.html?smsto=NUMERODETEL&smsbody=MESSAGE&smstype=sms

Le dialogue avec la passerelle SMS.

On a vu qu’il suffit d’une simple requête http pour piloter l’appli. N’importe quel langage sachant faire http pourra donc utiliser cette appli.

J’ai crée un script python afin d’envoyer un SMS à plusieurs téléphones et d’avoir des messages passés en paramètres.

Exemple : si j’appelle ce script smsgateway.py et que depuis Domoticz dans un action on /action off j’appelle script:///home/pi/domoticz/scripts/smsgateway.py ALERTE, le SMS que je recevrai sera « ALERTE ».

Si on n’indique pas de message, il y a un message par défaut dans le script que vous pouvez changer (Message de Domoticz).

action_sms_gateway

On configure dans le script les numéros de téléphone entre ‘ et séparés par des , puis les ip, port de l’appli SMSGATEWAY ULTIMATE.

Ce script nécessite la présence de la bibliothèque requests : sudo pip install requests pour l’installer.

Si vous avez du python 3 installé sur votre machine, remplacez la première ligne par

#!/usr/bin/python3

sinon :

#!/usr/bin/python
# -*- coding: utf-8 -*-

# il faut le module requests
# sudo pip install requests

import requests
import os
import sys


#~~~~~~~~~~Numeros de telephone a contacter~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
phones=['06511121314','0612131415']

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

#~~~~~~~~~~ Parametres SMS Gateway Ultimate ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ip_sms_gateway='192.168.1.66'
port_sms_gateway='58432'


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


if len(sys.argv)==1:
        message='message de Domoticz'
else:
        message = sys.argv[1]



def send_sms (tel,message):
#http://192.168.1.66:58432/send.html?smsto=06XXXXXX&smsbody=tets&smstype=sms
    requetesms='http://'+ip_sms_gateway+':'+port_sms_gateway+'/send.html?'+'smsto='+tel+'&smsbody='+message+'&smstype=sms'
    r = requests.get(requetesms)
    print (r.url)



for tel in phones:
    #print (tel)
    send_sms(tel,message)

Ensuite un petit chmod +x lenomdevotrescript.py.

Puis testez le en lançant ./lenomdevotrescript.py pour vérifier que vous recevez bien vos sms avec le message par défaut, puis essayez ./lenomdevotrescript.py BONJOUR, vous devriez recevoir sur vos téléphones les message BONJOUR.

 

Utilisation avec les notifications http de Domoticz.

Un utilisateur émérite du forum (Vil1driver) à attiré mon attention sur le fait que l’on peut gérer l’envoi par les notifications http internes à Domoticz. Merci à lui.

Voyons la mise en place de cela.

Tout d’abord dans la partie paramétrage des notifications nous allons faire appel  à notre script en lui passant comme paramètre #MESSAGE

Le champ « Url » contient donc script:///home/pi/domoticz/scripts/smsgateway.py « #MESSAGE »

(il y a bien 3 / après script:)

notification http Domoticz

notification http Domoticz

Puis ensuite depuis le dashboard principal Domoticz et dans chaque matériel, utilisons les Notifications comme suit :

En cliquant sur « Notification, on peut introduire une règle qui nous alertera.

On choisit l’état (On/Off) pour un interrupteur pour lequel on veut être alerté ou la température au dessus/au dessous de laquelle on veut des SMS (bien entendu on peut mettre plusieurs condition par le bouton ajouter) , il y aura plusieurs SMS envoyés.

On laisse juste coché Notifications Http, on indique le message a recevoir dans le champ « Message personnalisé » et c’est gagné.

Ici un exemple d’alerte sur e basculement d’un switch.

notif_http2

Ici la gestion d’une alerte de température trop basse ou le message envoyé par SMS est température_basse

notif_http_temp

Avantages/Inconvénients.

Avantages : le recyclage d’un vieux matériel, le prix de la config, son évolutivité.

Inconvénient : il faut garder le téléphone allumé 24/24 et 7/7.

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

8 Comments

  1. Bonjour,

    Pour ma part j’utilise SMS Gateway, dont tu as rayé le nom dans ton texte pour le remplacer par SMS Gateway Ultimate. Pourquoi ce remplacement ?

  2. Bonjour,
    J’ai changé en cours de route car un contributeur du forum avait développé les scripts avec SMS
    gateway ultimate, donc méthode de fainéant…

  3. Hello.

    Merci pour cet article vraiment extra ! Je rédige moi aussi un blog et j’ai écrit un article pour décrire comment installer différents services sur un ancien téléphone et l’intégrer dans une solution domotique. Concernant la partie serveur SMS, je me suis permis de faire un renvoi vers ton article, en espérant que cela ne pose aucun soucis.

    Mon article est consultable la : https://framboiseaupotager.blogspot.fr/2018/03/recycler-un-ancien-smartphone-pour-un.html

    Alex

  4. Super solution SMS.

    En revanche sms gateway ultimate n’envoie pas les sms lourds (de plus de 2 lignes environs). Qqn d’autre a eu le probleme?

    Je n’ai pas de solution pour l’instant…

  5. Bonjour
    Oui c’est probable les sms sont limités à 140 caracteres, au dela il doit etre decoupé en 2 et envoyé séparement, possible que SMS gateway ne sache pas gerer cela

  6. Hello ! Merci pour cette article. Pour ma part, je n’ai pas compris la partie email qui se trouve en dessous de la configuration du port. J’ai essayé de connecté mon adresse mail sur SMTP mais rien ne se passe quand j’envoie ou je reçois un mail à cette adresse :/
    Un coup de pouce ?

  7. Bonjour
    Aucun rôle dans ce qui nous intéresse ici
    Cela sert a renvoyer les SMS reçs par email automatiquement vers ton adresse mail

Comments are closed.