Tuto Comment assigner une valeur négative à un paramètre
Comment assigner une valeur négative à un paramètre
Une majorité des modules avec mesure de température mettent à disposition des paramètres afin d’apporter une correction à la valeur mesurée. Les sondes de température sont normalement livrées avec un étalonnage d’usine, mais on se rend compte avec des comparaisons avec d’autres thermomètres des écarts pouvant être assez importants.
La température au plafond sera plus élevée qu’au sol, donc un détecteur de fumée vissé dans le plafond donnera une valeur plus élevée que la température médiane au centre de la pièce.
Problématique
Les paramètres n’acceptent jamais de valeurs négatives, que ce soit par une commande ou via l’onglet Paramètres.
Alors comment assigner une correction de -2.0°C à mon paramètre ?
Nombre entier signer
Si on prend un paramètre de type Byte donc de 8bit, les valeurs possible sont de 0 à 255, il s’agit d’un entier non signé.
Pour affecter une valeur négative à un paramètre il faudra utiliser des entiers signés.
Un entier signé va utiliser le dernier bit pour identifier le signe, d’où le nom entier signé. Le dernier bit à 0 pour les valeurs en positif et à 1 pour les valeurs en négatif. On dispose donc de 7 bit pour la valeur; soit de 0 à 127 en positif, 127 étant 27-1 et de -1 à -128 en négatif -27
La règle est la suivante de 0 à 127 c’est la valeur directement sans rien toucher et de -1 à -128 c’est la valeur maximum des 8 bit (255) moins la valeur souhaitée. En clair on utilise la première moitié 0 à 127 pour la partie positive et de 255 à 128 pour la partie négative.
Pour les paramètres de taille 1 soit 1 Byte (8 bit)
Valeur du paramètre | Représentation décimal pour 1 Byte |
127 | 127 |
2 | 2 |
1 | 1 |
0 | 0 |
255 | -1 |
254 | -2 |
128 | -128 |
Pour les paramètres de taille 2 les Short (16 bit)
Valeur du paramètre | Représentation décimal pour 2 Byte |
32767 | 32767 |
2 | 2 |
1 | 1 |
0 | 0 |
65535 | -1 |
65534 | -2 |
32768 | -32768 |
Pour les paramètres de taille 4 les Int (32 bit)
Valeur du paramètre | Représentation décimal pour 4 Byte |
2147483647 | 2147483647 |
2 | 2 |
1 | 1 |
0 | 0 |
4294967295 | -1 |
4294967294 | -2 |
2147483648 | -2147483648 |
Voilà pour l’explication.
Exemple
Donc pour modifier par exemple le paramètre no 73 d’un Fibaro Flood Sensor afin de retirer 2.0°C.
La documentation indique que le paramètre accepte -10000 à + 10000 la valeur par défaut est de 0 pour 0.00°C donc une échelle de 0.01°C par unité.
Pour diminuer de 2.0°C il faudrait soustraire 200 centièmes de degré.
Le paramètre est sur 2 Byte, un short, donc la valeur maximum est de 65535, on soustrait les 200 pour obtenir 65235 qui sera la valeur à renseigner pour le paramètre 73.
Méthode alternative
C’est une gymnastique pas très évidente et c’est difficile de rapidement voir la correction appliquée.
C’est aussi pour cette raison que dans le cas d’une correction sur une mesure je vous recommande l’utilisation du calcul sur valeur, qui est une fonction native de jeedom disponible pour toute valeur info numérique quel que soit le plugin dans jeedom.
Pour effectuer un calcul sur valeur il suffit de cliquer dans les trois engrenages de la commande info pour laquelle on souhaite faire une correction.
On sélectionne l’onglet Configuration et on retrouve la possibilité d’effectuer un calcul sur la valeur.
Attention le calcul sera effectué sur la prochaine valeur qui arrivera dans le cache jeedom et non sur la valeur déjà en cache. Elle ne modifiera pas non plus les valeurs d’historiques existantes.
En plus de pouvoir effectuer un calcul, vous avez la possibilité de choisir un arrondi le nombre de chiffre après la virgule.
La formule de calcul est grandement simplifiée, c’est beaucoup plus simple à ajuster.
Avec un calcul sur valeur vous pouvez aussi convertir des informations en un autre type si besoin. J’utilise entre autre cette approche pour un « Gaz Meter » afin de convertir une valeur volume en mètre cube pour obtenir une équivalence en KWh avec une simple multiplication par un coefficient de consommation fournis par mon fournisseur de gaz.
Conclusion
Voilà les corrections négatives n’ont plus de secret pour vous. Par simplicité je vous recommande vivement l’utilisation du calcul sur valeur, il vous permet aussi d’apporter une correction même sur des modules ne disposant pas de la possibilité de corriger les valeurs.
Merci pour ce super Tuto, enfin je comprends mieux, je peux ajuster ainsi mes températures