Actualités | Audio/Vidéo | Evènements | DIY | Domotique | Informatique | Maison | Mobile | Sécurité

Monitorez votre réseau local et votre connexion Internet

Envoyer Imprimer PDF
Note des utilisateurs: / 11
MauvaisTrès bien 

C'est assez rare, mais il arrive que mon routeur ou ma connexion Internet plantent. Si vous êtes à la maison, vous diagnostiquez rapidement la panne et vous redémarrez. Mais à la veille des vacances, on veut être sur que sa maison restera accessible depuis l'extérieur. Je vous propose aujourd'hui un article sur ce sujet.

Je possède un routeur Netgear et une Freebox pour gérer mon réseau local. Les deux sont pilotés par deux relais de ma carte IPX800 Pro. Regardons comment optimiser tout celà ...

La carte IPX800PRO est au coeur de ma domobox que je vous ai déjà présenté dans un précédant article. 6 de ses relais sont utilisés pour redémarrer les appareils les plus importants de mon installation.

Pour monitorer mon réseau, j'utilise un PC linux qu'on voit sous la box Vera. Il s'agit d'un Eeepc avec une distribution debian qui gère mes scripts qui sont trop compliqués pour être implémentés dans une box de domotique classique.

J'ai donc écrit ce script (avec l'aide et l'expérience d'arno) pour redémarrer mon routeur ou ma freebox lorsqu'une panne est détectée. Ce script est en php, je le planifie toutes les 15 minutes via la crontab de mon PC linux.

Dans ce script, on trouve plusieurs choses:

  • Des ping pour voir si les équipements répondent
  • Un redémarrage des équipements via la carte IPX800PRO
  • Un rapport qui se complète à chaque reboot. Je vous montre plus tard comment on peut afficher ce rapport via l'eedomus.

Dans le script ci-dessous, on voit que les urls IPX800PRO sont doublées. Il s'agit d'une astuce pour que le script soit plus robuste.

<?php
// -------------------------------------------------------------------------------------
// Domotics
// DHAS-monitor-net.php
// 24 Juillet 2012
// -------------------------------------------------------------------------------------
// Changes
// v1.0.1 - Génération d'un report HTML
// v1.0 - Vérifie le reseau et reboot les équipements à problème
// -------------------------------------------------------------------------------------

header('Content-Type: text/plain');
// Functions
function generateReport($level,$msg) {
$fp = fopen('/home/domotics/wwwroot/dhas-cache/dhas-monitor-net.htm', 'a');
fwrite($fp, '<p style="font-size:9px; font-family:verdana;">'.date("Y/n/j").";".date("H:i:s").";".$level.";".$msg.'</p>');
fclose($fp);
return 0;
}

// Vérifie que le routeur répond ou reboot du routeur via IPX800 (port n°1)
echo "Ping Routeur WNDR3700 ...\n";
$shellOutput = trim(shell_exec('ping -s 1 -c 1 192.168.1.1 > /dev/null; echo $?'));
if ($shellOutput != 0) {
echo "Routeur KO Trying to reboot ...\n";
$content = file_get_contents("http://192.168.1.125/preset.htm?RLY1=1&delay=1000");
generateReport('CRITICAL','Redémarrage forcé du routeur');
echo "WNDR3700 REBOOTED.\n";
echo ".\n";
//RLY1=1&delay=100
exit(1);
}
echo "WNDR3700 OK.\n";
echo ".\n";

// Vérifie que la Freebox et reboot de la Freebox via IPX800 (port n°2)
echo "Ping INTERNET ...\n";
echo "Ping Yahoo ...\n";
$shellOutput1 = trim(shell_exec('ping -s 1 -c 1 www.ahoo.fr > /dev/null; echo $?'));
echo "Ping Google ...\n";
$shellOutput2 = trim(shell_exec('ping -s 1 -c 1 www.google.fr > /dev/null; echo $?'));
echo "Ping Free ...\n";
$shellOutput3 = trim(shell_exec('ping -s 1 -c 1 www.free.fr > /dev/null; echo $?'));
if (($shellOutput1 != 0) && ($shellOutput2 != 0) && ($shellOutput3 != 0)) {
echo "INTERNET KO Trying to reboot ...\n";
$content = file_get_contents("http://192.168.1.125/preset.htm?led2=1");
sleep(1);
$content = file_get_contents("http://192.168.1.125/preset.htm?led2=1");
sleep(4);
$content = file_get_contents("http://192.168.1.125/preset.htm?led2=0");
sleep(1);
$content = file_get_contents("http://192.168.1.125/preset.htm?led2=0");
generateReport('CRITICAL','Redémarrage forcé de la Freebox');
echo "INTERNET RESTARTED.\n";
echo ".\n";
exit(1);
}
echo "INTERNET OK.\n";
echo ".\n";
?>

Voici un exemple de la crontab que j'utilise. Le script dhas-monitor-net.php est celui que je viens de vous proposer. Dans la crontab, il est sur la dernière ligne.

Maintenant, il faut créer un périphérique HTML sur l'eedomus afin d'afficher le rapport des derniers reboots forcés. Il faut indiquer l'url du rapport.

Ensuite, on peut consulter l'information via l'eedomus.

Ce nouveau type de périphérique HTML est une nouveauté eedomus. Depuis sa dernière mise à jour, il est possible d'afficher des informations d'une application tierce (Balance Withings, Caméras, ...). Celà permet d'avoir qu'un système en interface principale. Celà évite de naviguer et de saisir plusieurs mots de passe pour faire le tour de votre maison.

 

En conclusion

Depuis que j'ai laissé tomber Homeseer, je n'ai pas trouvé une box capable de reprendre mes scripts les plus spécifiques. J'ai donc décidé de monter un petit PC linux pour ca. Mais on peut utiliser d'autres machines comme un NAS, un raspberry ou un routeur.

J'ai en tête quelques nouveaux scripts que je vous proposerais sur le même format : fichier php avec rapport pour intégrer les résultats dans une page web.

Je remercie Arno qui a partagé sa connaissance sur le sujet puisqu'il utilise ce type de script chez lui depuis de longs mois.

 

Cet article vous est proposé par Domotics: Domotics habite dans la région Toulousaine. Il est ingénieur en informatique et électronicien amateur. La domotique est pour lui une passion qu'il pratique depuis 1999. En 2003, il décide de partager ses expériences sur le magazine et le forum de touteladomotique.com.

En 2014, il crée sa société de conseils en Domotique ID2domotique.com et sa boutique en ligne laboutiquededomotique.com pour promouvoir la domotique sur mesure ... Profitez de l'expérience et l'expertise de Domotics en faisant appel à ses nouveaux services.

 

Mise à jour le Mercredi, 15 Août 2012 17:03  

Ajouter un Commentaire


Code de sécurité
Rafraîchir

Recherche

Les Flux RSS de TLD
Instagram

Produits Partenaires

GCE Electronics est partenaire de Touteladomotique.com RFXCOM.com est partenaire de Touteladomotique.com



Liens Utiles

Boutiques Partenaires

Liens Utiles

Un don pour TLD ?

Pourquoi faire un don ?

Publicité

Espaces publicitaires à louer
Contactez-nous

Connexion