Moyenne de deux capteurs de temp

Bonjour

je souhaite pouvoir avoir une moyenne de mes capteurs de température de mon aquarium

je tente via average ou même une addition / 2 mais les deux valeurs sont fausses

En effet la sonde présente dans l’aquarium me renvoi: 24,6 et la deuxième pas encore installé dans l’eau renvoi 19.6
cela devrait renvoyé 22.1 mais ici mes deux tentatives donnent 12.3 ou 0…

merci par avance

Salut,

A première vue et sauf erreur les 2 calculs sont mal formatés.

  1. La fonction de calcul average ne prend qu’une seule commande en 1er argument et la période en second :

    • average(commande,période) & averageBetween(commande,start,end) : Donnent la moyenne de la commande sur la période (period=[month,day,hour,min] ou expression PHP) ou entre les 2 bornes demandées (sous la forme Y-m-d H:i:s ou expression PHP).

    Exemple: average(#[cmd]#, hour)

  2. Concernant la moyenne par addition divisé par le nombre de valeur, la parenthèse semble mal placée (en y regardant de + près c’est encore pire 1 parenthèse est ouverte puis fermée à 3 reprises), ce devrait plutôt être :

    (#[cmd1]# + #[cmd2]#) / 2
    

Salut

Pour le calcul ou tu fais /2, il y a un souci sur les parenthèses.

Pour la fonction average, elle s’applique à une commande et non plusieurs commandes. Enfin, c’est ainsi que je l’ai compris.

Antoine

Pourquoi ne pas utiliser les résumés ?

merci à vous deux pour vos retours

vous êtes au moins d’accord :slight_smile:
je retire donc la fonction average qui ne s’applique pas dans mon cas

toutefois ci pour la fonction / 2 cela me renvoi encore 0
(#[Salle à Manger][Temp Aquarium][Température]#+#[Salle à Manger][Temp 2 Aquarium])[Température]#)/2

@ Loic j’utilise deja les résumés pour des moyennes de temp par etage de chez moi mais pour mon aquarium ca me sera utile pour une condition apres de mise en route du chaufffage

Tu n’aimes pas les parenthèses ouvertes… C’est un vrai toc de les fermer à plusieurs reprises un peu partout on dirait :wink: Essayes plutôt comme ça :

(#[Salle à Manger][Temp Aquarium][Température]#+#[Salle à Manger][Temp 2 Aquarium][Température]#)/2

lol j’ai trouvé il me manquait un #

yes merci à toi :slight_smile:

Pourquoi ne pas utiliser la fonction php « avg » ?
Par exemple, pour mes capteurs de températures :

avg(#[Cave][Mvt Garage][Température]#,#[Cave][Ambiance][Température]#)

Bonjour Jerryzz,

Mon probleme est resolu avec mion ajout de #

mais pour vous répondre les deux ne renvoi pas les mêmes valeurs et comme l’a indiqué Salvialf c’est une moyenne sur une période mais je fais la démo ici:

@jerryzz : juste pour préciser, avg() n’est pas une fonction PHP mais est issue du core Jeedom.

@ArnauldF : @jerryzz a raison, je n’y ai pas pensé sur le coup mais c’est bcp plus simple à utiliser quand on ne fait pas d’erreur de syntaxe ce qui est ton cas, il manque le dièse et le crochet au début de la 1ère commande. Ne surtout pas hésiter à tester avec le testeur d’expression en 1er lieu.

merci pour cette précision
En effet, j’avais encore omis un # mybad :slight_smile:

la bonne formulation était
avg(#[Salle à Manger][Temp Aquarium][Température]#,#[Salle à Manger][Temp 2 Aquarium][Température]#)

juste en conclusion:
quelle méthode est à privilégier?

Comme dit précédemment pour moi il vaut mieux privilégier la fonction avg(). Le principal avantage étant de pouvoir ajouter ou retirer des commandes sans avoir à penser à modifier le diviseur :wink:

ok merci à vous pour votre aide!
j’en prends bonne note pour l’avenir

Bonsoir,
Je m’incruste pour complexifier encore un peu :slight_smile:
J’utilise aussi avg, et je me suis demandé à la mise en place comment faire pour privilégier une des valeurs si l’autre est manquante ou à 0.
Par exemple quand un des capteurs de T tombe en panne de pile ou si on mixte les protocoles par sécurité et que l’un d’eux est en carafe.
Moi c’était pour un thermostat d’ambiance, ça devrait intéresser pour un aquarium et éviter une mortalité.

AH oui bonne remarque! J’aimerais pouvoir eviter la surchauffe => mortalité 100% :frowning: