..:: Domotique Store : Le Blog ::..
Tous les articles Vera

L’envoi d’e-mails via la Vera Lite, méthode basique et avancée

La Vera Lite a une particularité : elle n’inclue pas directement d’évènement permettant d’envoyer un e-mail, comme le font beaucoup de box.

La fonctionnalité existe, mais avec une logique différente. Il y a même deux façons de le faire, dont l’une permet une personnalisation assez libre des messages envoyés. Cela valait le coup de se pencher sur la question en vous présentant les deux méthodes !

Les alertes incluses dans l’interface

Pour pouvoir recevoir un e-mail sur la Vera Lite, il faut au préalable que votre e-mail soit bien configuré
Dans Account > My Contact Info (en principe vous faites cela à la première configuration de la box). Notez que si vous changez cet e-mail principal, il vous faudra saisir un code de validation reçu sur le nouveau email.

Toujours sur cet écran « My Contact Info », vous pouvez dans un premier lieu vous assurer que les notifications fonctionnent bien en allant dans l’onglet « Test Notifications ». Envoyez un e-mail de test et vous pourrez vérifier au bout de quelques minutes si vous l’avez bien reçu.

Vera e-mails configuration

Une spécificité de la Vera : l’envoi d’alerte par e-mail ne se configure pas comme paramètre d’un scénario ou comme conséquence du déclenchement d’un scénario : l’envoi d’e-mail se configure au niveau des déclencheurs d’un scénario.

Donc en créant votre scène, dans l’onglets « Triggers » (les déclencheurs), pour chaque déclencheur, après avoir configuré le déclencheur, vous avez la possibilité de cocher des utilisateurs à avertir lorsque l’évènement a lieu.

Si vous n’avez pas ajouté d’autres utilisateurs, vous ne verrez apparaître qu’un seul nom d’utilisateur, correspondant au compte principal relié à votre Vera Lite. C’est celui pour lequel vous avez configuré une adresse e-mail tout à l’heure.

Vera trigger e-mails

Donc, en l’occurrence, lorsque mon capteur 4 en 1 détecte un mouvement alors que la sécurité est armé, il m’enverra une notification par e-mail.

Le « Name for this trigger » est important, car il permet de connaître le contexte du déclencheur.
Donc si on utilise un même détecteur de mouvement dans plusieurs scénarios, on pourra savoir de quel scénario il s’agit grâce au nom du déclencheur.

Par exemple, si on a une scène « armement total » et une scène « armement partiel », on appellera différemment les triggers pour distinguer l’un de l’autre :
– « Détecteur de mouvement Porte Salon – armement partiel »
– « Détecteur de mouvement Porte Salon – armement total »

Et dans l’e-mail de notification, on n’aura que le trigger correspondant qui sera indiqué.

Envoyer des e-mails personnalisé via un serveur SMTP

Il y a une solution alternative qui consiste à utiliser l’onglet LUUP d’une scène pour envoyer un e-mail avec un serveur SMTP (Si le terme SMTP vous est étranger, sachez qu’il s’agit du type de serveur qui sert à envoyer des e-mails). Le LUUP
Dans ce cas, on utilisera l’envoi d’email déclenché lors d’un scénario. Les versions les plus récentes du firmware de la LUA intègrent entre autres cette fonction SMTP.

C’est une solution un peu plus technique car il faut avoir un serveur SMTP (généralement inclus dans les offres de base des fournisseur d’accès), et surtout avoir les coordonnées de celui-ci. Il faut aussi que le serveur ne soit pas en SSL (tous les tests ont été faits sur un serveur sans identification, donc je ne peux garantir que ça marche quand il faut une identification, même si à priori il faudrait juste ajouter un login et un mot de passe dans le code LUA).

Dans le début du code, on indique les infos nécessaires à l’utilisation du SMTP.
Le serveur SMTP est à indiquer à la place de smtp.monprovider.fr, avec le port correspondant dans la ligne du dessous (généralement, c’est 25).

Vous pouvez mettre les e-mails de votre choix dans Sending et Receiving, mais je vous conseille de mettre deux fois le votre, histoire d’éviter de répondre à quelqu’un par erreur (par exemple).

--
-- Script d'envoi d'e-mails Vera Lite - Planète Domotique
--

  local SMTP_SERVER = "smtp.monprovider.fr"
  local SMTP_PORT = "25"
  local USER_SENDING = "mon_email"
  local USER_RECEIVING = "mon_email"

local smtp = require("socket.smtp")

local from = USER_SENDING
local rcpt = {USER_RECEIVING}

Dans la suite, vous pouvez définir le sujet de l’e-mail, et surtout son contenu, que vous pouvez faire aussi intelligible et détaillé que vous le souhaitez !
N.B. : Si vous avez besoin de faire des guillemets droits, tapez un antislash juste avant pour les « échapper ».

Comme le suggèrent leur nom, la ligne « [highlight]subject_out[/highlight] » vous permet de définir le sujet, et « [highlight]message_out[/highlight] », le message. Vous avez la possibilité de faire des saut de ligne en tapant [highlight]\n[/highlight] et des tabulations en tapant [highlight]\t[/highlight]. Attention aux caractères accentuées et cédilles, ils risquent d’être mal affichés (réglage dépendant du client utilisé pour lire les e-mails).

local subject_out = "Message de la Vera Lite"

local message_out = "Alerte intrusion salon !"

local mesgt = {
               headers = {
                           to   = USER_RECEIVING,
                           from = from,
                           subject = subject_out
                         },
                body    = message_out
              }

local r, e = smtp.send{ from     = from,
             rcpt     = rcpt,
             source   = smtp.message(mesgt),
             server   = SMTP_SERVER,
             port     = SMTP_PORT
        }

Exemple d’un e-mail présenté sur plusieurs lignes et avec des guillemets (on reprend juste la ligne du message) :
[highlight]local message_out = « Message automatique de la Vera Lite\nLe detecteur de mouvement \ »Entree salon\ » se declenche\nMode d’alarme : alarme partielle. »[/highlight]

Cela donnera le message suivant :

Email envoyé par la Vera

Comme vous le voyez, il est donc très simple d’obtenir un message complétement personnalisé. Avec quelques connaissances en LUA, il est même possible d’utiliser des variables pour enrichir le message (l’heure de la Vera par exemple), d’utiliser le retour de la fonction smtp.send pour vérifier si l’e-mail a bien été envoyé, etc. Certains opérateurs mobiles proposent une adresse e-mail sur laquelle les emails envoyés vous sont transmis sous forme de SMS : l’envoi d’alertes SMS est une autre application de ce code !

D’ailleurs si vous avez des idées d’améliorations pour ce code, n’hésitez pas à les proposer en commentaires !

0
0
Pierre

Technophile, ludophile et bidouilleur dans l'âme, j'aborde les nouvelles technologies avec passion, curiosité et ouverture d'esprit. Je faisais partie de l'équipe de Planète Domotique de juin 2013 à mai 2017, d'où l'écriture de nombreux articles de blog pendant cette période.

Laisser un commentaire