jMQTT icon indicating copy to clipboard operation
jMQTT copied to clipboard

Remonté de la batterie dans Analyse->Equipements

Open Micka41 opened this issue 5 years ago • 8 comments

Remonté de la batterie dans Analyse->Equipements

Micka41 avatar Nov 26 '20 12:11 Micka41

Intéréssant. J'avais fait la même remarque sur le plugin MQTT de lunarok. Par contre, le nom "Batterie" ne conviendra pas forcement à tout le monde. Du coup, 2 idées :

  • mettre le nom "Batterie" dans un champ éditable de configuration du plugin ou du broker
  • comme le plugin Jeedom MQTT, ajouter un champs "Type de piles" à chaque équipement

je vois pour forker ton repo et te proposer une implémentation dès que j'ai le temps.

@++

Domochip avatar Dec 29 '20 09:12 Domochip

J'ai des équipements avec un info battery_ok qui retourne 1 ou 0 à savoir Ok ou Low qu'on peut interpréter comme 100 ou 10. Je fais un calcul sur valeur, mais ici avec le PR c'est la valeur brute avant le passage dans le cache de jeedom. donc ça ne fonctionne pas. J'ai donc étendue le PR avec un test supplémentaire:

 if ($this->getName() == "Batterie_ok") {
          $value = ($value == 1) ? 100 : 10;
          $this->getEqLogic()->batteryStatus($value, date('Y-m-d H:i:s'));
          $this->getEqLogic()->log('info', '-> Update battery status');
 }

J'ai encore d'autre équipement avec une valeur en pourcentage:

if ($this->getName() == "Batterie_percent") {
          $value = $value * 100;
          $this->getEqLogic()->batteryStatus($value, date('Y-m-d H:i:s'));
          $this->getEqLogic()->log('info', '-> Update battery status');
}

Du coup faudrait avoir 3 tests avec 3 possibles nom de commandes pour respecter cette convention.

nechry avatar Jan 11 '21 14:01 nechry

à mon avis mieux de récupérer le type générique BATTERY pour trouver la commande, et en fonction du type binary ou numeric on sait si c'est un pourcentage ou un ok

bdbogjoe avatar Jan 19 '21 23:01 bdbogjoe

oui l'idée est intéressante, en cas de numérique on doit juste différencier si on reçoit des centièmes ou en unité mais c'est simple

nechry avatar Jan 21 '21 08:01 nechry

Ca donne un truc comme ca :

    if ($this->getGeneric_type() == 'BATTERY') {
        if ($this->getSubType() == 'binary') {
            $this->getEqLogic()->batteryStatus($value ? 100 : 10);
        } else {
            $this->getEqLogic()->batteryStatus($value);
        }
        $this->getEqLogic()->log('info', '-> Update battery status');
    }

@nechry : que voulais-tu dire par différencier les centièmes ou les unités?

Domochip avatar Feb 20 '21 18:02 Domochip

@Domochip : dans certain cas on peut avoir 10 pour 10% ou 0.10

nechry avatar Feb 28 '21 20:02 nechry

@Domochip jeedom attend une valeur entre 0 et 100, faut multiplier par 10 si on a des centième. il y aura par contre un possible overlape entre 1=>1% ou 1.00 pour 100%

nechry avatar Feb 28 '21 20:02 nechry

un dérivé de ce PR est inclue dans la dernière version du plugin et donne satisfaction selon mes premiers tests. Ce PR peut donc être fermé

nechry avatar Jun 09 '21 13:06 nechry