Oui c’est connu, mais toujours en cours d’analyse.
Surtout pas ! tu cassera encore plus le plugin.
Je pense pas, mais l’idée n’est pas de contourner le problème mais bien de l’isoler et de corriger.
Impossible a savoir car c’est l’user qui décide de l’auto-actualisation.
Copie/colle le code ci-dessous dans un bloc code d’un nouveau scénario puis exécute manuellement.
$search = 'Virtual'; // nom a rechercher
////////////////////////////////////////////////////////////////////////////////
/////////////////// NE PAS MODIFIER SAUF SUR DEMANDE ///////////////////////////
////////////////////////////////////////////////////////////////////////////////
$scenario->setLog('┌─────▶︎ Vérification EqType des commandes ───────────────');
$eqLogics = eqLogic::all();
$count = 0;
foreach ($eqLogics as $eqLogic) {
foreach (($eqLogic->getCmd()) as $cmd) {
if ($eqLogic->getEqType_name() != $cmd->getEqType()) {
$count++;
$scenario->setLog('| ' . $eqLogic->getEqType_name() . ' - ' . $cmd->getHumanName() . ' - ' . $cmd->getEqType());
//$cmd->setEqType($eqLogic->getEqType_name())->save();
}
}
}
if ($count == 0) $scenario->setLog('| [ OK ] Aucun mauvais EqType détecté.');
$scenario->setLog('└───────────────────────────────────────────');
$scenario->setLog('┌─────▶︎ Recherche du mot "' . $search . '" dans les blocs code ───────────────');
$count = 0;
$scenarioExpressionId = $this->getId();
$result = scenarioExpression::searchExpression($search, null, false);
foreach ($result as $expr) {
$expr = utils::o2a($expr);
if ($expr['id'] == $scenarioExpressionId || $expr['type'] != 'code') continue;
if (strpos($expr['expression'], $search)) {
$subElement = scenarioSubElement::byId($expr['scenarioSubElement_id']);
if (is_object($subElement)) {
$scenario2 = $subElement->getElement()->getScenario();
if (is_object($scenario2)) {
$count++;
$scenario->setLog('| ' . $scenario2->getHumanName() . ' ─▶︎ Contenu a vérifier manuellement.');
}
}
}
}
if ($count == 0) $scenario->setLog('| [ OK ] Pas détecté.');
$scenario->setLog('└───────────────────────────────────────────');
Celui-ci permet :
de ressortir en log les commandes qui ne portent pas le bon EqType.
de remettre le bon EqType si la ligne 14 est décommentée (déconseillé tant que le résultat n’a pas été posté puis analysé).
de rechercher le mot dans les bloc code des scénarios. Pour chaque scénario trouvé, il sera nécessaire de vérifier manuellement dans celui-ci l’existence du mot recherché.
Un grand merci pour votre aide ! Le problème est enfin résolu.
Il ne s’agissait pas d’un problème de nom de fichier sur le système de fichiers, mais d’une référence mal écrite dans un scénario.
En fouillant un peu plus, j’ai trouvé que le scénario [Ninguno][Sensores][estado_baterias_total] contenait un bloc de code qui appelait le mot « Virtual » (avec un V majuscule). C’est exactement ce qui provoquait l’erreur dans les logs tous les jours à 00:30.
J’ai corrigé cette référence dans le scénario et l’erreur a complètement disparu.
Encore merci pour vos pistes et votre réactivité !