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

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 »

Hello,

Normalement mon dernier block code fonctionne sans problèmes.

cdt
Thibaut

2 « J'aime »

Merci ça fonctionne.

Avis aux développeurs,

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

Merci pour vos avis éclairés

Hello,

Oui je le fait sur discord, si tu veux je peux te donner le code du plugin et je te laisse le réadapter pour un scénario ?

Cdt
Thibaut

1 « J'aime »

@Thibaut_T : yep suis preneur :slight_smile: par mp si tu veux bien :wink:

Bonsoir, je serai aussi intéressé par le code car j’ai régulièrement un nœud mort

comment fais tu pour te passer de jeelink , chez moi ca ne marche pas ?
Merci pour ton aide

Beaucoup plus simple en utilisant le plugin Discord Link !

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

Relis mon message en dessus…

Tout d’abord merci aux contributeurs de ce topic :+1:.
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);
1 « J'aime »

Bonjour,

Merci pour cette astuce. J’ai fait un scénario mais comment avoir un déclencheur autre que qq chose de programmer toutes les X heures ?

Merci