Lancer un scénario si ping 8.8.8.8 ne répond plus depuis quelques minutes?

Bonjour,
J’ai souvent une ligne instable chez moi. Et il m’est arrivé plusieurs fois de devoir rebooter mon routeur pour récupérer la connexion internet. Seulement quand je ne suis pas chez moi c’est compliqué. J’ai donc acheté une prise connectée que j’ai mis sur mon routeur.

Je voudrais faire un scénario qui éteint et allume la prise quand le ping internet ne fonctionne plus depuis X minutes.

Savez vous comment je peux faire? Je ne sais pas comment le créer.

Un grand merci d’avance,
C.

Scénario programmé toute les 10mins

Bloc code ping puis setTag pingok ou pingnok

Ensuite un SI tag(bibi) = pingnok redémarre prise off puis dans 1 prise on

Ou un scénario provoqué sur la perte du ping.
Et dans le scénario, tu fais un bloc Dans X min
restester le ping. Si toujours KO tu éteins / allumes la prise.

Justement comment je lance un scénario provoqué sur la perte de ping? via un plugin?

En mettant en déclencheur ce qui teste le ping !

Oui, moi j’utilise le plugin Network.
Et ensuite la commande Statut me donne l’état du ping.

Hello
j’ai exactement ton soucis que j’ai ,résolu avec 2 scénarios (Is ne sont pas de moi à l’origine, je les avaient trouvé lors de mes débuts sur Jeedom, il y a quelques anneés :grinning:)
Mais que j’ai peaufiné
Le premier (Toutes les 5 ou 10 mn comme le préconise Kiboost) pour la vérification

$socket = @fsockopen("www.google.com", 80);
$Ex_Etat = $scenario->getData('Etat_Internet');

if ($socket === false) {  
    $Nouv_Etat=0;
} else {
    $Nouv_Etat=1;
}
 	
if ($Nouv_Etat != $Ex_Etat) {	
	#si on a perdu la connexion
	if ($socket === false) 
  		{
  		$scenario->setLog('Code : ' .'Connexion internet perdue');
  		#statut du scénario qui reset la box
  		$monscn=$scenario->byString('#[Systeme][Net][Reset_Box]#');
  		#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::byString('#[Systeme][Net][Reset_Box]#');
			$scenario2 ->launch();
    		}
		$scenario->setData('Etat_Internet', '0'); # Mise à jour de la variable Etat_Internet
  		}#fin du 1er if
	#si la box reset ou si on a la connexion, on ne fait rien
	else {
		$scenario->setLog('Code : ' .'Connexion internet Ok');
		$scenario->setData('Etat_Internet', '1'); # Mise à jour de la variable Etat_Internet
	}
}

Qui lance un second qui s’occupe du redémarrage

#mise à off
$cmd=cmd::byString('#[Technique][Prise_TPLink][Off]#');
$result=$cmd->execCmd();

sleep(3); #tempo permettant de laisser le switch passer à off

#récupération de l'état du switch
$cmd=cmd::byString('#[Technique][Prise_TPLink][Etat]#');
$etat1=$cmd->execCmd();

if($etat1==0)
  {
  $scenario->setLog('Code : ' .'TPlink éteint');
  sleep(3);                #tempo permettant de faire chuter la tension
  $cmd=cmd::byString('#[Technique][Prise_TPLink][On]#');     #mise à on
  $result=$cmd->execCmd();
  sleep(180);              #tempo permettant de retrouver @. On retrouve la connexion après 3min environ
  $scenario->setLog('Code : ' .'TPlink redémarré');
  }
2 « J'aime »

ok merci je vais regarder ça.

J’ai fait une modif pour ne pas inscrire les log à chaque vérification, mais je voie une conn…ie.
Je corrige cet am.
EDIT : Le code est corrigé

sinon sans code

avec le plugin Network : j’ai un équipement ‹ Google › qui me permet de connaitre l’état de la connexion
image

que j’utilise ensuite dans un scénario :

si statut est à 0 (donc pas de connexion) => je force le rafraichissement et atteint 1 sec. 
Si statut est à 1 et qu'il n'y a pas de reboot en cours : 
   - petite log 'tout va bien'
sinon : 
  - si pas de reboot en cours : 
      - je créé/modifie une variable pour dire qu'on initie un reboot
      - je switch ma prise à OFF
      - J'attends 1 min puis je switch la prise à ON 
           - j'attends ensuite 3 min (le temps que la box reboot) puis je passe la variable reboot à 0 pour dire que c'est fini

sympa votre idée mais attention. il faudrait pas faire une mise hors tension pendant une mise à jour de la box ce qu’elle pourrait ne pas aimer. peut-être prévoir, lors d’un retour de statut NOK, refaire un test 10/15 minutes après ou ne pas testé le ping 8.8.8.8 sur la plage horaire des mise à jour afin d’éviter un redémarrage pendant la mise à jour