REX - comment redémarrer sa jeedom en auto en dernier recours - mon cas "Souci réseau détecté, redémarrage du réseau. Aucune gateway de trouvée"

il existe de nombreux messages aux sujets d’erreurs qui nécessitent un redémarrage jeedom pour au moins solutionner le problème de façon courtermiste quand on n’arrive pas à trouver la vrai raison du problème.

c’est mon cas, de temps en temps, ma jeedom luna devient inaccessible, après reboot manuel, je trouve dans les logs « Souci réseau détecté, redémarrage du réseau. Aucune gateway de trouvée ». c’est carrément bloquant quand je ne suis pas à la maison. cela se traduit aussi par le fait que ma luna disparait du reaseau interne de la maison. j’ai un routeur wifi mesh. la luna disparait simplement. tous mes autres appareils restent bien connectés.

j’ai fini par combiner les infos de plusieurs messages pour en arriver à la conception de ce bloc code (non je ne suis pas développeur, j’ai utilisé l’IA pour corriger)

j’utilise aussi 2 plugin pour m’'aider

  • network pour faire un ping régulier de mon routeur et détecté quand je le perd
  • monitoring pour avoir accès a différentes information dont le uptime

le bloc code contient 4 points clés

  • détecte la perte de param wifi ou acces routeur
  • se met en audit active quand l’un des points est en echec pendant max 30 min
  • reboot max une fois par heure (une sécurité pour moi)
  • inscrit le reboot dans un log

en espérant que cela aide les personnes en galères

dans le détail ce que j’ai fait

  • via plugin monitoring, suivi du « uptime » (durée depuis dernier reboot
    → il y a 2 valeur de uptime, j’affiche la valeur interprété sur mon dashboard mais j’utilise la valeur en seconde dans le bloc code

j’ai 2 scenarios pour le reboot :

ci -dessous le bloc code de mon scenario test ping

// --- Début du contrôle réseau ---
$scenario->setLog("=== Début du contrôle réseau ===");

// Récupération des valeurs initiales
$ssid = cmd::byString("#[Tech][Luna][SSID du wifi 1]#")->execCmd();
$routeur = cmd::byString("#[Tech][Routeur][Statut]#")->execCmd();

$scenario->setLog("SSID actuel : " . $ssid);
$scenario->setLog("Statut routeur : " . $routeur);
log::add('Network-checker', 'info', "Début du contrôle : SSID='$ssid' | Routeur=$routeur");

// Vérifie si déconnecté du bon Wi-Fi ou si routeur KO
if ($ssid != 'Wi-Fi maison' || $routeur == 0) {
    log::add('Network-checker', 'warning', "Anomalie détectée : SSID='$ssid' | Routeur=$routeur");
    $scenario->setLog("Anomalie détectée, début de l'attente...");

    // On attend 30 minutes max un retour à la normale
    $start = time();
    while ((time() - $start) < 1800) { // 1800 = 30 min
        sleep(60);
        $ssid = cmd::byString("#[Tech][Luna][SSID du wifi 1]#")->execCmd();
        $routeur = cmd::byString("#[Tech][Routeur][Statut]#")->execCmd();
        $scenario->setLog("Vérif pendant attente : SSID='$ssid' | Routeur=$routeur");

        if ($ssid == 'Wi-Fi maison' && $routeur == 1) {
            log::add('Network-checker', 'info', "Connexion revenue pendant l’attente : SSID='$ssid' | Routeur=$routeur");
            $scenario->setLog("Connexion revenue, fin du scénario.");
            return; // on sort
        }
    }

    // Toujours KO après 30 min → reboot direct
    log::add('Network-checker', 'error', "Pas de connexion après 30 min. Redémarrage de Jeedom Luna.");
    $scenario->setLog("Pas de connexion après 30 min, redémarrage de Jeedom Luna...");

    // Vérifie l’uptime avant de redémarrer.uptime exprimé en h (valeur en sec/3600)
	$uptime = cmd::byString("#[Tech][Luna-monitoring][Uptime (Sec)]#")->execCmd() / 3600;
    $scenario->setLog("Uptime actuel : $uptime heures");

    if ($uptime > 1) {
        log::add('Network-checker', 'error', "Reboot Luna déclenché (uptime = $uptime h)");
        $scenario->setLog("Reboot Luna déclenché (uptime = $uptime h)");
        //system::reboot();
        $scenario_restore = scenario::byId(114);
		if (is_object($scenario_restore)) {
    		$scenario->setLog("Exécution du scénario 'auto reboot'");
    		log::add('Network-checker', 'info', "Exécution du scénario 'auto reboot'");
    		$scenario_restore->launch();
}
      ;
    } else {
        log::add('Network-checker', 'warning', "Reboot non effectué (uptime trop court : $uptime h)");
        $scenario->setLog("Reboot non effectué : uptime trop court ($uptime h)");
    }

} else {
    log::add('Network-checker', 'info', "Connexion OK : SSID='$ssid' | Routeur=$routeur");
    $scenario->setLog("Connexion normale détectée, aucun reboot nécessaire.");
}

$scenario->setLog("=== Fin du contrôle réseau ===");
2 « J'aime »

Bonjour,
Code inutilisable.
Il doit obligatoirement être mis dans un Texte préformaté
image
Sur une nouvelle ligne, tapez Ctrl+e puis Ctrl+v pour coller le code.

Edit: Merci Fabrice pour la correction du formatage du code

ok, merci @jpty pour l’info, @Fabrice pour la correction

1 « J'aime »

Merci pour le partage de ton script :wink:

Cela dit, je suis quand même surpris par ces soucis de perte de réseau régulières …
Tu n’a pas de souci hardware sur la machine qui héberge ton jeedom ou sur ta box internet ?

1 « J'aime »

bonjour @Aurel , j’ai raté ton message.
bien difficile de répondre a ta question. j’ai déeplacé ma jeedom luna, depuis j’ai moins d’erreurs. peut etre des erreurs dans le signal wifi.

REX mis à jour en déc2025

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.