Tuto : Monitorer son infra domotique (serveur / batterie / last communication) sur JeedomConnect

Tu n’as pas d’erreur, juste que tu ne passe pas dans les boucles à priori …
dans

$plugins                   = array('zigbee')

tu as bien mis l’identifiant du plugin zigbee ?

et dans

$eqIdExclude

Mets aussi juste un chiffre bidon, je ne sais pas comment il gere le fait qu’il n’y ait rien

$eqIdExclude               = array(9999999) ;

Oui oui, la je sèche…

zigbee

J’ai lu trop vite, effectivement le fait de mettre un chiffre bidon à résolu le problème d’erreur.

J’ai essayé beaucoup de chose sauf ca

Supprime la virgule

J’ai refait complètement le script, je te l’enverrai en MP pour que tu testes si ca t’interesse …

Plutot qu un chiffre bidon, dont tu te demanderas a quoi il sert dans qlq semaine, il vaut mieux ne rien mettre.

La virgule est utilisé pour séparer 2 valeur qui peuvent etre vide '' ou null mais pas « sans rien » → d ou l erreur

1 « J'aime »

Evolution du scenario qui se présente sous la forme d’un Template

  • gesiton des paramétres via des tags (plutot qu’une edition du bloc code
  • meilleurs affichage des logs du scenario

les logs :

[2023-04-27 13:55:47][SCENARIO] ┌──────────── Logs bloc code - version du 20/04/2023 20:00
[2023-04-27 13:55:47][SCENARIO] | Plugin : zigbee2mqtt
[2023-04-27 13:55:47][SCENARIO] |	 [CH Anna][Détecteur Fenetre] (MCCGQ11LM) => batterie : 100% , Last com : 25min
[2023-04-27 13:55:47][SCENARIO] |	 [CH Anna][Température] (WSDCGQ11LM) => batterie : 90% , Last com : 3min
[2023-04-27 13:55:47][SCENARIO] |	 [CH Anna][Vanne] (TS0601_thermostat) => batterie : 100% , Last com : 25min
[2023-04-27 13:55:47][SCENARIO] |	 [CH Léonie][Cube] (MFKZQ01LM) => batterie : 17% , Last com : 42min
[2023-04-27 13:55:47][SCENARIO] |	 [CH Léonie][Détecteur Fenetre] (MCCGQ11LM) => batterie : 97% , Last com : 6min
[2023-04-27 13:55:47][SCENARIO] |	 [CH Léonie][Lampe] (AB3257001NJ) => Pas de batterie , Last com : 20min
[2023-04-27 13:55:47][SCENARIO] |	 [CH Léonie][Température] (WSDCGQ11LM) => batterie : 100% , Last com : 36min
[2023-04-27 13:55:47][SCENARIO] |	 [CH Léonie][Vanne] (TS0601_thermostat) => batterie : 100% , Last com : 10min
[2023-04-27 13:55:47][SCENARIO] |	 [CH Marie][Bandeau LED] (TS0504B) => Pas de batterie , Last com : 8h
[2023-04-27 13:55:47][SCENARIO] |	 [CH Marie][Détecteur Fenetre] (MCCGQ11LM) => batterie : 100% , Last com : 6min
[2023-04-27 13:55:47][SCENARIO] |	 [CH Marie][Télécommande] (33952) => Pas de batterie , Last com : 2h
[2023-04-27 13:55:47][SCENARIO] |	 [CH Marie][Température] (WSDCGQ11LM) => batterie : 10% , Last com : 8h
[2023-04-27 13:55:47][SCENARIO] |	 [CH Marie][Vanne] (SPZB0001) => batterie : 55% , Last com : < 1min
[2023-04-27 13:55:47][SCENARIO] |	 [CH parents][Détecteur fenêtre 1] (MCCGQ11LM) => batterie : 100% , Last com : 18min
[2023-04-27 13:55:47][SCENARIO] |	 [CH parents][Extender] (TS0207_repeater) => Pas de batterie , Last com : < 1min
[2023-04-27 13:55:47][SCENARIO] |	 [CH parents][Température] (SNZB-02) => batterie : 61% , Last com : 12min
[2023-04-27 13:55:47][SCENARIO] |	 [Chaudière][Détecteur Porte] (MCCGQ11LM) => batterie : 100% , Last com : 45min
[2023-04-27 13:55:47][SCENARIO] |	 [Cuisine][Détecteur Porte] (MCCGQ11LM) => batterie : 100% , Last com : 50min

Bonjour,
J’ai un problème avec cette ligne : $cmdBatteryWarning->event($listBatteryWarning);
J’ai fait un $scenario->setLog($listBatteryWarning) ; pour voir ce que contenait cette variable. Voici les logs obtenus :
[99-Mat_BoutTelec][Cube] (Abeille): 34%
[99-Mat_CaptTemp][AB1-T° cgl cuisine] (Abeille): 43%
[99-Mat_CaptTemp][Zw-Détect fumée] (openzwave): 35%
[99-Mat_Chauffage][Zw-Radiateur CH1] (openzwave): 42%
[2023-05-07 10:23:38][SCENARIO] [MySQL] Error code : 22001 (1406). Data too long for column ‹ value › at row 1 : REPLACE INTO history SET cmd_id=:cmd_id, datetime=:datetime,value=:value [2023-05-07 10:23:38][SCENARIO] Fin correcte du scénario
`Merci de votre aide

Je pense que la commande associée à $listBatteryWarning est historisée.
Hors, cette table d’historisation ne supporte pas l’historisation de chaines de caractère trop longues (limitée à 127 caractères)

Decoche l’historisation de toutes les commandes suivantes et ca devrait etre OK

Com warning
Com Danger
Batterie Warning
Batterie Danger

Ps : il n’y a à mon sens aucun intérêt à historiser toutes les commandes associées à ce tutoriel

Norbert

Diagnostic parfait, correction apportée et tout est rentré dans l’ordre.
Merci de ton aide et pour ce super tuto. Je reviendrai probablement vers toi pour que tu m’aides à finaliser au mieux la page JC.
Bonne soirée

Par exemple, d’où viennent ces 3 petits points ?
image
Est-il possible d’avoir un meilleur alignement ?
Merci

Il faut masquer le nom en mode carte (clic long sur le widget >> perso)

Non, c’est centré à droite, pas de perso pour ça (je crois qu’à un moment, c’était centré à gauche)

Si tu veux l’afficher sur une page (et pas dans un widget), tu as la possibilité d’un composant texte que permet une meilleure disposition.

Merci, c’est ok pour les 3 … . Je verrai plus tard ce qu’il est possible de faire ce qu’il est possible de faire pour un meilleur alignement. Si quelqu’un a des idées sur le sujet , merci à lui de nous aider.

Petite question subsidiaire. Existe-il une commande qui permettrait de récupérer dans un array la liste de tous les plugins utilisés dans ma config ? Merci

Un truc comme ca ?

$plugins = array() ;
$plugins = plugin::listPlugin(true, false, true, true) ;

foreach ( $plugins as $plugin ) {
  $scenario->setLog($plugin) ;
}

https://jeedom.github.io/documentation/phpdoc/classes/plugin.html#method_listPlugin

1 « J'aime »

C’est parfait, mais je n’ai pas trouvé de tuto pour les nuls pour utiliser l’ API jeedom. Merci encore

1 « J'aime »
2 « J'aime »

Salut @ngrataloup,

Super Tuto, simple, clair, efficace.

Petite remarque, dans les logs du scénario on voit qu’il récupère sur le plugin jMQTT le Commentaire de l’équipement :

[2023-05-09 10:59:39][SCENARIO] |	 [Systeme][Carte 8 Escalier] (Jeedom Community: https://community.jeedom.com/t/carte-relai-entree-economique/65416) => Pas de batterie , Last com : < 1min

La solution que j’ai trouvé, et de supprimer les commentaires de chaque équipement dans le plugin jMQTT mais je pense qu’à la prochaine mise a jour du plugin. Ils reviendront.

Petite suggestion, amelioration si je peux me permettre :
Serait-il possible de pouvoir personnaliser les checks par plugin ?
Je m’explique, je check le plugin unifi (équipements réseaux uniquement) pour ce plugin je souhaiterai uniquement un check de COM et pas de batterie.

Merci encore pour tous tes tutos, tes aides et le temps que tu y passes :wink: :wink:

@Jeandhom
Bonjour et merci de ta réponse.
J’avais bien vu ce topic mais il utilise plus les commandes de type
log::add('maison', 'error', $value.' : '.$collectDate); plutôt que $scenario->setLog($plugin);
Il me semble que les 2 font la même chose. Y-a-t-il 2 façons de faire ou une évolution dans la manière de pratiquer ?
Merci

Salut

Penses a utiliser la balise texte préformaté (touche </>) pour que ca soit + lisible quand tu partages du code/log :wink:

Le log::add ajoute une ligne dans le fichier de log nommé « maison » (que tu as mis en 1er arg)
Le scenario->setLog ajoute une ligne dans le scenario en cours
Ca ne fait donc pas tout a fait la meme chose

OK, pas le réflexe et pas souvent l’occasion de le faire. Je note et j’y penserai. :smiley: