CirusSMS - manuel

  Présentation

CirusSms est une application Android (version>=3.2) qui sert entre autre de passerelle SMS et plutôt dédié au logiciel domotique Domoticz. Ce logiciel est gratuit mais une version Prémium étend les fonctionnalités, il faut bien payer un peu les frais du serveur qui hébergent ce site !
Cette application permet de mettre un véritable système domotique sans avoir besoin de liaison internet comme pour surveiller des locaux isolés, un bateau, un camping car, des entrepôts… il faut juste du courant  et du réseau GSM 2G.

  Installation

L’installation de CirusSMS ne pose aucun problème, il faut juste le télécharger via le Play Google.
Ensuite il faut lancer l’application est suivre les informations expliquées sur le paramétrage ci-après.  Notez que cette application devra être installée sur un mobile plutôt dédié à ça, voici quelques conseils :

  • CirusSMS n’a pas besoin de s’exécuter en mode « root ».
  • Créer un compte Google spécifique pour éviter les effets de bord avec votre compte, ce n’est pas fondamental mais c’est mieux.
  • Supprimer un maximum d’application ou au moins les rendre inactives.
  • Supprimer ou régler toutes les fonctions économiseurs d’énergie qui risquent d’arrêter CiruSMS et les moyens de communications de votre mobile comme le Wifi.
  • Vérifier que votre Wifi ne sera pas arrêté lorsque l’appareil passe en veille, CirusSMS doit accéder à Domoticz via ce Wifi même en veille. Notez qu’il accède à internet que pour vérifier votre connexion et vous signaler un dysfonctionnement (c’est une option), il n’a donc aucun autre besoin d’accéder à internet. Je n’ai pas testé mais on pourrait imaginer d’interdire votre mobile d’accéder à internet en bloquant cet accès sur votre box si ça peut vous rassurer mais au détriment du test de connexion internet.
  • Il est aussi plutôt bien de ne pas accepter les MAJ automatiquement car si celle-ci est mise à jour durant votre absence il y a de forte chance que l’application ne redémarrera pas, je n’ai trouvé aucune solution pour ce cas.

  Notion de GROUPE

Avant de commencer il faut savoir que Domoticz  enverra un SMS à un groupe et non pas à un numéro de téléphone.

Ce principe permet de bien dissocier le besoin fonctionnel du/des destinateur/s. Ainsi Domoticz demandera par exemple d’envoyer un SMS de détection d’un capteur vers le groupe « DETECTEUR » ou d’informer qu’une pompe c’est mise en fonctionnement à transmettant l’info au groupe « INFO ». Ainsi dans Domoticz on n’a aucun numéro de téléphone inscrit, seulement un besoin d’informer un groupe, c’est la répartition des responsabilités.

Dans CirusSMS on aura donc
– une liste de numéros de téléphone (actif ou pas).
– une liste de groupes.
– et l’association entre les groupes et les numéros de téléphone.

Ainsi il est plus simple de modifier cette liste sans parcourir le code de Domoticz pour rendre un numéro temporairement inactif par exemple ou le modifier.

Cette solution permet également de sécuriser les échanges entre  l’application Android CirusDomoticz qui vous permet de transmettre des ordres simple à Domoticz via CirusSMS nous verrons cela après.

A la première initialisation il y a 3 groupes qui sont créés automatiquement mais le groupe « ADMIN » est très important et ne peut pas être supprimé. Il doit être associé à au moins 1 numéro pour que CirusSMS puissent fonctionner correctement  avec certaines fonctionnalités.

  Le menu principal

Accessible de la page d’accueil ce menu vous permet d’accéder à tous les paramétrages de votre passerelle.
– Configuration technique
– Achat de l’option Premium
– Liste des numéros téléphonique
– Liste des groupes
– Liste des associations

⇒ Configuration :

