Partage Widget Thermo NAK ouvert à contribution

Bonjour,
Etant très attacher au graphisme je mets à votre disposition mon widget Thermomètre NAK, basé sur l’excellent Widget @Heliospeed que je profite de ce message pour le saluer :herb:avec des images retravaillées , en espérant que cela vous plaira , recevez mes amis jeedomiens mes sincères salutations.
Commençons par le code

<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#">
  <!--
    Jeedom Compatibility: v4
    Version: Dashboard/Mobile
    Type: Info
    SubType: Numeric
    Name: cmd.info.numeric.thermometer.html
    Comment: A thermometer image with a current value (+stats).
    Parameters: 
    - largeurDashboardPx - Resize the dashboard widget image to the real width - default 20px - [range 20-29px]
    - largeurMobilePx - Resize the mobile widget image to the real width - default 20px - [range 20-29px]
    Date: 2020-10-01
    Source: https://github.com/Heliospeed/jeedom_widget_v4/
    Remarks: The template and the images have been modified and come from these repositories:
    Template : https://github.com/jeedom/core/blob/V4-stable/core/template/dashboard/cmd.info.numeric.tile.html
    Images : https://github.com/ajja17/thermometreIMG/tree/master/cmd.info.numeric.thermometreIMG2
	Modification pour NAK 07-02-2021
-->
  <div class="title #hide_name#">
    <div  class="cmdName">#name_display#</div>
  </div>
  <div class="content-sm">
    <div class="pull-left">
    	<span id="thermo#id#"></span>
    </div>
    <div class="pull-right">
      <div>
        <span class="pull-right unitValue">#unite#</span>
        <span class="pull-right state currentValue"></span>
      </div>
      <div class="statsPart1 #hide_history#">
        <div class="stats"><span title='Min' class='tooltips'>Min : #minHistoryValue#</span></div>
        <div class="stats"><span title='Max' class='tooltips'>Max : #maxHistoryValue#</span></div>
        <div class="stats"><span title='Moyenne' class='tooltips'>Moy : #averageHistoryValue#</span></div>
      </div>
    </div>
  </div>
  <div class="#hide_history#">
      <div class="stats"><span title='Tendance' class='tooltips'>Tendance : <i class="#tendance#"></i></span></div>
  </div>

  <script>
    jeedom.cmd.update['#id#'] = function(_options){
      
      var cmd = $('.cmd[data-cmd_id=#id#]');
      var imgNumber = '';
      var temperature = parseFloat(_options.display_value).toFixed(1);
      var hideHistory 	= ('#hide_history#'!='#'+'hide_history#') ? "#hide_history#" : "off";
      var version = ('#version#'!='#'+'version#') ? "#version#" : "";
      var largeurPx = "20";
      if (version === 'dashboard'){
        largeurPx = ('#largeurDashboardPx#'!='#'+'largeurDashboardPx#') ? "#largeurDashboardPx#" : "20";
      }else{
        largeurPx = ('#largeurMobilePx#'!='#'+'largeurMobilePx#') ? "#largeurMobilePx#" : "20";
      }
      
      // borne Min et max largeur
      if (largeurPx<20){
        largeurPx = 20;
      }else if (largeurPx>29){
        largeurPx = 29;
      }
      
      var largeurWidget = 80 + parseInt(largeurPx);
      largeurPx = largeurPx + 'px';
      
      var hasCommandIcon = cmd.find('.title div.cmdName i').is('i');
      var hasCommandName = cmd.find('.title div.cmdName').text().length > 0;
      var pos =10;
      if (hasCommandName || hasCommandIcon){
        cmd.find('.title').css('cssText', 'padding-bottom: ' + pos + 'px !important;');
        pos=0;
      }
      
      if (temperature <=0){
        imgNumber = '00';
      }else if (temperature > 0 && temperature <= 5) {
        imgNumber = '00';
      }else if (temperature > 5 && temperature <= 10) {
        imgNumber = '01';
      }else if (temperature > 10 && temperature <= 13) {
        imgNumber = '02';
      }else if (temperature > 13 && temperature <= 16) {
        imgNumber = '03';
      }else if (temperature > 16 && temperature <= 18) {
        imgNumber = '04';
      }else if (temperature > 18 && temperature <= 20) {
        imgNumber = '05';
      }else if (temperature > 20 && temperature <= 22) {
        imgNumber = '06';
      }else if (temperature > 22 && temperature <= 24) {
        imgNumber = '07';
      }else if (temperature > 24 && temperature <= 26) {
        imgNumber = '08';
      }else if (temperature > 26 && temperature <= 28) {
        imgNumber = '09';
      }else if (temperature > 28 && temperature <= 34) {
        imgNumber = '10';
      }else{
        imgNumber = '10';
      }
      
      cmd.find('#thermo#id#').empty().append('<img class="thermoImg" src="data/img/img/Thermo' + imgNumber + '.png"></img>');
      cmd.find('.thermoImg').css('cssText', 'width:' + largeurPx + ' !important;');
      
      var imgHeight = document.querySelector(".thermoImg").clientHeight;
      
      var imgMaxHeight = 93;
      var imgMinHeight = 70;
      
      cmd.find('div.content-sm').css('cssText','height: ' + imgMinHeight +'px !important;min-height: ' + imgMinHeight +'px !important; max-height: ' + imgMaxHeight + 'px !important;')
   	  if (imgHeight>imgMinHeight){
        pos = (imgHeight - imgMinHeight)/2;
      }
      
      cmd.attr('title','Date de valeur : '+_options.valueDate+'<br/>Date de collecte : '+_options.collectDate)
      cmd.find('.state').empty().append(temperature);
		
      var positionTop = 0;
      if (hideHistory == 'hidden'){
        var positionTop = 25 + pos;
      }
      else{
        cmd.find('div.statsPart1').css('cssText', 'padding-top: ' + (20 + pos) + 'px !important;text-align: left !important');
        var positionTop = pos;
      }
      
      cmd.find('.stats').css('line-height', '10px');
      
      var cssCurrentValue = 'position: relative !important;top: ' + positionTop + 'px !important;';
      cmd.find('.unitValue').css('cssText', cssCurrentValue );
      cmd.find('.state').css('cssText', cssCurrentValue + 'font-size: 15px !important;');
      cmd.find('div span.tooltips').css('cssText', 'font-size: 10px !important;font-weight: normal !important;');
      cmd.css("padding-bottom", "15px");
      cmd.css("width", largeurWidget + "px");
    }
    jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#',alertLevel:'#alertLevel#'});
  </script>
