Vous perdez de temps en temps votre connexion internet. Le moyen le plus courant pour résoudre ce problème est de couper l'alimentation de sa box internet. Je vais vous montrer comment on peut automatiser ça. Votre box jeedom peut tester périodiquement la connexion internet et rebooter votre box en cas de défaillance.
prérequis
- votre box jeedom est installée et vos modules associés.
- votre box jeedom est raccordée à votre box internet par un câble.
- vous connaissez les scénarios dans jeedom.
- 1 box jeedom 1 relais (pour ma part j'utilise les modules Fibaro FGS 221) 1 box internet
->repérer le câble d'alimentation de votre box internet, il est double (un fil pour le + et un autre pour le -).
La tension est de l'ordre de 12V en courant continu.
->sectionner le fil moins et faites le passer par votre relais
les scénarios
un 1er scénario de type "code" va "pinger" le site web google, si la connexion est perdue un 2eme scénario de type "code" va rebooter la box en pilotant son relais d'alimentation.
1er scénario programmé toutes les minutes:
Code : Tout sélectionner
$socket = @fsockopen("www.google.com", 80);
//$socket = @fsockopen("192.168.1.1", 80);
//si on a perdu la connexion
if ($socket === false)
{
//echo "failed";
log::add('Code','[debug]','connexion internet perdue');
//statut du scénario qui reset la box
$monscn=$scenario->byId(16);
//getState renvoi in progress ou stop pour le scénario considéré
log::add('Code','[debug]','execution du reboot de la box?: '.$monscn->getState());
//si la box n'est pas en train de reseter
if($monscn->getState()=="stop")
{
//executer le scénar reset box
$scenario2 = scenario::byId(16);
$scenario2->launch();
}
}//fin du 1er if
//si la box reset ou si on a la connexion, on ne fait rien
else {
// log::add('Code','[debug]','connexion ok');
}
Code : Tout sélectionner
//on1 id 45
//off1 id 46
//etat1 id 47
//mise à off
$cmd=cmd::byId(46);
$result=$cmd->execCmd();
//récupération de l'état du switch
$cmd=cmd::byId(47);
$etat1=$cmd->execCmd();
//tempo permettant de laisser le switch passer à off
sleep(3);
if($etat1==0)
{
log::add('Code','[debug]','box éteinte');
//tempo permettant de faire chuter la tension
sleep(3);
//mise à on
$cmd=cmd::byId(45);
$result=$cmd->execCmd();
//tempo permettant de retrouver @. On retrouve la connexion après 3min environ
sleep(180);
log::add('Code','[debug]','box redémarrée');
}