Valeur zéro non transmise?

Bonjour,

J’ai l’impression que la valeur zéro n’est pas transmise à influxDB :

  • Quand le ventilateur de la salle de bain se met en marche (valeur 1), je vois dans les logs du plugin jeedom, le point 1 qui part vers influx et qui arrive :
[2021-10-25 20:20:03][INFO] : Send all measurements for InfluxDB
 // 12 points de mesure coupés, ils sont transmis OK dans influx et visibles dans grafana
[2021-10-25 20:20:03][DEBUG] : createPoint for:[Salle-de-bain][Salle-de-bain_ventilation][Statut]
[2021-10-25 20:20:03][INFO] : Writing points for InfluxDB:13
[2021-10-25 20:20:04][INFO] : Done:13
  • Quand le ventilateur est éteint par contre, on voit dans les logs :
[2021-10-25 20:19:03][INFO] : Send all measurements for InfluxDB
 // 12 points de mesure coupés, ils sont transmis OK dans influx et visibles dans grafana
[2021-10-25 20:19:04][DEBUG] : no value
[2021-10-25 20:19:04][INFO] : Writing points for InfluxDB:12
[2021-10-25 20:19:04][INFO] : Done:12

Ma question :
Est-ce effectivement le comportement du plugin ?
Si oui, y a-t-il un moyen réactiver l’envoi des valeurs zéro vers influxDB ?

Bonjour,

Je ne sais pas répondre par coeur (je suis sur téléphone), je note un rappel pour demain.

Mais je dirais que c’est bien le « no value » qu’on voit.
Si c’est le cas ce n’est à priori pas logique mais confirmation demain donc.

Je crois qu’il y a effectivement un petit bug, mais je propose une solution :slight_smile: :

  • dans core/class/influxdb.class.php
  • méthode private function createPoint($measurement, $value = null, $timestamp = null)
  • ligne 98
    on a :
		if ($value == '') {
			log::add(__CLASS__, 'debug', 'no value');
			return;
		}

Apparemment en PHP l’opérateur == fait une conversion de type , et donc l’ int 0 matche avec la chaine vide (je ne sais pas dire lequel est converti dans le type de l’autre, mais les logs que j’ai ajoutées sont formelles ^^)

L’opérateur === m’a l’air plus approprié ici.

Du coup je proposerait une correction du genre :

		if ($value === '') {
			log::add(__CLASS__, 'debug', 'no value');
			return;
		}

J’ai mis ca dans mon influxdb.class.php en attendant le prochain update.

Oui j’étais occupé à répondre la même chose mais j’ai été interrompu.
Je vais adapter

Cela sera fixé en beta & stable demain.

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.