</div>

Ensuite les fichiers images que j’ai trouvé sur internet et que je salue aussi leurs auteurs
img-11.zip.txt (218,8 Ko)
Et enfin le résultat sur la tuile en dashboard
Capture d’écran 2021-02-14 à 19.39.18
Merci

1 « J'aime »

Bonsoir,

Y a pas de procédure d’installation ?

C’est compatible avec quel version de Jeedom ?

1 « J'aime »

Hello,

Ben comment ça tu sais pas mettre les mains dans le cambouis :thinking:

Testé sous jeedom 2, marche pas :rofl: :rofl: :rofl:

Moi oui mais ce n’est pas forcement le cas de tout les jeedomiens …

et a relire le code il me semble que ça va sortir des erreurs … à voir !

1 « J'aime »

Bonjour

J’ai présupposé que les utilisateurs de community Widget savaient installer un widget , cela étant dit si tu pourrais nous pondre une procédure d’installation , je ne serais pas contre de l’adopter systématiquement dans mes futures publications et je t’en remercie d’avance.
Concernant sa compatibilité tu as raison , mais je te rassure il fonctionne très bien sur jeedom stable version 4.1.19, ainsi que sur jeedom version beta 4.1.20.
Cordialement

Bonsoir NAK,

Rendons a @Heliospeed ce qui lui reviens et arrête les widgets :rofl:

