[TUTO] Recevoir une notification Telegram regroupant les états des démons

Bonjour,

Je cherche à améliorer la fiabilité de mon installation jeedom sur RPI3 donc ce code pourrait me servir mais je suis bloqué dès le début :frowning: :
Je ne comprends pas l’utilité de Jeelink en fait ?

Merci

On reçoit une notif via le centre de messagerie si daemon ko non ?

@Emlivyo pas besoin de Jeelink, je ne l’ai pas installé dans mon cas et cela fonctionne

@Ramouchoooo quel est le sens de ta question ? Tu veux dire que, de base, un message apparaît dans le centre de message quand un démon tombe ?

@Caelion oui c’est ça , et on peut le configurer pour le recevoir sur telegram.
Ou ai-je mal compris ?

De base, je ne sais plus - il faudrait que j’en ai un qui tombe mais c’est très rare chez moi.
La solution proposée ici est de recevoir - à intervalle régulier ou sur demande - l’état des démons.

Je reçois ça quand je redémarre par exemple

D’ailleurs je constate une faute à daemon dans ma notif :stuck_out_tongue:

1 « J'aime »

@Caelion
bonjour, serait-il possible d’afficher le résultat dans un virtuel ?
si oui comment ?
j’ai créé un scénario avec ton bloc code… cela fonctionne bien dans le log…

merci d’avance

solution, j’ai mis le résultat dans une variable… et la variable dans un virtuel…
merci pour le script :slight_smile:

Salut à tous,

Merci pour vos partages! :slight_smile:je l’ai mis en place sur Discord Link :slight_smile:

bonjour,@fx33 et tous ceux que veulent bien m’aider
Je souhaiterais faire un scénario dans le même esprit que celui là,
mais pour pouvoir récupérer et « parser »’ ‹ si c’est le bon termes › ,le log de mes commandes manuelle du plugin RFlink pour n’avoir que le LogicaliD et la commande genre « up ».([2020-04-14 11:28:08][INFO] : 10;RTS;2f7147;UP;UP;) les caractères en gras.
c’est pour qu’un autre plugin puisse l’utiliser. j’ai ragarder un peu l’Api pour essayer de comprendre et de transposé mais je trime.je sais si c’est les logs ou le plugin RFlink.
Merci d’avance

Au cas ou, je suis raspberry pi Buster V4 au jour

Quelles icône tu as prises pour le ok et non ok ?

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 ›);

Hello,

@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)

Cordialement
Thibaut

1 « J'aime »

Est ce que ton plugin Jeelink est fonctionnel ?

1 « J'aime »

Pas de soucis, c’est plutot flatteur :slight_smile:

Sur quel plugin vas tu intégrer l’idée ?

Il est déjà fonctionnel dans la beta de discordlink.
Et avec la base de ton idée j’ai fait pareil pour les dépendance

Cdt
Thibaut

Voila pour les dépendances :

// 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)

Cordialement
Thibaut

1 « J'aime »

Bonjour,
comment as tu fait pour envoyer le résultat dans une variable ?
Merci
lmb

Bon je viens de reprendre le tuto depuis le début, j’ai bien paramétré ma commande telegram mais je ne recois rien.

Quelqu’un peut poster le code revu pour simplifier les démons et le remettre en un bloc svp ?
merci

1 « J'aime »