Arrondir au pas de 0.5 dans un virtuel

Bonjour, et meilleur vœux à vous tous.

J’ai un capteur de température - Xiaomi lywsd03 géré par BLEA-, dans une pièce, qui gère mon chauffage thermique (j’ai un mélange d’émetteur électriques et thermiques) à l’aide de scénarios en fonction de ma présence et de tempo (couleur et hphc)…
J’ai donc sur mes scenarios mis ce capteur en déclencheur provoqué
par exemple sur une journée rouge :

Le hic est qu’il émet dès que la température est modifié de +ou 1 de 0.1° et que pour ce faire il arrondi à priori sa mesure à 0.1°… en gros je peux avoir 1 déclenchement toute les 30"…ce qui rends illisible la timeline

Donc je pensais faire pointer cette émission de donnée sur un virtuel afin d’avoir un arrondi à 0.5° et mettre ce virtuel en déclencheur.

Et c’est là ou je bloque, je n’arrive pas à arrondir à +ou- 0.5
Il est possible d’arrondir à 1,2,3…etc chiffre après la virgule mais pas à priori à 0.5

Auriez vous une astuce ou une fonction à ajouter pour le faire ?

merci

Qu’entendez vous par arrondi à + ou - 0,5 ?

15,3 → 15
15,5 → 15,5
15,8 → 15,5

Si c’est cela :

intval(#value# *2) /2

Un autre moyens est de faire déclenché ton scénario sur une programmation horaire, genre toute les 1 min ou + et qui vérifie si oui ou non ta température a changé ?

j’utiliserai personnellement round plutot que intval

pour 13,76 par exemple, intval te donnera 13,5 et round 14

donc :

round(#value# * 2) / 2

Norbert

Tout à fait, reste plus qu’à choisir !

round pour arrondir ça sonne bien qd même…

On a la même chose avec :
intval((#value#+0,25) * 2) / 2
Et si on veut arrondir 13,75 en 13,5 pour ne passer à 14 qu’à partir de 13,76 il suffit de mettre 0,24999 à la place de 0,25 :crazy_face:

Merci à tous ,
j’ai l’embarras du choix. :grinning: :grinning:

j’ai commencé par round car à 13.76, il faut qu’il donne 14 en effet, mais je vais testé aussi intval au pas de 0.25

si tu veux un pas de 0.25, il ne faut toujours pas utiliser intval (la réponse de @bonjour était une boutade :yum:), mais sur le même principe

round(#value# * 4) / 4

C’était une boutade mais ça marche quand même pour un arrondi à 0,5 (pour les nombres positifs)
(Le 0,25 vient de la multiplication par 2)

intval(#value# * 2 + 0,5) / 2

merci pour la précision … :upside_down_face:

le round fonctionne parfaitement depuis ce matin ! un regal cette timeline éclaircie !

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