Envoyer des SMS gratuit avec la Fox Board G20

08 nov Envoyer des SMS gratuit avec la Fox Board G20

Ma FoxBoard G20 va me servir de serveur domotique. Et à ce titre, elle pourra m’envoyer des sms gratuitement !


Ma domotique étant loin d’être opérationnelle ;o)
J’utilise cette technique pour m’alerter de l’état de mon serveur dédié.
L’envoi de l’email est légèrement décalé (1 minute), mais c’est pas vraiment gênant pour mon utilisation.

Pré-requis pour envoyer des SMS depuis la FoxBoard G20

Pour envoyer des SMS, nous allons avoir besoin de :

  • D’un compte google.
  • La carte Fox Board G20
  • quelques classes php

Google Calendar

Ouvrir un compte sur Google Calendar.

Une fois ce dernier ouvert, le configurer
Dans le menu de gauche, cliquez sur « Paramètres » puis « Notifications ».

Dans la fenêtre des options de notification, cliquer sur : « Configurez votre mobile pour recevoir des notifications ».
Saisir le numéro de téléphone puis cliquer sur « Envoyer le code de vérification ».

Dans la page de Notification, choisissez un rappel via SMS 5 minutes avant chaque évènement.

Les classes php

Vous pouvez récupérer les classes ici : Classe php SMS (531)
Copiez le répertoire « classe » dans celui de la Fox Board G20 : « /var/www/localhost/htdocs »

Ensuite le répertoire « /var/www/localhost/htdocs », créez un fichier : sms.php

#!/usr/bin/php -q
<?php
include "classe/GoogleCalendarWrapper.php";
$gc = new GoogleCalendarWrapper("<votre email>", "<votre mot de passe>");

if($argc != 3)
{
echo "Mauvaise syntaxe:\n php $argv[0] titre message \n";
exit;
}
else
{

// On capture le temps actuel + 6 minutes
$now = date(‘H:i:s’,strtotime(‘-1 hour + 6 minutes’));
// On lui ajoute 15 sec pour la fin de l’évènement
$now5sec = date(‘H:i:s’,strtotime(‘+ 15 seconds’));

$s = array();
$s["title"] = "<titre de votre message>";
$s["content"] = "";
$s["where"] = "<contenu de votre message>";
$s["startDay"] = date("Y-m-d");
$s["startTime"] = $now;
$s["endDay"] = date("Y-m-d");
$s["endTime"] = $now5sec;

if($gc->add_event($s))
echo "Evenement: ‘".$s["title"]."’ envoie [ Ok ]\n";
else
echo "Erreur\n";
}
?>

Ce fichier sms.php va nous permettre de créer un évènement sur votre calendrier Google.
Il utilise les classes GoogleCalendarWrapper.php et MonCurl.php

Pour mon utilisation actuelle, j’ai rajouté la classe curl.php (contenu dans le zip au dessus).
Cela me permet de vérifier l’accessibilité de mon site et donc le bon fonctionnement du serveur.
Voici le fichier TestServeur.php

#!/usr/bin/php -q
<?php
include "classe/curl.php";
include "classe/GoogleCalendarWrapper.php";

$cURL = new mycurl("<url du site à controler>");
$cPost = $cURL->createCurl();

if ($cURL->getHttpStatus()<>200)
{
$cURL2 = new mycurl("http://www.google.fr");
$cPost2 = $cURL2->createCurl();
if ($cURL->getHttpStatus()==200)
{
$gc = new GoogleCalendarWrapper("<votre email>", "<votre mot de passe>");

// On capture le temps actuel
$now = date(‘H:i:s’,strtotime(‘-1 hour + 6 minutes’));
// On lui ajoute 15 sec
$now5sec = date(‘H:i:s’,strtotime(‘+ 15 seconds’));

$s = array();
$s["title"] = "Serveur Web";
$s["content"] = "";
$s["where"] = "Serveur Web HS";
$s["startDay"] = date("Y-m-d");
$s["startTime"] = $now;
$s["endDay"] = date("Y-m-d");
$s["endTime"] = $now5sec;

$gc->add_event($s);
}
}
?>

Utilisation des tâches CRON de la Fox Board G20

Pour créer un tâche cron qui testera le fonctionnement du serveur toute les minutes, nous allons passer par Webmin.

Cliquez sur « Système », « Tâches cron » puis « Créer une nouvelle tâche cron programmée ».
La tâche sera exécutée en tant que « root ».
la commande est « php /var/www/localhost/htdocs/lucie/TestServeur.php »

Il ne reste plus qu’à définir la période de déclenchement de la tâche puis à cliquer sur « Créer »…

Côté Serveur dédié, j’ai effectué le même travaille mais avec une exécution de la tâche au boot.

Be Sociable, Share!
7 Comments
  • Yoann
    Posted at 23:13h, 08 novembre Répondre

    Héhé, super utilisation du Calendrier Google.
    Je me cassais la tête à faire communiquer ma fox avec un modem, mais avec google calendar c’est carrément plus simple en effet !

    • admin
      Posted at 09:48h, 09 novembre Répondre

      Les classes sont améliorables… (curl et MyCurl peuvent n’en faire qu’une)
      Mais c’est fonctionnel tel que ;)

      > Je me cassais la tête à faire communiquer ma fox avec un modem
      Yoann, C’est ce que je viens de voir « Interface gsm sur carte fox et envoi de sms »
      L’avantage de passer par un GSM, c’est d’envoyer le sms en direct sur le destinataire de ton choix.
      Et pas besoin d’une connexion à Internet ;)

  • Yoann
    Posted at 00:11h, 10 novembre Répondre

    J’essaierai ton idée à l’occasion ;)

    Sinon effectivement, le GSM a ses avantages. Mais pour ça il faut trouver un modem (qui n’est pas forcément donné), ou un téléphone portable qui puisse se commander en série, et une carte SIM. Ça revient assez cher :/
    Maintenant on a même accès à la 3G assez facilement, ce qui est tout de même plus pratique à interfacer que le réseau GSM.

  • Geobot
    Posted at 07:27h, 01 novembre Répondre

    bonjour les développeurs,
    Effectivement je trouve cette solution excellente car elle permet en quelques clics de paramétrer votre compte Google!!!
    Rapide et très économique comme l’a précisé Yoann.
    Passionné de robotique et domotique, je viens tout juste de créer un blog sur mon serveur domotique basé sur une LX832 et je viens de recevoir la G20 en test actuellement. Vos sites sont géniaux et me donne de bonnes idées. Bonne continuation dans vos projets et j’essaie de faire participer sur mon blog mes avancées mais le temps me manque.
    @+

    • Benchi
      Posted at 08:43h, 01 novembre Répondre

      Bonjour,

      Nous avons tous ce soucis de temps ;)
      Les journées devraient faire un peu plus de 24 heures…

  • Geobot
    Posted at 18:12h, 28 novembre Répondre

    Salut,
    Je viens d’essayer d’implémenter ton code dans ma carte et rien ne fonctionne, j’ai des erreurs de partout et en plus je découvre le PHP!!! Y a t’il quelques chose a installer dans la G20??? J’essaie de débuguer mais si tu as des infos pour m’aider ca serait super. J’ai acheté la G20 avec la carte SD déja installé chez lextronic. Et pour finir il semble que webmin ne soit pas présent dans ma carte, faut il l’activer, l’installer ou flasher ma carte SD???
    Merci d’avance.
    Géobot

  • Benchi
    Posted at 20:19h, 28 novembre Répondre

    je ne peux te donner énormément d’aide…
    Webmin était déjà installé sur la SD.
    Mais il doit être possible de l’installer si ce n’est pas le cas.

Post A Comment