Depuis la 4.5, #maxHistoryValue# et #minHistoryValue# renvoient des entiers

Bonjour,

J’avais, il y a quelques années grâce à ce post, créé un petit widget qui permettait d’afficher la température ainsi que le min/max/tendance associé.

Tout fonctionnait bien en version 4.X mais je suis passé en 4.5 ces jours-ci.

Or, depuis, le tag #maxHistoryValue# (idem pour #minHistoryValue# ) ne renvoie que des entiers. Avant, j’avais des décimaux à une décimale (correspondant au paramétrage de chaque commande).

Est ce que c’est un bug ou j’ai raté un truc obvious ? J’ai passé en long et en large le changelog de la 4.5 et je ne voit rien qui fait référence à un changement sur ces 2 tags.

Merci d’avance d’avoir pris le temps de me lire.

Widget

Widget

<div class="cmd cmd-widget #history#" data-type="info" data-subtype="numeric" data-template="tile" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#" data-eqLogic_id="#eqLogic_id#" style="#displayHistory#">
  <div class="title #hide_name#">
    <div  class="cmdName">#name_display#</div>
  </div>
  <div class="myrow">
    <div class="mycolumn state" style="font-size: 200%; white-space: nowrap; #displayHistory#;">-</div>
    <div class="mycolumn mytendance" style="font-size: 120%; margin-left: 5%; margin-right: 5%; #displayHistory#;">
      <i class="fas fa-arrow-minus"></i>
    </div>
    <div class="mycolumn cmdStats #hide_history#" style="line-height: 1; white-space: nowrap; text-align: right;">
      <div class="myrow">
        <div class="mycolumn maxHistoryValue" style="font-size: 110%; font-family:consolas; white-space: nowrap; #displayHistory#;">-</div>
      </div>
      <div class="myrow">
        <div class="mycolumn minHistoryValue" style="font-size: 110%; font-family:consolas; white-space: nowrap; #displayHistory#;">-</div>
      </div>
    </div>       
  </div>
 
  <style>
   .myrow {
      display: flex;
      flex-direction: row;
      width: 100%;
    }

    .mycolumn {
      display: flex;
      flex-direction: column;
      flex: 1;
      justify-content: center;
      font-weight : bold;
    }    
  </style>
	<script>
      jeedom.cmd.update['#id#'] = function(_options){
        //console.log('T° : '+_options.display_value +' | Min : #minHistoryValue# | Max : #maxHistoryValue#');
        
    	$('.cmd[data-cmd_id=#id#]').attr('title','Date de valeur : '+_options.valueDate+'<br/>Date de collecte : '+_options.collectDate)
    	$('.cmd[data-cmd_id=#id#] .state').html(_options.display_value+' #unite#');

        $('.cmd[data-cmd_id=#id#] .minHistoryValue').html('#minHistoryValue#');
        $('.cmd[data-cmd_id=#id#] .maxHistoryValue').html('#maxHistoryValue#');
        $('.cmd[data-cmd_id=#id#] .mytendance').html('<i class="'+'#tendance#'+'"></i>');
        /*
        var loadingDiv = document.getElementById("jqueryLoadingDiv");
      	loadingDiv.className='hidden';	
        */
      }
	
    jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#',alertLevel:'#alertLevel#'});

  </script>
</div>

Commande

Historiques

Salut,

Oui visiblement il y a eu un commit pour éviter des erreurs en php8 si j’ai bien compris.

Par contre effectivement j’ai du mal à voir la logique.

round(intval($historyStatistique['avg']), 1);

On fait un round d’une valeur entière ça sert pas à grand chose.

Je pense que c’est un petit truc qui ne s’est pas vu lors de la bêta.
Ce n’est sans doute pas dans le changelog car ça ne doit pas être volontaire comme comportement

2 « J'aime »

J’ai testé la modif « à la mano » pour voir.
Effectivement le comportement redeviens comme avant.
Je n’ai pas constaté d’effets de bord particulier pour le moment (Pas d’erreur PHP notamment).
temp
Est ce que vous pensez qu’il y aura un rollback sur cette modif ?
A moins qu’elle soit utile dans d’autres cas qui me sont inconnus.

Bonjour,
Correction faite chez moi aussi.
Merci pour l’astuce.
Cela semble effectivement fonctionner sans autre effet.

Bonjour,

En remplaçant le intval par un floatval, cela devrait être mieux, non ? :slight_smile:

Bonne journée,
TiTidom.

1 « J'aime »

Hello,

Mes compétences en php sont assez basiques mais effectivement je pense que tu as raison :wink:

@Andylias et/ou @Fishes vous pouvez essayer ça ?

Si @TiTidom se sent de proposer un PR :wink:

Re,

On a été plus rapide que moi pour pousser un PR :joy:

TiTidom.

2 « J'aime »

Re,
je confirme que ca fonctionne avec un floatval :+1:

1 « J'aime »

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