Ouverture d’une page contenant plusieurs onglets :

  • Accès aux paramètres de connexion à Domoticz : protocole, ip, port, login et mot de passe. Un bouton vous permet de vérifier que la configuration saisie est correcte.

  • Configuration du port d’écoute pour recevoir les demandes d’envoi des SMS. Bloquer ces envois provenant uniquement du serveur où est hébergé Domoticz ou pas.
    2 boutons permettent d’activer les services nécessaire au bon fonctionnement de CirusSMS ; l’un pour gérer la demande d’envoi des SMS et l’autre dédié à la réception des SMS, à la gestion du contrôle de la batterie et du test de la connectivité. Naturellement un fois les paramètres saisies il faut enclencher ces 2 boutons pour faire fonctionner CirusSMS en lançant ces 2 services. Pour arrêter totalement CirusSMS il faut arrêter ces 2 services.
    Vous pouvez autoriser la supervision de votre connectivité, d’une part en local en envoyant une requête JSON à Domoticz et d’autre part votre accès à internet par une requête GET (sans paramètre) sur un de mes serveurs. Je garanti que je ne transmets aucune information vers l’extérieur, juste un ping du reste vous pouvez installer un proxy sur votre mobile pour le vérifier.
    Notez que vous n’avez à faire aucune inscription particulière qui rendrait nominative votre installation, que l’application ne requière aucune autorisation d’accès à vos données personnelles. Notez également que l’autorisation d’accès à la mémoire sur Android sont sécurisés puisque basé sur Linux : les accès sont donc très limitées.
  • Permettre ou non la redirection des SMS non liés à CirusSMS comme par exemple ceux envoyés par votre opérateur téléphonique. Cette fonctionnalité est une option payante. Les SMS sont redirigés vers le groupe ADMIN. Notez que tout ce qui sort de votre mobile doit-être tracé par votre logiciel de messagerie.
  • Configurer le mécanisme de recharge de la batterie via un module de type prise piloté par Domoticz, enclenché lorsque le niveau passe au dessous d’un niveau minimum et arrêté lorsqu’il passe un niveau maximum.
  • Enfin vous avez le choix de la langue.

⇒ l’option Premium :

Cette option permet d’ajouter le fonctionnalités suivantes :

  • La gestion de la charge automatique de la batterie de la passerelle en actionnant un module associé à Domoticz avec la possibilité ou non d’envoyer un SMS pour informer le groupe ADMIN de changement d’état.
  • la surveillance de votre connexion interne en vérifiant la réponse de Domoticz et externe en vérifiant la réponse d’un serveur dédié sur internet. Un compte rendu par SMS sera transmis au groupe ADMIN lors d’un dysfonctionnement et lors du rétablissement.
  • Retransférer les SMS reçus autres que ceux dédiés à CirusSMS vers le groupe ADMIN. Ainsi vous ne perdrez pas par exemple les informations de votre fournisseurs téléphoniques.
  • Demander à votre passerelle de vous rappeler pour écouter votre pièce. Attention cette option est parfois compliquée à faire fonctionner (problème de réglage) car sur certain mobile celui-ci étant en veille, l’action de lancer un appel ne se fait pas toujours normalement. Cette option ne fonctionne pas bien sur un Sony SP mais fonctionne nickel sur un Sony Xperia Z par exemple.

Il faut redémarrer l’application pour voir votre achat (j’y travaille pour résoudre ce problème), pour cela il est nécessaire de stopper les services (config.service) puis de supprimer l’application dans les taches.

⇒ Liste des Numéros

Consulter, ajouter, modifier ou supprimer des numéros de téléphone en y associant un nom et un mot de passe. Si vous utilisez CirusDomoticz vous devez utiliser le même nom et le même mot de passe.
Une coche permet aussi de rentre actif ou inactif un numéro, un numéro inactif est un numéro suspendu, inopérant.
Attention les numéros doit avoir le code international par exemple en France nous aurons : 33612345678 (pour le numéro 0612345678). La saisie interdit les espaces, le caractère + et n’accepte que des caractères numériques (0 à 9).

⇒ Liste des Groupes

Par défaut 3 groupes sont enregistrés donc 1 seul ne peut pas être modifié, il s’agit du groupe ADMIN, les autres sont créés pour vous guider.
Ce groupe ADMIN doit comporter au moins 1 numéro valide pour que CirusSMS puisse fonctionner correctement avec certaines fonctionnalités :
– transfert des SMS,
– information sur le changement d’état de la charge de la batterie,
– information sur l’état des connexions (Domoticz et internet) lors de la détection du dysfonctionnement et de son rétablissement.

⇒ Liste des Associations

Associer des numéros à un groupe, vous pouvez associer 0 ou plusieurs numéros à un groupe.

⇒ Liste des SMS reçus ou envoyés

2 tables permettent de stocker les SMS traités par CirusSMS. Ces tables permettent de vérifier les messages qui transitent. Elles sont nettoyées tous les jours avec une rétention de 15 jours.

⇒ A propos

Vous pouvez consulter la version que vous utilisez et aussi accéder à cet aide en ligne via votre navigateur.

   Implémentation

Avant tout il faut trouver l’IP locale de votre mobile passerelle, soit en allant dans votre interface de votre box ADSL soit en utilisant un site (sur votre passerelle) pour le trouver comme par exemple avec « www.mon-ip.com/ » puis en cliquant sur « Découvrez votre adresse IP locale en cliquant ici » ou plus simpelment en allant dans les paramètres du mobile, A propos du téléphone puis sélectionner « Etat du téléphone ».

Il y a plusieurs manières pour envoyer des SMS de Domoticz avec CirusSMS, en voici 2 :

⇒ Dans un bouton

Retrouvez ici un article qui explique par à pas comment faire en partant de zéro.

Créez un bouton dans l’interface, ici un « Push On Button ».

Saisir l’url dans Action On :
– avec la bonne adresse IP et le port déclaré dans CirusSMS, 1200 par défaut.
– le /SMS est nécessaire
– le &GROUP=le_groupe qui doit-être configuré
– votre message complet mais vous devez remplacer les espaces par %20 pour respecter la norme HTTP. Ce sera vrai aussi pour certains caractères spéciaux.

http://192.168.1.21:1200/SMS&GRP=SURV&MSG=Bonjour%20Test%20SMS

⇒ Par des notifications

Peut-être la meilleur solution si la commande reste simple.
1. il faut configurer les notifications dans Réglages.Paramètres.

Puis aller dans l’onglet Notification, puis remplir comme ci-après :

Bien mettre #MESSAGE après MSG, choisir votre groupe de Notification.
Créer un Bouton virtuel comme expliqué ci-dessus (mais cela pourrait être un capteur de température ou autre).

Puis cliquer sur le bouton Notification pour ajouter une notification en ne gardant que « http » et en mettant le message. Plus besoin de formater les caractères spéciaux Domoticz s’en occupera.

2 contraintes à cette solutions :

  • impossible d’avoir un niveau supplémentaire de filtre (par exemple envoyer cette notification que si une autre sonde à une valeur >20 ou un bouton on/off est enclenché ou pas).
  • toutes les notifications seront envoyées au même groupe (sauf si on arrive à jouer avec les #FIELDx mais je n’ai pas trouvé de solution.

⇒ Dans un script LUA

On peut créer une fonction « smsput » avec 2 paramètres :
– le nom du group, destinataire du message.
– le message lui même (au format compatible avec HTML).

La première chose à faire est de transcoder les espaces par la chaine « %20 » avec fonction LUA string.gsub. Le caractère espaces ne sont pas autorisés dans les URL comme du reste d’autres caractères spéciaux.

function smsput( sGroup, sMsg )
    sUrl="http://192.168.1.21:1200/SMS&GRP="  .. sGroup .. "&MSG="    
    commandArray['OpenURL'] = sUrl .. string.gsub(sMsg, ' ', '%%20')
end

command[‘OpenURL’] sera gérée par Domoticz pour envoyer cette URL sur le réseau.

Il suffira d’utiliser cette fonction pour envoyer un SMS comme par exemple avec un module un détecteur de présence vers le groupe ‘SURV’ (surveillance).

if (devicechanged['IR_SALON']=='Open') then
    smsput('SURV',"detection salon")
end

   IDX d’un module

Comment trouver l’IDX d’un module ? Allez dans « Dispositif » et filtrer sur le nom du module recherché, ici « ChargeMobileCirus » par exemple.

   Evolutions à envisager

Naturellement toute application est vouée à évoluer. Que peut-on faire de mieux dans CirusSMS ?

  • le test des connexion : aujourd’hui le temps de détection peut-être de l’ordre de 20 minutes (max), idem pour le test de rétablissement. On peut donc réduire ou rendre paramétrable ce temps. On peut aussi mettre en place une table de suivi de ces connexion/déconnexion à des fins d’analyse.
  • Pour tester la connexion internet on s’appuie sur un site privé de DistribSoft (sans passage d’information voir charte) mais on pourrait rendre paramétrable le site de ping.
  • Faciliter le remplissage des numéros de téléphone en allant les chercher via les contacts. Cela oblige juste à demander les droits d’accès aux contacts.
  • Enfin CirusSMS pourrait s’ouvrir à un autre système domotique ou au moins prévoir une adaptation, pourquoi pas !

   Restriction

L’expérience montre que certains mobiles ne fonctionnent pas bien.
J’ai noté les Dual SIM qui posent souvent des problèmes car la couche Android ne gère pas cette solution d’architecture alors suivant l’implémentation du constructeur ça marche ou pas. Certains mobiles ne redémarre pas en lançant l’application automatiquement, là aussi il y a des chances qu’ils ne respectent pas bien l’implémentation Android.

Ce contenu a été publié dans CirusSMS, avec comme mot(s)-clé(s) . Vous pouvez le mettre en favoris avec ce permalien.