@JAG je te sollicite sur les conseils de @mika-nt28
Bonjour,
Je te contacte à propos de ton Plugin
Je suis sur un RPI3 Buster uptodate avec un jeedom uptodate
J’ai un comportement bizarre à t’exposer et aimerais avoir ton avis, avant de faire une exception dans mon script de scénario.
Afin de surveiller l’état des démons des plugins actfs, toutes les 5min, j’exécute ceci :
//Vérification des dépendances et daemon des plugins en fonctionnement
$messageGlobal='Vérification des dépendances et daemon des plugins en fonctionnement|';
$messageGlobal=str_replace("|","\n",$messageGlobal);
$scenario->setLog($messageGlobal);
$b_result=0;
// pour chaque plugin activé de votre jeedom
foreach (plugin::listPlugin(true) as $plugin)
{
if ($plugin->getHasDependency())
{
$dependency_info = $plugin->dependancy_info();
if ($dependency_info['state'] != 'ok')
{
// c'est pas OK
$b_result=1;
$message='Dependances : 🆘 '.$plugin->getName().' ('.$plugin->getId().') |';
$message=str_replace("|","\n",$message);
$messageGlobal.=$message;
$scenario->setLog($message);
}
}
if ($plugin->getHasOwnDeamon())// && config::byKey('deamonAutoMode', $plugin->getId(), 1) == 1)
{
$deamon_info = $plugin->deamon_info();
if ($deamon_info['state'] != 'ok')
{
$b_result=1;
$message='Daemon : 🆘 '.$plugin->getName().' ('.$plugin->getId().') |';
$message=str_replace("|","\n",$message);
$messageGlobal.=$message;
$scenario->setLog($message);
}
}
}
if ($b_result)
{
$messageGlobal=str_replace("|","\n",$messageGlobal);
$tags['#b_Messerror#']=$messageGlobal;
$scenario->setTags($tags);
}
else
{
$scenario->setLog("Tout est OK");
}
$tags['#b_Result#']=$b_result;
$scenario->setTags($tags);
Si le test s’exécute à heure xx:00:xx ou xx:30:xx, je détecte ceci sans raison apparente (Log du scénario):
[2021-02-17 22:00:03][SCENARIO] Start : Scenario execute automatiquement sur programmation.
[2021-02-17 22:00:03][SCENARIO] Exécution du sous-élément de type [condition] : if
[2021-02-17 22:00:04][SCENARIO] Evaluation de la condition : [0==0 ET ((2200 <= 0429) OU (2200 >= 0440))] = Vrai
[2021-02-17 22:00:04][SCENARIO] Exécution du sous-élément de type [action] : then
[2021-02-17 22:00:04][SCENARIO] Exécution d'un bloc élément : 274
[2021-02-17 22:00:04][SCENARIO] Exécution d'un bloc élément : 287
[2021-02-17 22:00:04][SCENARIO] Exécution d'un bloc élément : 255
[2021-02-17 22:00:04][SCENARIO] Exécution du sous-élément de type [action] : code
[2021-02-17 22:00:04][SCENARIO] Exécution d'un bloc code
[2021-02-17 22:00:04][SCENARIO] Vérification des dépendances et daemon des plugins en fonctionnement
[2021-02-17 22:00:10][SCENARIO] Daemon : 🆘 Freebox (Freebox_OS)
[2021-02-17 22:00:10][SCENARIO] Exécution d'un bloc élément : 272
[2021-02-17 22:00:10][SCENARIO] Exécution du sous-élément de type [condition] : if
[2021-02-17 22:00:10][SCENARIO] Evaluation de la condition : [1] = 1
[2021-02-17 22:00:10][SCENARIO] Exécution du sous-élément de type [action] : then
[2021-02-17 22:00:10][SCENARIO] Affectation de la variable Detectiondanslheure => 1 = 1
[2021-02-17 22:00:10][SCENARIO] Lancement du scénario : Affiche santé Dépendances et Daemon si NOK options : []
[2021-02-17 22:00:11][SCENARIO] Ajout du message suivant dans le centre de message : Détection d‘une erreur de fonctionnement dans un plugin (Eric)
Vérification des dépendances et daemon des plugins en fonctionnement
Daemon : 🆘 Freebox (Freebox_OS)
[2021-02-17 22:00:11][SCENARIO] Suppression des blocs DANS et A programmés du scénario
[2021-02-17 22:00:11][SCENARIO] Exécution d'un bloc élément : 273
[2021-02-17 22:00:11][SCENARIO] Exécution du sous-élément de type [condition] : in
[2021-02-17 22:00:11][SCENARIO] Evaluation de la condition : [180] = 180
[2021-02-17 22:00:11][SCENARIO] Tâche : 273 programmée à : 2021-02-18 01:00:11 (+ 180 min)
[2021-02-17 22:00:11][SCENARIO] Exécution du sous-élément de type [action] : action
[2021-02-17 22:00:11][SCENARIO] Fin correcte du scénario
Hors le centre de message système jeedom, remonte la détection et une erreur Telegram :
Ce scénario détectant une erreur, j’enclenche un second scénario qui fait le point complet :
// On efface la variable message
$message='Dependances : ';
// on ajoute une ligne dans le log
$scenario->setLog('Début Monitoring des Dependance');
//$tags = $scenario->getTags();
//$valeurOK=$tags['#IconOK#']; // Creer un tag IconOK avec la valeur « 🆗 #127383 » (Ajouter un '&' devant le #) en amont dans le scénario
//$valeurNOK=$tags['#IconKO#']; // Creer un tag IconKO avec la valeur « 🆘 #127384 \🆘 » (Ajouter un '&' devant le #)en amont dans le scénario
$valeurOK='&'.'#127383';
$valeurNOK='&'.'#127384';
// pour chaque plugin activé de votre jeedom
foreach (plugin::listPlugin(true) as $plugin)
{
if ($plugin->getHasDependency())
{
$dependency_info = $plugin->dependancy_info();
if ($dependency_info['state'] == 'ok')
{
$valEtat = $valeurOK.' ';
}
elseif ($dependency_info['state'] == 'in_progress')
{
$valEtat = 'In prog';
}
else
{
$valEtat = $valeurNOK.' ';
}
$message .='|'.$valEtat.$plugin->getName().' ('.$plugin->getId().')';
}
}
$message=str_replace("|","\n",$message);
// on selectionne la commande telegram correspondante au destinataire du message
$cmd=cmd::byString('#[Telegram][Telegram][Eric - 911444820]#');
// on envoie le contenu de la variable message via telegram
$cmd->execCmd($options=array('title'=>'Jeedom', 'message'=> "$message"), $cache=0);
// on log la fin de la verification des démons
$scenario->setLog('Fin monitoring des Dependances');
// On efface la variable message
$message='Deamon :';
// on ajoute une ligne dans le log
$scenario->setLog('Début Monitoring des Demons');
$valeurOK='&'.'#127383';
$valeurNOK='&'.'#127384';
$valEtat='';
foreach (plugin::listPlugin(true) as $plugin)
{
if ($plugin->getHasOwnDeamon())// && config::byKey('deamonAutoMode', $plugin->getId(), 1) == 1)
{
$deamon_info = $plugin->deamon_info();
if ($deamon_info['state'] == 'ok')
{
$valEtat = $valeurOK;
// Cas spécial eWeJee avec 2 deamon
/* if ($plugin->getName()=='eWeJee')
{
// Recup de public static function cron() de @Foulek57
$deamon_LAN_info = ewejee::deamon_LAN_info();
// Fonction spécifique de @Foulek57
if ($deamon_LAN_info['state'] != 'ok')
{
$valEtat = $valeurNOK;
}
} */
}
else
{
$valEtat = $valeurNOK;
}
$message .='|'.$valEtat.' '.$plugin->getName().' ('.$plugin->getId().')';
}
}
$message=str_replace("|","\n",$message);
// on selectionne la commande telegram correspondante au destinataire du message
$cmd=cmd::byString('#[Telegram][Telegram][Eric - 911444820]#');
// on envoie le contenu de la variable message via telegram
$cmd->execCmd($options=array('title'=>'Jeedom', 'message'=> "$message"), $cache=0);
// on log la fin de la verification des démons
$scenario->setLog('Fin monitoring des démons');
Cette fois Télégram est ok et affiche :
En dehors de xx:00 et xx:30, je stop le démon de ewejee et zigbee, j’obtiens les messages Télégram cohérents suivant :
J’espère être assez clair. A ta dispo pour tout complément d’info.
=== Message en référence à des sujets/échanges passés ===
=== sans rapport avec les protagonistes de ce sujet ===
Ce sujet est fait dans un esprit communautaire de partage d’info et d’expérience. Il se veut respectueux et bienveillant.
- Tout ceux qui veulent m’expliquer comment « m’en passer » peuvent passer leur chemin, ce sujet se veut constructif.
- Tout ceux qui pensent que je blablatte trop peuvent également passer leur chemin.
Si tant est que cette espace soit démocratique et libre, dans l’esprit de l’open source. Si cela déplait aux dieux Jeedom, comme se fut trop souvent le cas de mon point de vu (et pas seulement avec moi) pas de problème, j’irais ailleurs…
La liberté c’est accepter la controverse sinon cela s’appelle une dictature et ce n’est pas ma tasse de thé…
Merci de votre compréhension
=================================