Pas de remontée batteries dans Analyse

Bonjour,

J’ai une installation Jeedom avec un Rpi 4 et une clé zigbeemqtt + capteurs temperature xiaomi, détecteur de mouvement xiaomi, prises connectée, ampoules etc… tout fonctionne très bien.

Cependant j’ai un petit problème je n’ai aucune remontée des batteries dans le menu :
Analyse → Equipements → Batteries


Alors que les informations remontent correctement sur mon dashboard via mes virtuels :
dashboard

J’ai configuré dans paramètres également les seuils :

Auriez-vous une idée du problème, merci ?

Bonjour,

Cela dépend du plugin, il faut que le plugin remonte cette info d’une façon particulière au core de jeedom (pas juste dans une commande); sans cela, tu n’auras pas l’info dans cet écran.

edit: donc edit ton post et met le tag du plugin pour que l’auteur voit le sujet (je ne sais pas de quel plugin tu parles)

Bonjour,

Pour afficher mes périphériques j’utilise le plugin Virtuel et je remonte les informations de mes périphériques connectés en zigbee sur le plugin jmqtt.
Je dois mettre quel plugin dans le titre ?

Merci

Cela ne sera pas via le virtuel, ca c’est sur.
Je ne sais pas comment fonctionne jmqtt

J’ai mes périphériques qui sont détectés dans jmqtt :

et on retrouve la commande batterie avec l’info :

Oui,
Donc il faudrait que jmqtt sache que telle commande info est une info de batterie en fait (j’ignore si c’est possible, peut-être que toutes les infos sont gérées de façon générique) et dans ce cas, remonte l’information spécifiquement en tant que batterie sur l’équipement (ce n’est pas une commande, c’est une méthode spécifique à implémenter dans le plugin en plus de la commande) de sorte que le core le sache aussi et puisse afficher l’information dans la page équipement.

J’ai fait ça sinon créé un virtuel avec toutes mes batteries…:

je viens de regarder le code de jmqtt et effectivement, toutes les commandes sont créées dynamiquement en type string sans aucune idée de ce qu’elles contiennent comme info; donc le plugin ne remonte pas l’info en tant que batterie dans l’équipement.

Tout ce qui pourrait être fait dans le plugin c’est que si le nom du topic est « batterie » par exemple, il assume que c’est une batterie et le remonte en tant que telle mais c’est du bricolage; à l’auteur de décider.

Ton virtuel est le mieux que tu puisses avoir pour l’instant.

1 « J'aime »

Oui je pense aussi, merci à toi.
Si @domotruc passe dans le coin et qu’il a une idée :slight_smile: merci

Bonjour,
Le plugin n’a effectivement pas de moyen simple de reconnaître qu’une information correspond au niveau d’énergie d’une pile ou d’une batterie. La solution proposée par Mips est une possibilité. Il faudrait également gérer la facteur d’échelle : Jeedom attend une valeur entre 0 et 100 qui n’est pas nécessairement ce que fournissent tous les équipements.
Je vais y réfléchir.

2 « J'aime »

Bonjour,

Merci et cela confirme bien que je n’ai pas un problème sur mon installation, c’est juste que le plugin ne le gère pas. Du moins pas encore :wink:
Le plugin MQTT le gère t’il ? si oui il faudrait s’inspirer de ce qui a été fait par exemple…

merci @domotruc

Juste pour suivre la discussion, car ca m’interresse beaucoup !!!
J’ai une trentaine d’equipement sur pile qui viennent de zigbee2mqtt et ce serait top de voir leur niveau de batterie dans la page dédiée !

Il est possible d’utiliser un bloc code dans un scénario : Ajouter les batteries d’autres équipements dans le dashboard eqanalyse

Par contre pour 30 équipements ça va vite être un peu lourd.

Il existe aussi un script qui permet de boucler sur les commandes nommées « Batterie » (ou autre) : Monitoring batterie modules xiaomi - #2 par freetronic
Normalement c’est pour vérifier la communication, mais peut-être que c’est faisable de combiner avec le bout de code précédent.

Un autre exemple à partir d’une valeur de tension :

$cmd=cmd::byString("#[ESP  MQTT][esp205 - skimmer][Batterie]#");
$valeur=$cmd->execCmd();
$battery=round(max($valeur-3.5,0)/0.6*100);
$scenario->setLog("Valeur batterie esp205 : $valeur => $battery");
$o=$cmd->getEqLogic();
if ($battery == 0) {
	$o->batteryStatus(1);
} else {
	$o->batteryStatus("$battery");
//$resultat = $o->getStatus('battery');
//$scenario->setLog("Valeur de la batterie : $resultat");
}

Bonjour,
J’ai remontée une modification du plugin afin de prendre en compte la batterie dans Analyse->Equipement. Cela fonctionne bien chez moi.
Pull requests · domotruc/jMQTT · GitHub → Micka41

1 « J'aime »

Bonjour,

J’utilise moi aussi le plugin JMQTT et je n’ai pas la remontée d’information concernant le niveau de batterie de mes capteurs dans analyse>équipements, peut tu me dire comment je dois procéder ?

Merci

Bonsoir Micka41,

J’ai bien essayé de faire la modification du plugin dont tu parles, mais je n’y arrive pas, pourrais-tu m’en dire un peu plus sur la procédure ?

Merci.

Encore moi … en fait je viens de comprendre la modif. à réaliser, j’ai donc rajouté les 5 lignes dans jMQTTCmd.class.php, entre la ligne 121 et la ligne 127, j’ai redémarré Jeedom mais malheureusement je n’ai toujours pas le niveau de batterie de mes capteurs Zigbee (que je gère avec le plugin jMQTT) qui apparaissent dans Analyse>Equipements.

Merci.

Chez moi cela à mis plusieurs jours le temps que cela se remplisse, il était nécessaire que la valeur soit « republiée »

Ensuite ma modification implique obligatoirement que le champ contenant la batterie s’appel « batterie ».

1 « J'aime »