Thermostat injoignable - Erreur persistante

Bonjour,
Pour une raison que j’ignore, mon thermostat Netatmo devient injoignable tous les 3 jours environ. Rien à voir avec le plugin bien évidemment.
Mais, pour contourner ce problème dont j’ignore la cause, j’aimerais repérer le soucis pour agir au plus vite.
Je vois sans soucis un message d’erreur dans le log (:exclamation: cronJob Erreur persistante sur [Maison] il n’y a pas eu de mise à jour des données depuis :). Et je reçois un email. Ce que j’aimerais savoir, c’est s’il existe une commande de type info qui me permettent, dans un scénario, de savoir que cette erreur existe afin de pouvoir lancer, dans ce scénario, une action correctrice. Merci et bonne journée

Bonjour,

Cela existe nativement dans Jeedom, c’est dans :
Réglages > Système > Configuration
Onglet : [Logs]

Partie : Messages
Cocher : Ajouter un message à chaque erreur dans les logs [x]
Et ajouter une action en dessus, comme le déclenchement d’un scénario ou, directement l’envoi d’un mail.

Bonjour. Merci. C’est ce qui est fait pour l’instant. Mais je souhaite lancer un scénario spécifique sur une erreur spécifique. C’est là le problème.

Regardez dans l’onglet alerte sur r l’équipement qui vos pose le problème.

Merci. Voici l’écran. Mais je ne vois pas ce qui va me permettre de lancer un scénarios

Bonjour,

Je ne pense pas que se soit possible de lancer un scénario spécifique, mais il est possible de lancer un scénario avec un tag, ce tag peut être analysé par un bloc code pour savoir si l’erreur cronJob Erreur persistante sur [Maison] est contenu dans le tag.
Et dans ce cas, exécuter une une action correctrice.

Bonjour
A priori ça concerne le plugin naEnergie.
Il faut trouver un moyen via le scénario de consulter le statut de l’équipement.
EqLogic->getStatus.
Selon l’erreur tu as un status warning/danger mais aussi détails de l’erreur erreurXX_Nok et erreurXX_Nok_time.
Attention toutefois si le relais est injoignable c’est dans l’équipement « hom » que ça se passe

1 « J'aime »

Oui c’est bien votre plugin limad44 : naEnergie. En fait, je pensais trouver une commande info « status » quelque part mais je suis étonné de ne pas en avoir trouvé. Ca me parait pourtant plutôt intéressant, ne fût-ce que pour les cas comme moi.
J’ai essayé, dans tester d’expression, 620->getStatus mais cela ne semble pas fonctionner.
Comment puis-je lancer cette commande pour récupérer le statut (si possible depuis un scenario) ?

En fait j’aime beaucoup votre plugin. Il est complet et efficace…tellement efficace que j’aimerais l’utiliser pour corriger les problème Netatmo. Le thermostat se déconnecte tous les 3 jours du réseau wifi et ne se reconnecte jamais. Votre plugin le détecte. J’aimerais faire en sorte qu’il lance une commande (« reconnecter » le thermostat au réseau via le plugin Unifi). Voilà : vous savez tout

C’est commun dans un plugin de setter ce genre d’erreur dans une commande.
L’info existe forcément qlq part, il faut savoir où l’extraire.
Pour le scénario regarde ce sujet

Monitoring équipements.

Si tu as des idées d’améliorations je peux reflechir

Même si l’info remonte par getStatus(); dans un scénario, il faudra que celui-ci soit avec un déclencheur Programmé donc un Cron régulier. Pourquoi ne pas utiliser les paramètres existant dans la configuration, qui permet d’être averti en cas de Log en ERREUR ?

L’idée n’est pas d’être averti (ça, je le suis) mais de lancer automatiquement l’action correctrice. Ça éviterait le délai (entre le temps où l’erreur se produit et celle où je lis mes mails) et ça m’éviterait de devoir faire l’action correctrice à la main

l’action corrective sera executer par un scénario aussi ? par bloc code ?

Oui : c’est une commande à lancer sur un objet via le plugin UniFi

Exemple d’une solution :

  1. Creer la règle qui déclenchera un scénario en cas d’erreur

  2. Scénario qui vérifie le message.

Format texte du bloc code :

$find = "cronJob Erreur persistante sur [Maison]"; // chaine a rechercher.
/////////////////////////////////////////////////////////////////////////////////////
$tags = $scenario->getTags(); // on recupère les tags existants.
$tags['#erreur#'] = 0;
$pos2 = stripos($tags['#message#'], $find); // verifie si la chaine recherchée existe.
if ($pos2 !== false) $tags['#erreur#'] = 1;
$scenario->setTags($tags);
1 « J'aime »

Ça a l’air super top. Je vais essayer cela. Un tout grand merci

Il y a juste un inconvénient avec cette méthode (a confirmer), il me semble que le scénario ne se lancera pas une 2ème fois tant que tu n’auras pas reset le message dans le centre de message de Jeedom.

Le bloc code peut s’en charger.

message::removeAll(  $_plugin = '',   $_logicalId = '',   $_search = false);
2 « J'aime »

Avec tout ça tu vas devenir un expert en erreurs… :grin:j

Et bien un tout grand merci à vous @Phpvarious. Cela fonctionne à merveille !

:raised_hands:
Hésite pas à poster ton code ça pourrait aider d’autres