Problème de refresh sur commande information v3

Bonjour,
Actuellement sous Jeedom v3.3.53
j’essaye de créer un widget qui remonte l’information de consommation en numérique
mais la valeur ne s’actualise pas en temps réelle, obliger de refresh le navigateur ou changer de page de design.

Merci pour votre aide

Voici le code utilisé en txt

code.txt (3,3 Ko)

Bonjour, je te conseille de faire l’upgrade en v4 et de faire cela avec le nouvel outils widget du core en v4 directement.
Là il va y avoir pas mal de boulot pour y arriver pour de toute facon le refaire en v4 après.

Salut,

Il manque la fonction d’update auto dont les grandes lignes sont expliquées dans la doc V4 :
https://doc.jeedom.com/fr_FR/core/4.0/widgets#Mise%20à%20jour%20des%20valeurs

J’ai survolé ton code dans le bloc-note, tu ne peux pas utiliser le tag #state#. Le plus simple aurait été de partir de l’outil de création facile du plugin Widgets en V3 et ensuite adapter le CSS.

<div style="min-width:40px;min-height:20px;" class="cmd #history# tooltips cmd-widget" data-type="info" data-subtype="numeric" data-cmd_id="#id#" title="#collectDate#">
    <center><span class="cmdName" style="font-weight: bold;font-size : 0.8em;width: 65px;height: 17px;overflow: hidden;position: relative;#hideCmdName#;" title="#name#">#name_display#</span></center>
    <div style="text-align:center;">
  	<div id="tempdifDivIMG#id#" > 
      <span class="tempdif_img" id="tempdifIMG#id#"></span> 
    </div> 
    <div style="text-align:center;">    
    <div id="tempdifState#id#" > 
      <span class="tempdif_state" id="tempdifState#id#"></span>
      <span class="tempdif_unite" id="tempdifUnite#id#">#unite#</span>
    </div>  
  </div>
   <script>

  jeedom.cmd.update['#id#'] = function(_options) {
      $('.cmd[data-cmd_id=#id#] .tempdif_state').empty().append(_options.display_value +' #unite#');
    }
    jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#',alertLevel:'#alertLevel#'});

        	var imgHeight;
     		var imgWidth;
            if (!isNaN(parseFloat("#heightImage#"))) {
              imgHeight = "#heightImage#";
            } else {
              imgHeight = "40";
            }
            if (!isNaN(parseFloat("#widthImage#"))) {
              imgWidth = "#widthImage#";
            } else {
              imgWidth = "35";
            }
        
        	$("#tempdifIMG#id#").append("<img style='height:" + imgHeight + "px;width:" + imgWidth + "px;' src='plugins/widget/core/template/dashboard/cmd.info.numeric.conso_elec/eclair.png' class='tempdif_img' id='tempdif#id#'/>");
        	
          
          if ("#position#" == "right") {
            $("#tempdifDivIMG#id#.tempdif_div_img").css("float","right"); 
             $("#tempdifIMG#id#.tempdif_img").css("margin-right","15px");
          } else {
    	  	$("#tempdifDivIMG#id#.tempdif_div_img").css("float","left");
            $("#tempdifIMG#id#.tempdif_img").css("margin-left","15px");
          }
          if (typeof "#fontsizeState#" != "undefined" && "#fontsizeState#" != "2em") {
            $("#tempdifState#id#.tempdif_state").css("height","#fontsizeState#"); 
          }
          if (typeof "#fontsizeUnite#" != "undefined" && "#fontsizeUnite#" != "1em") {
            $("tempdifUnite#id#.tempdif_unite").css("height","#fontsizeUnite#"); 
          }
          if (typeof "#displayState#" != "undefined" && "#displayState#" != "block") {
            $("#tempdifState#id#.tempdif_state").css("display","#displayState#"); 
          }
           if (typeof "#oneLine#" != "undefined" && "#oneLine#" == "on") {
             if ("#position#" == "right") {
                //$("#tempdifState#id#.tempdif_state").css("margin-left","20px"); 
             	$("#tempdifUnite#id#.tempdif_unite").css("display","block");
             	$("#tempdifUnite#id#.tempdif_unite").css("margin-top","-25px");
             	$("#tempdifUnite#id#.tempdif_unite").css("margin-right","85px");
             } else {
                $("#tempdifState#id#.tempdif_state").css("margin-right","20px"); 
             	$("#tempdifUnite#id#.tempdif_unite").css("display","block");
             	$("#tempdifUnite#id#.tempdif_unite").css("margin-top","-25px");
             	$("#tempdifUnite#id#.tempdif_unite").css("margin-left","85px");
             }
           }
      </script>
</div>
<style>
 
span.tempdif_state {
  	margin-left: 20px;
  	font-weight: bold;
  	font-size: 2em;
  	margin-top: 0px;
  }

span.tempdif_unite {
  	font-size: 1em;
    font-weight: bold;
  	margin-top: 5px;
  	top: 22px;
  }

</style>

Pas testé et à peine lu donc pas sûr que ce soit suffisant en soi. Le conseil de @Mips est judicieux, la V4 devant arriver en version stable courant septembre.

1 « J'aime »

Le scoop …

C’est ce qui a été annoncé aux devs début aout

1 « J'aime »

Merci à vous quel buse j’avais oublié l’essentiel.
Les vacances ont fait mal :joy: :joy:
La v4 oui, mais faut du temps pour que je reprenne mes widgets. J’ai déjà testé sur une nouvelle installation et j’ai abandonné au vu du boulot. Je vis sans, sans problème :wink:

bonne soirée à vous et encore merci

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