Bonjour
Cela est normal quand on redémarre, j’ai le même comportement que toi et j’ai trouvé une solution.
En créant un scénario suite à un redémarrage afin de repasser certaine cde en fonction de mes
besoins et éviter des comportements aléatoires ou des ruptures domotique.
Les datas comme tu dis sont vides donc il faut forcément et réactiver soit 0 soit 1, voici je que j’ai fait en automatique via scénario, attention moi je suis en débian 12 jeedom 4.6.1, mais si tu t’aide de gémini par exemple, tu devrais t’en sortir, tout est imaginable.
maintenant mes codes
Le premier sert à vérifier depuis combien de temps le raspeberry à démarrer pour ne pas lancer le scénario quand jeedom fait une mise à jour ou un rédémarrage système. pour le restes tu vas vite comprendre. Un pour les infos, un pour les actions à faire (replacer les datas) et après je relance mes scénarios que j’ai besoin.
// Lecture directe du fichier /proc/uptime via PHP
$uptimeContent = file_get_contents('/proc/uptime');
$uptimeArray = explode(' ', $uptimeContent);
// On récupère le premier nombre (secondes) converti en nombre entier
$uptimeSeconds = intval($uptimeArray[0]);
// Affectation du tag pour les bloc(s) du scénario
$tags = $scenario->getTags();
$tags['#uptime_seconds#'] = $uptimeSeconds;
$scenario->setTags($tags);
// Saisissez ici les IDs info de tous les virtuels que vous voulez réinitialiser
// Séparés par des virgules
$ids_des_virtuels = array(446, 435, 438, 436, 434,449, 450, 454, 447, 448, 452, 453, 459, 460, 463, 465, 461, 462, 464, 466, 485, 584, 613, 587, 586, 583, 582, 548, 551, 552, 553, 554, 555, 556, 557, 381, 382, 383, 241, 456);
// Boucle sur chaque virtuel de la liste
foreach ($ids_des_virtuels as $id_virtuel) {
$eqLogic = eqLogic::byId($id_virtuel);
if (is_object($eqLogic)) {
$scenario->setLog("--- Début RAZ Virtuel : " . $eqLogic->getName() . " (ID: " . $id_virtuel . ") ---");
// Récupération de toutes les commandes du virtuel en cours
$cmds = $eqLogic->getCmd();
foreach ($cmds as $cmd) {
// On ne cible que les commandes de type "Info"
if ($cmd->getType() == 'info') {
$cmd->event(0);
$scenario->setLog(" -> Info [" . $cmd->getName() . "] remise à 0.");
}
}
} else {
$scenario->setLog("Erreur : Impossible de trouver l'équipement Virtuel avec l'ID " . $id_virtuel);
}
}
// 1. Liste des IDs des commandes ACTION à exécuter
// Vous pouvez ajouter ou supprimer des IDs ici, séparés par des virgules
$ids_actions = array(8050, 8079, 8086, 8093, 8100, 8114, 8121, 8107, 9962);
// 2. Boucle pour exécuter chaque commande action
foreach ($ids_actions as $id) {
try {
// Récupération de l'objet commande par son ID
$cmd = cmd::byId($id);
if (is_object($cmd)) {
// On vérifie bien que c'est une commande de type "action" avant de l'exécuter
if ($cmd->getType() == 'action') {
// On exécute l'action
$cmd->execute();
$scenario->setLog("Action ID " . $id . " [" . $cmd->getHumanName() . "] exécutée avec succès.");
} else {
$scenario->setLog("ID " . $id . " : Erreur, cette commande n'est pas de type 'action' (c'est une " . $cmd->getType() . ").");
}
} else {
$scenario->setLog("ID " . $id . " : Erreur, l'ID n'existe pas.");
}
} catch (Exception $e) {
$scenario->setLog("ID " . $id . " : Erreur lors de l'exécution : " . $e->getMessage());
}
}
J’ai fait pas mal de scénario pour la maintenance automatique ou manuel via ma tablette design afin de ne pas ouvrir l’ordi à chaque fois, et aujourd’hui je suis de moins en moins dépendant de l’ordi même quand je redémarre mon raspberry pour un dépoussiérage.
Evidemment cela demande un peu de taf, mais une fois fais, c’est un régal.
Demande à gémini de vérifier les codes et de les corriger en fonction de ta version.
Pour arriver à cela, un conseil, prend un papier et un crayon et note ce que tu veux en automatique
et les ids concernés, les actions à faire, bref un cahier des charges et dès qu’il te semble que tu
n’aura rien oublié au bout d’une paire de jours, tu pourras œuvrer, car tu risque de perdre du temps et de ne plus savoir ce que tu voulais faire ou ne pas faire.
Bonne journée