Bonsoir,
j’ai utilisé le code et cela à l’air de mal fonctionner dans on cas:
Je reçois bien le message, mais mes 4 démons sont toujours OK, hors j’ai débranché ma clé USB GSM donc il est bien en erreur.
Voici mes démons
// on indique la liste des demons à verifier
$ListeDaemons = array(‹ Caméra ›,‹ IPX 800 V4 ›,‹ SMS ›,‹ Z-Wave ›);
@fx33, Je me suis permit d’emprunter ton idée, J’y est apporté quelque optimisation et je l’ai intégrés directement dans mon plugin.
Je te site donc dans ma doc comme précurseur de l’idée.
Je vais aussi réadapter pour les scénario ce que j’ai fait. je vous donne sa dans la journée. (J’ai retirée la dépendances de Jeelink)
// On efface la variable message
$message='Dependance : ';
// on ajoute une ligne dans le log
$scenario->setLog('Début Monitoring des Demons');
// 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') {
$message .='|:white_check_mark: '.$plugin->getName().' ('.$plugin->getId().')';
} elseif ($dependency_info['state'] == 'in_progress') {
$message .='|:arrows_counterclockwise: '.$plugin->getName().' ('.$plugin->getId().')';
} else {
$message .='|:x: '.$plugin->getName().' ('.$plugin->getId().')';
}
}
}
$message=str_replace("|","\n",$message);
// on selectionne la commande telegram correspondante au destinataire du message
$cmd=cmd::byString('#[Dev][Dev 2][Send message]#');
// 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');
Et voila pour les deamon :
// On efface la variable message
$message='Deamon :';
// on ajoute une ligne dans le log
$scenario->setLog('Début Monitoring des Demons');
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') {
$message .='|:x: '.$plugin->getName().' ('.$plugin->getId().')';
} else {
$message .='|:white_check_mark: '.$plugin->getName().' ('.$plugin->getId().')';
}
}
}
$message=str_replace("|","\n",$message);
// on selectionne la commande telegram correspondante au destinataire du message
$cmd=cmd::byString('#[Dev][Dev 2][Send message]#');
// 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');
Ps : le code a les emojy au format de discord donc il sont peux être a remplacer. (Pour les utilisateur de celui ci une commande automatique est en cours de test sur la beta)
Y’aurait-il dans le même principe du code de @ZygOm4t1k cité plus haut, la possibilité de checker l’etat de chaque noeud Zwave avec leur état ? (OK ou DEATH ?)
Bonjour, je souhaiterais mettre en place ton code pour recevoir l’etat des dependances sur telegram.
Quelle ligne est ce que je dois changer et par quoi pour recevoir l’etat avec la petite icone ok ou Nok
J’ai fait plusieurs essaie de modification mais comme je n’y connais rien en codage , ca ne fonctionne pas !
Merci pour ton aide
Tout d’abord merci aux contributeurs de ce topic .
Avec les exemples de code que vous avez fourni j’ai pu faire un truc à ma sauce.
Ma pierre à l’édifice :
Avec des plugins avec un underscore soit dans le nom, soit dans l’ID (Freebo_OS, Nut_Free, …) , chez moi l’appel a Telegram se plante.
Donc dans les chaines messages que vous passez a Telegram changer ‹ _ › par ‹ - › et ca roule.
Ex :
// supprime les _ qui font planter Telegram
$message = str_replace('_','-',$message);