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
- via plugin network : ping du routeur

quand le ping routeur passe a 0, ca declenche mon scenario d’audit actif
j’ai 2 scenarios pour le reboot :
- un hebdo
- un declenché suite a audit actif qui n’arrive pas a se remettre
les logs de l’audit, ca donne ca quand il est déclenché
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 ===");