Ah bon car moi j’obtiens:
image
en plus d’avoir ceci:
image
Avec le message suivant:

Et les débutants ils font comment?

Ne crois tu pas que tu es gonflé d’osé demander cela à @olive c’est ton widget pas le siens, c’est toi qui partage donc a toi de faire la doc

Edit:
image

Après correction c’est mieux

Arrête les partages voir même arrête Jeedom :rofl:

2 « J'aime »

Modérateur [OFF]

Trés cher NAK je vais sûrement un peut dur mais ce que tu nous présente la n’est pas fonctionnel.

En se rapprochant des des sources que tu a utiliser on se rend compte que ta photocopieuse est défectueuse et qu’elle ajoute des erreurs voir même oublie des lignes …

A chacun sa peine et je ne suis pas une poule pondeuse de procédure d’installation d’une pale copie qui ne fonctionne pas, de plus c’est ton travail lorsque tu présente quel que chose d’expliquer ce que tu a fait et comment et ou installer les choses.

A bon entendeur Salut.

1 « J'aime »

Bonjour, mon cher @olive
en effet une parti de code a sauté

en ce que concerne ma demande de concernant la methodlogie pour la perceure d’instal c’est surtout que je connais ta précision (Je ne me permettrais pas de concediré un Monsieur de ta qualité technique comme poule Pendeuse)

j’Obserf que ta mis ton statut en moderateur off, cela démontre une certain Elégance de comportemnt et je t’en remercie .
je vais assayer de corriger le code de debut de partage, merci de le faire en tant q’administrateur au cas ou je n’arriverai pas et merci par avance.

Cordialement

bonjour,
de part mes convections Philosopique je ne répond jamais a une polémique.
Cordialement

fonctionne toujours pas …

Capture d’écran du 2021-02-15 03-35-34

2 « J'aime »

Bonjour,

Modérateur [OFF]

Inutile de remettre le code une seconde fois, la correction dans le premier post suffit en faisant un édit avec le petit crayon comme dans Jeedom il y a u crayon magique :joy:

Si tu ne sais pas comment faire pour l’utilisation de ce dernier, envoi un message privé à @sheldon-bot démarrer tutoriel avancé pour apprendre à utiliser les menus :wink:

Je note qu’il n’y a toujours pas d’explications pour les débutants sur la façon d’appliquer ton widget et que malgré ta correction d’après la copie d’écran d’ @olive cela ne fonctionne toujours pas, n’est pas @salvialf ou @noodom qui veux :rofl:

Bonjour,

Je viens de voir vos échanges, je suis dans le même cas que vous le widget ne fonctionne pas.

  1. Ie chemin pour les images est html/data/img/img (je ne sais pas si c’est volontaire ou non)
    image
    Ensuite les images s’affichent :
    image image image
  2. Sur mon widget, j’avais plus de variation de température, il faudra certainement réduire les conditions de températures pour ne pas dépasser 10 images (que j’ai récupéré dans le zip nommé img-11.zip dans le post initial) ou créer des images supplémentaires
    image

J’ai testé sur la version alpha de jeedom 4.2.1
Bon courage

2 « J'aime »

Salut @Heliospeed

Je suis sincèrement navré de t’avoir donné le mal de tête avec cette histoire, en effet il manquait un bout de ton code que ma souris à loupée en utilisant le symbole de code formaté.
En effet le chemin de data/img/img était fait volontairement pour pas effacer les images d’origine de ton widget.
Tout en répétant en ce qui te concerne mes respects, salutations et amitié. :herb:

Bonsoir.
Je suis un peu perdu avec ces rectif…
Finalement, quel est le code qui fonctionne ?
Merci

Bonjour,
après le message très pédagogique,de notre ami @Heliospeed .
il convient d’utiliser le code en début de partage.
si tu souhaite utiliser les 10 image de zip joint en haut de message
ou alors le widget original de notre amie hélios dont le lien est la
https://github.com/Heliospeed/jeedom_widget_v4/tree/master/thermometer
Cordialement