Après avoir vu dans l'article comment installer Raspbian sur un
RaspberryPi on continue ici dans la préparation du RaspberryPi
pour contrôler des dispositifs et envoyer un compte-rendu
par mail ou SMS.

I- L'envoi de mail

 

1) exim4 est-il installé et configuré ?

Je me suis inspiré de cet article et comme j'ai un compte gmail tout roule.
En ligne de commande on peut envoyer un mail :
gerard@raspberry:~$ echo "le corps du message" | mail -s "le sujet" gerard@raspberry
gerard@raspberry:~$


Et le mail est envoyé à gerard et comme celui-ci dans /etc/aliases est aiguillé vers une adresse email
extérieure le mail est envoyé à l'extérieur.

2) Envoyer un mail par un script en php

Comme dans le précédent article nous avons installé apache2 et php5 nous pouvons écrire
des scripts php, et il existe une fonction mail() donc c'est parfait.
Petite chose : comme les mails sont envoyés en tant que www-data
il peut être utile de faire un alias dans /etc/aliases pour www-data vers l'adresse de l'utilisateur gerard.
Cet utilisateur gerard s'appelle pi si vous n'avez rien changé.
La partie du script qui nous intéresse :
$message = 'Ce message est envoyé depuis le RaspberryPi de G. Blanchet à '.date('H').'h'.date('i').'mn
par un script PHP

Cordialement
Gerard';

$to = 'gerard@raspberry';
$subject = 'message de Gerard';
$headers = 'From: Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.' . "\r\n" .
'Reply-To: Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);


Vous remarquerez qu'on peut dater le message. On doit aussi pouvoir envoyer des variables dans ce message.
La variable $headers est facultative.

II- Envoyer un SMS par un script en PHP

La solution que j'ai trouvée est indiquée ici et nécessite d'ouvrir un compte chez OVH et d'acheter des SMS.

Bon j'en ai acheté 100 pour 9€57 TTC, disponible le lendemain de la demande. On n'aura pas 98 (2 grillés pour les essais)
incidents signalés par le raspberry.

Dès lors le script PHP gardant toujours le même $message devient :

$to = 'Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.';
$subject = 'sms-xxxxxxx-1:gblanchet:12345678:BLANCHET:+33612345678';
mail($to, $subject, $message);

gblanchet est l'utilisateur créé dans Gérer les utilisateurs de l'interface du manager OVH
et 12345678 est son mot de passe (8 caractères alphanumériques).
BLANCHET est le compte expéditeur créé dans Gérer les expéditeurs.

J'ai créé un compte expéditeur Raspberry (personnalisé) mais il n'est pas encore validé.

Et le numéro où envoyer le message au format international (pas de 0 devant le 6 -bon il semble
que des portables aient maintenant autre chose que 06-). Inutile d'appeler 0612345678 ce n'est pas mon numéro!!

OVH signale les erreurs dans des rapports mais aussi si tout s'est bien passé :

Une erreur :

Referer: 2013020710583617489
Statut: 202
Message: Invalid argument: d'Utilisateur et / ou le mot de passe n'est pas bon

Pour plus d'informations: http://guides.ovh.com/EmailToSms

Tout s'est bien passé :

Referer: 2013020711053518120
Statut: 100
Message: Envoyé avec succès

Et l'interface du manager OVG tient l'historique des envois qu'on peut sauvegarder dans un fichier .csv :
date;sender;receiver;message;status
"20130207103917";"BLANCHET";"+33612345678";"coucou depuis ovh";"sent"
"20130207110558";"BLANCHET";"+33612345678";"Ce message est envoyé depuis le RaspberryPi de G. Blanchet à 11h05mn \npar un script PHP\nSTOP:36111";"sent"

On empêche le "STOP:36111" en rajoutant les champs :::1 à la fin du $subject (les champs DateEnvoi ClasseSMS étant vides et NoStop à 1)

III- Passer les ordres au script.

Le fichier qui contient les commandes d'envoi de mail ou de SMS s'appelle yuri.php
inspiré du blog d'Idleman

http://blog.idleman.fr/?p=1788

Depuis votre navigateur web taper :
http://192.168.1.13/yuri.php?action=SEND_MESSAGE
pour envoyer un email
et pour envoyer un SMS :
http://192.168.1.13/yuri.php?action=SEND_SMS
sans passer par la synthèse de voix Yuri

A suivre ....ToDo

  • Faire une page web sur le Raspberry pour surveiller et commander les dispositifs
  • Accéder à cette page web depuis un Android à distance