Widget Pompe à chaleur DAIKIN

Bonjour,

J’essaye de faire un widget pour mettre en forme un virtuel de ma pompe à chaleur.

une info 0 / 1 ou 2 avec une image de fond qui correspond à l’état OFF / ON ou ERREUR, la température ambiante et la température de l’eau chaude.


image

Je me suis basé sur le widget Linky de @Salvialf j’ai bien appliqué le widget à mes commandes avec les bons noms mais je n’ai que l’image qui fonctionne. En faite j’arrive à le faire fonctionner sur chaque commande séparément mais pas avec les 3 en même temps je sais pas si je me suis bien exprimé :sweat_smile:

voici le code :

<div class="cmd cmd-widget #history# widget-daikin" data-type="info" data-subtype="numeric" data-template="Daikin" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#" data-eqLogic_id="#eqLogic_id#" title="#collectDate#">
  <div class="daikin-background#id#" id="imgDaikinID#id#"></div>
  <div class="daikin-data#id# history" data-type="temperature">
    <! -- Etat Pompe -->
	<div class="daikin-dataInfo#id#" data-type="info">
		<span class="etatPompe#id# fontDigital value"></span>
	</div>	
    <! -- Temperature Ambiante -->
	<div class="daikin-dataChauffage#id#" data-type="temperature">
		<span class="intNumTemp#id# fontDigital value"></span>
		<span class="decNumTemp#id# fontDigital value"></span>
		<span class="uniteTemp#id# fontDigital value"></span>
	</div>
    <! -- Temperature Eau -->
	<div class="daikin-dataEau#id#" data-type="temperature">
		<span class="intNumTempEau#id# fontDigital value"></span>
		<span class="uniteTempEau#id# fontDigital value"></span>
	</div>	
  </div>
  <style>
	@font-face {
		font-family: "Digital-7";
		src:  url("data/customTemplates/dashboard/cmd.info.numeric.Daikin/font/digital-7.eot?") format("eot"),
		url("data/customTemplates/dashboard/cmd.info.numeric.Daikin/font/digital-7.woff") format("woff"),
		url("data/customTemplates/dashboard/cmd.info.numeric.Daikin/font/digital-7.ttf") format("truetype"),
		url("data/customTemplates/dashboard/cmd.info.numeric.Daikin/font/digital-7.svg#Digital-7") format("svg");
		font-weight:normal;
		font-style:normal;
	}
    div.widget-daikin{
		width:220px;
        height:220px;
		position:relative;
	}
    .widget-daikin span.fontDigital{
		position:absolute;
		font-family: "Digital-7";
		color: 	#C4C4C4;
	}
    .widget-daikin span.fontDigital.value{
		transform : scale(0.7,1);
		-webkit-transform:scale(0.7,1);
		-moz-transform:scale(0.7,1);
		-ms-transform:scale(0.7,1);
		-o-transform:scale(0.7,1);
	}
    .widget-daikin span.etatPompe#id# {
		font-size:37px;
		letter-spacing: 6px;
		top: 20px;
		right: 2px;
	}
    .widget-daikin span.intNumTempEau#id# {
		font-size:37px;
		letter-spacing: 6px;
		top: 105px;
		right: 2px;
	}
    .widget-daikin span.decNumTempEau#id# {
		font-size:22px;
		top: 110px;
		right: -20px;
	}
	.widget-daikin span.uniteTempEau#id# {
		font-size:15px;
		font-weight: bold;
		top: 110px;
		right: -35px;
	}
    .widget-daikin span.intNumTemp#id# {
		font-size:37px;
		letter-spacing: 6px;
		top: 105px;
	}
    .widget-daikin span.decNumTemp#id# {
		font-size:22px;
		top: 110px;
		right: -20px;
	}
	.widget-daikin span.uniteTemp#id# {
		font-size:15px;
		font-weight: bold;
		top: 110px;
		right: -35px;
	}
	.widget-daikin div.daikin-background#id# {
		width:220px;
        height:220px;
		position:absolute;
        z-index:1;
		#background-color:red;
	  	}
    .widget-daikin div.daikin-data#id# {
		width:220px;
        height:220px;
		position:absolute;
        z-index:2;
		#background-color:green;
	}
    .widget-daikin div.daikin-dataInfo#id# {
		width:220px;
        height:220px;
		position:absolute;
        z-index:3;
		#background-color:blue;
	}
    .widget-daikin div.daikin-dataChauffage#id# {
		width:220px;
        height:220px;
		position:absolute;
        z-index:4;
		#background-color:orange;
	}
    .widget-daikin div.daikin-dataEau#id# {
		width:220px;
        height:220px;
		position:absolute;
        z-index:5;
		#background-color:grey;
	}
	img.daikin-background#id# {
		width:220px;
        height:220px;
		position:relative;
        z-index:1;
		#background-color:yellow;
	  	}
  </style>
  <script>
    
    jeedom.cmd.update['#id#'] = function(_options){
      
      // VARIABLES
      var valeur = parseFloat(_options.display_value);
      var widget = $('.cmd[data-cmd_id=#id#]').closest('.eqLogic').find('.widget-daikin:first');
      var srcImgURL = 'data/customTemplates/dashboard/cmd.info.numeric.Daikin/';
      var srcImg = 'Pac_Daikin_Madoka_NOK.png';
      
      // ETAT POMPE
      if('#name#' == 'Etat Pompe'){
        
			if (valeur != '') { // Si valeur différente de vide
				if (valeur == 0) { // Si valeur = 0 pour OFF
					var srcImg = 'Pac_Daikin_Madoka_OFF.png';
				}
				else if (valeur == 1) { // Si valeur = 1 pour ON
					var srcImg = 'Pac_Daikin_Madoka_OK.png';
				}
				else if (valeur == 2) { // Si valeur = 2 pour ERROR
					var srcImg = 'Pac_Daikin_Madoka_NOK.png';
				}
			}
		widget.find('.daikin-background#id#').empty().append('<img src="' + srcImgURL + srcImg + '" class="daikin-background#id#" id="imgDaikinID#id#"/>');
      }
      
      // TEMPERATURE EAU CHAUDE
      if('#name#' == 'Temperature Eau'){
        var n = parseFloat(_options.display_value).toFixed(1);
        var _int = n.split('.')[0];
        var _dec = n.split('.')[1];
        widget.find('.intNumTempEau#id#').text(_int+".").attr('title','Valeur du '+_options.valueDate+', collectée le '+_options.collectDate);
        widget.find('.decNumTempEau#id#').text(_dec);
        widget.find('.uniteTempEau#id#').text('#unite#');
      }
      
      // TEMPERATURE CHAUFFAGE
      if('#name#' == 'Temperature Chauffage'){
        var n = parseFloat(_options.display_value).toFixed(1);
        var _int = n.split('.')[0];
        var _dec = n.split('.')[1];
        widget.find('.intNumTemp#id#').text(_int+".").attr('title','Valeur du '+_options.valueDate+', collectée le '+_options.collectDate);
        widget.find('.decNumTemp#id#').text(_dec);
        widget.find('.uniteTemp#id#').text('#unite#');
      }
    }
    
    jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#'});
setTimeout(function(){
      if($('.cmd[data-cmd_id=#id#]').closest('.eqLogic').find('.widget-daikin').length > 1){
        $('.cmd[data-cmd_id=#id#]').closest('.eqLogic').find('.widget-daikin:not(:first)').hide();
      }
    },100)
  </script>
</div>

Les images :
Pac_Daikin_Madoka_NOK Pac_Daikin_Madoka_OFF Pac_Daikin_Madoka_OK

et le rendu final devrait être à quelque chose prêt :
image

l’image de fond qui change selon l’état avec la temperature et plus tard j’aimerais rendre cliquable le rond pour switcher entre température ambiante et température de l’eau.

si quelqu’un peu m’aider.

PS : merci à @JAG de m’avoir donner un peu de son temps
PS 2 : je suis pas développeur je bidouille uniquement mais je pense que le soucis viens de la :

var widget = $('.cmd[data-cmd_id=#id#]').closest('.eqLogic').find('.widget-daikin:first');

--------------------------------

setTimeout(function(){
      if($('.cmd[data-cmd_id=#id#]').closest('.eqLogic').find('.widget-daikin').length > 1){
        $('.cmd[data-cmd_id=#id#]').closest('.eqLogic').find('.widget-daikin:not(:first)').hide();
      }

Merci

sujet sur la pompe daikin atherma 3 pour ceux qui en ont une : PAC DAIKIN Altherma et plugin daikin controler

4 « J'aime »

hello, je cherche toujours de l’aide voici le nouveau code :

( affiche la température et en cliquant sur un bouton ça remplace par la température de l’eau et vis versa )
le retour d’état de la pompe se fait par le changement de l’image de fond sois collerette grise bleu ou rouge.

<div class="cmd cmd-widget #history# widget-daikin" data-type="info" data-subtype="numeric" data-template="ThermoDaikin" data-cmd_id="#id#" title="#collectDate#">
  <div class="daikin-background#id#" id="imgDaikinID#id#"></div>
  <div class="history bloc-chauff cache" id="TempChauff" data-template="TempChauff#id#">
    <span class="intNumTemp fontDigital value"></span>
    <span class="decNumTemp fontDigital value"></span>
    <span class="uniteTemp fontDigital">°C</span>
  </div>
  <div class="history bloc-eau cache" id="TempEau" data-template="TempEau#id#">
    <span class="intNumTempEau fontDigital value"></span>
    <span class="decNumTempEau fontDigital value"></span>
    <span class="uniteTempEau fontDigital">°C</span>
  </div>
    <div class="bloc_bouton_moins" id="BoutonMoins#id#" data-template="BoutonMoins#id#" onclick="SwitchMoins()"></div>
    <div class="bloc_bouton_menu" id="BoutonMenu#id#" data-template="BoutonMenu#id#" onclick="SwitchMenu()"></div>
    <div class="bloc_bouton_plus" id="BoutonPlus#id#" data-template="BoutonPlus#id#" onclick="SwitchPlus()"></div>
  <style>
    @font-face {
		font-family: "Digital-7";
		src:  url("data/customTemplates/dashboard/cmd.info.numeric.Daikin/font/digital-7.eot?") format("eot"),
		url("data/customTemplates/dashboard/cmd.info.numeric.Daikin/font/digital-7.woff") format("woff"),
		url("data/customTemplates/dashboard/cmd.info.numeric.Daikin/font/digital-7.ttf") format("truetype"),
		url("data/customTemplates/dashboard/cmd.info.numeric.Daikin/font/digital-7.svg#Digital-7") format("svg");
		font-weight:normal;
		font-style:normal;
    }
    .widget-daikin span.fontDigital{
		font-family: "Digital-7";
		position: absolute;
		color: 	#C4C4C4;
    }
    .widget-daikin span.fontDigital.value{
		transform : scale(0.7,1);
		-webkit-transform:scale(0.7,1);
		-moz-transform:scale(0.7,1);
		-ms-transform:scale(0.7,1);
		-o-transform:scale(0.7,1);
    }
    .widget-daikin span.intNumTemp {
		font-size:51.2px;
		letter-spacing: 6px;
		top: 105px;
		right: 2px;
    }
    .widget-daikin span.decNumTemp {
		font-size:32px;
		top: 112px;
		right: -30px;
    }
    .widget-daikin span.uniteTemp {
		font-size:12.8px;
		font-weight: bold;
		top: 90px;
		right: 76px;
    }
    .widget-daikin span.intNumTempEau {
		font-size:51.2px;
		letter-spacing: 6px;
		top: 105px;
		right: 2px;
    }
    .widget-daikin span.decNumTempEau {
		font-size:32px;
		top: 112px;
		right: -30px;
    }
    .widget-daikin span.uniteTempEau {
		font-size:12.8px;
		font-weight: bold;
		top: 90px;
		right: 76px;
    }
	.widget-daikin div.daikin-background#id# img {
		width:220px;
        height:220px;
	}
    .widget-daikin div.bloc-chauff.cache {
		display:unset;
	}
    .widget-daikin div.bloc-eau.cache {
		display:none;
	}
    .widget-daikin div.bloc_bouton_moins {
		position: absolute;
		width:30px;
        height:30px;
        cursor: pointer;
        border-radius:20px;
        top: 149px;
        left: 62px;      
        opacity: 0.7;
        background: green;
	}
    .widget-daikin div.bloc_bouton_menu {
		position: absolute;
		width:30px;
        height:30px;
        cursor: pointer;
        border-radius:20px;
        top: 149px;
        left: 95px;     
        opacity: 0.7;
        background: red;
	}
    .widget-daikin div.bloc_bouton_plus {
		position: absolute;
		width:30px;
        height:30px;
        cursor: pointer;
        border-radius:20px;
        top: 149px;
        left: 127px;
        opacity: 0.7;
        background: blue;
	}  
  </style>
  <script>
    jeedom.cmd.update['#id#'] = function(_options) {
      var widget = $('.cmd[data-cmd_id=#id#]').closest('.eqLogic').find('.widget-daikin:first')
      var srcImgURL = 'data/customTemplates/dashboard/cmd.info.numeric.Daikin/'
      var srcImg = 'Pac_Daikin_Madoka_NOK.png'

      // ETAT POMPE A CHALEUR
      if ('#name#' == 'Etat Pompe'){
        var etatpompe = parseFloat(_options.display_value)
			if (etatpompe != null) { // Si valeur différente de vide
				if (etatpompe == 0) { // Si valeur = 0 pour OFF
					var srcImg = 'Pac_Daikin_Madoka_OFF.png'
				}
				else if (etatpompe == 1) { // Si valeur = 1 pour ON
					var srcImg = 'Pac_Daikin_Madoka_OK.png'
				}
				else if (etatpompe == 2) { // Si valeur = 2 pour ERREUR
					var srcImg = 'Pac_Daikin_Madoka_NOK.png'
				}
			}
      }
        widget.find('.daikin-background#id#').empty().append('<img src="' + srcImgURL + srcImg + '" class="daikin-background" data-template="IMG#id#"/>')
        
      // TEMPERATURE CHAUFFAGE
      if ('#name#' == 'Temperature Chauffage'){
        var n = parseFloat(_options.display_value).toFixed(1)
        var _int = n.split('.')[0]
        var _dec = n.split('.')[1]
        widget.find('.intNumTemp').text(_int+".").attr('title','Valeur du '+_options.valueDate+', collectée le '+_options.collectDate)
        widget.find('.decNumTemp').text(_dec)
        widget.find('[data-template=TempChauff#id#').attr('data-cmd_id', #id#)                                 
      }
 
      // TEMPERATURE EAU CHAUDE
      if ('#name#' == 'Temperature Eau'){
        widget.find('.uniteTempEau').show()
        widget.find('.intNumTempEau').text(Math.floor(_options.display_value)+".").attr('title','{{Date de valeur}} : '+_options.valueDate+'<br/>{{Date de collecte}} : '+_options.collectDate)
        widget.find('.decNumTempEau').text(Math.round((_options.display_value - Math.floor(_options.display_value)) * 10))
        widget.find('[data-template=TempEau#id#').attr('data-cmd_id', #id#)                                   
      }
    }
    jeedom.cmd.update['#id#']({display_value:'#state#', valueDate:'#valueDate#', collectDate:'#collectDate#'})

    setTimeout(function() {
      if ($('.cmd[data-cmd_id=#id#]').closest('.eqLogic').find('.widget-daikin').length > 1) {
        $('.cmd[data-cmd_id=#id#]').closest('.eqLogic').find('.widget-daikin:not(:first)').hide()
      }
    }, 100)

      // BOUTONS ACTION
      function SwitchMoins() {
      var idEau = 'TempEau'
      var idChauff = 'TempChauff'
      var element_eau = document.getElementById(idEau);
      var element_chauff = document.getElementById(idChauff);
        if(typeof element_eau !== null && element_eau !== 'undefined' ) {
           if (element_eau.style.display === "none") {
	    	   element_eau.style.display = "unset";
	    	   element_chauff.style.display = "none";
             
    	   } else {
               element_eau.style.display = "none";
	    	   element_chauff.style.display = "unset";
	       }
        }
      }
      function SwitchMenu() {
      var idEau = ('TempEau')
      var idChauff = ('TempChauff')
      var element_eau = document.getElementById(idEau);
      var element_chauff = document.getElementById(idChauff);
        if(typeof element_eau !== null && element_eau !== 'undefined' ) {
           if (element_eau.style.display === "none") {
	    	   element_eau.style.display = "unset";
	    	   element_chauff.style.display = "none";
             
    	   } else {
               element_eau.style.display = "none";
	    	   element_chauff.style.display = "unset";
	       }
        }
      }
      function SwitchPlus() {
      var idEau = 'TempEau'
      var idChauff = 'TempChauff'   
      var element_eau = document.getElementById(idEau)
      var element_chauff = document.getElementById(idChauff)
        if(typeof element_eau !== null && element_eau !== 'undefined' ) {
           if (element_eau.style.display === "none") {
	    	   element_eau.style.display = "unset"
	    	   element_chauff.style.display = "none"
             
    	   } else {
               element_eau.style.display = "none"
	    	   element_chauff.style.display = "unset"
	       }
        }
      }
        
      // MISE A L'ECHELLE 
    if ('#scale#' != '') {
      let cmd = $('.cmd[data-cmd_id=#id#]').closest('.eqLogic').find('.widget-daikin').first()
      if (cmd.attr('scaled') != '1' && '#scale#' > 0) {
        cmd.attr('scaled', '1')
        cmd.width(cmd.width()*'#scale#').height(cmd.height()*'#scale#')

        cmd.find('.daikin-background').css({
          'width' : cmd.find('.daikin-background').width()*'#scale#',
          'height' : cmd.find('.daikin-background').height()*'#scale#'
        })
        cmd.find('.intNumTemp').css({
          'font-size' : (cmd.find('.intNumTemp').css('font-size').replace(/px/i, '')*'#scale#')+'px',
          'top' : (cmd.find('.intNumTemp').css('top').replace(/px/i, '')*'#scale#')+'px',
          'right' : (cmd.find('.intNumTemp').css('right').replace(/px/i, '')*'#scale#')+'px'
        })
        cmd.find('.decNumTemp').css({
          'font-size' : cmd.find('.decNumTemp').css('font-size').replace(/px/i, '')*'#scale#'+'px',
          'top' : cmd.find('.decNumTemp').css('top').replace(/px/i, '')*'#scale#'+'px',
          'right' : cmd.find('.decNumTemp').css('right').replace(/px/i, '')*'#scale#'+'px'
        })
        cmd.find('.uniteTemp').css({
          'font-size' : cmd.find('.uniteTemp').css('font-size').replace(/px/i, '')*'#scale#'+'px',
          'top' : cmd.find('.uniteTemp').css('top').replace(/px/i, '')*'#scale#'+'px',
          'right' : cmd.find('.uniteTemp').css('right').replace(/px/i, '')*'#scale#'+'px'
        })
        cmd.find('.intNumTempEau').css({
          'font-size' : cmd.find('.intNumTempEau').css('font-size').replace(/px/i, '')*'#scale#'+'px',
          'top' : cmd.find('.intNumTempEau').css('top').replace(/px/i, '')*'#scale#'+'px',
          'right' : cmd.find('.intNumTempEau').css('right').replace(/px/i, '')*'#scale#'+'px'
        })
        cmd.find('.decNumTempEau').css({
          'font-size' : cmd.find('.decNumTempEau').css('font-size').replace(/px/i, '')*'#scale#'+'px',
          'top' : cmd.find('.decNumTempEau').css('top').replace(/px/i, '')*'#scale#'+'px',
          'right' : cmd.find('.decNumTempEau').css('right').replace(/px/i, '')*'#scale#'+'px'
        })
        cmd.find('.uniteTempEau').css({
          'font-size' : cmd.find('.uniteTempEau').css('font-size').replace(/px/i, '')*'#scale#'+'px',
          'top' : cmd.find('.uniteTempEau').css('top').replace(/px/i, '')*'#scale#'+'px',
          'right' : cmd.find('.uniteTempEau').css('right').replace(/px/i, '')*'#scale#'+'px'
        })
      }
    }        
  </script>
</div>

Je cheche a pouvoir utiliser #id#

par exemple ci je modifie :

 <div class="history bloc-chauff cache" id="TempChauff#id#" data-template="TempChauff#id#">
 <div class="history bloc-eau cache" id="TempEau#id#" data-template="TempEau#id#">

et je modifie :

      var idEau = 'TempEau#id#'
      var idChauff = 'TempChauff#id#'

le #id# ne fonctionne pas car il faut je pense que j’utilise ça :

cmd = $('.cmd[data-cmd_id=#id#]').closest('.eqLogic').find('.widget-daikin').first()

quelqu’un peu m’aider ? :frowning:


pc : les pastilles de couleurs sont temporaire

Bonne soirée

1 « J'aime »

j’ai commencé à regarder
c’est quoi ton soucis car j’ai rien fait « homis reprise des liens images du forum » ?

Sans-titre4 (1)

c’est ton code sans history de la premiére ligne

<div class="cmd cmd-widget widget-daikin" data-type="info" data-subtype="numeric" data-template="ThermoDaikin" data-cmd_id="#id#" title="#collectDate#">
  <div class="daikin-background#id#" id="imgDaikinID#id#"></div>
  <div class="history bloc-chauff cache" id="TempChauff" data-template="TempChauff#id#">
    <span class="intNumTemp fontDigital value"></span>
    <span class="decNumTemp fontDigital value"></span>
    <span class="uniteTemp fontDigital">°C</span>
  </div>
  <div class="history bloc-eau cache" id="TempEau" data-template="TempEau#id#">
    <span class="intNumTempEau fontDigital value"></span>
    <span class="decNumTempEau fontDigital value"></span>
    <span class="uniteTempEau fontDigital">°C</span>
  </div>
    <div class="bloc_bouton_moins" id="BoutonMoins#id#" data-template="BoutonMoins#id#" onclick="SwitchMoins()"></div>
    <div class="bloc_bouton_menu" id="BoutonMenu#id#" data-template="BoutonMenu#id#" onclick="SwitchMenu()"></div>
    <div class="bloc_bouton_plus" id="BoutonPlus#id#" data-template="BoutonPlus#id#" onclick="SwitchPlus()"></div>
  <style>
    @font-face {
		font-family: "Digital-7";
		src:  url("data/customTemplates/dashboard/cmd.info.numeric.Daikin/font/digital-7.eot?") format("eot"),
		url("data/customTemplates/dashboard/cmd.info.numeric.Daikin/font/digital-7.woff") format("woff"),
		url("data/customTemplates/dashboard/cmd.info.numeric.Daikin/font/digital-7.ttf") format("truetype"),
		url("data/customTemplates/dashboard/cmd.info.numeric.Daikin/font/digital-7.svg#Digital-7") format("svg");
		font-weight:normal;
		font-style:normal;
    }
    .widget-daikin span.fontDigital{
		font-family: "Digital-7";
		position: absolute;
		color: 	#C4C4C4;
    }
    .widget-daikin span.fontDigital.value{
		transform : scale(0.7,1);
		-webkit-transform:scale(0.7,1);
		-moz-transform:scale(0.7,1);
		-ms-transform:scale(0.7,1);
		-o-transform:scale(0.7,1);
    }
    .widget-daikin span.intNumTemp {
		font-size:51.2px;
		letter-spacing: 6px;
		top: 105px;
		right: 2px;
    }
    .widget-daikin span.decNumTemp {
		font-size:32px;
		top: 112px;
		right: -30px;
    }
    .widget-daikin span.uniteTemp {
		font-size:12.8px;
		font-weight: bold;
		top: 90px;
		right: 76px;
    }
    .widget-daikin span.intNumTempEau {
		font-size:51.2px;
		letter-spacing: 6px;
		top: 105px;
		right: 2px;
    }
    .widget-daikin span.decNumTempEau {
		font-size:32px;
		top: 112px;
		right: -30px;
    }
    .widget-daikin span.uniteTempEau {
		font-size:12.8px;
		font-weight: bold;
		top: 90px;
		right: 76px;
    }
	.widget-daikin div.daikin-background#id# img {
		width:220px;
        height:220px;
	}
    .widget-daikin div.bloc-chauff.cache {
		display:unset;
	}
    .widget-daikin div.bloc-eau.cache {
		display:none;
	}
    .widget-daikin div.bloc_bouton_moins {
		position: absolute;
		width:30px;
        height:30px;
        cursor: pointer;
        border-radius:20px;
        top: 149px;
        left: 62px;      
        opacity: 0.7;
        background: green;
	}
    .widget-daikin div.bloc_bouton_menu {
		position: absolute;
		width:30px;
        height:30px;
        cursor: pointer;
        border-radius:20px;
        top: 149px;
        left: 95px;     
        opacity: 0.7;
        background: red;
	}
    .widget-daikin div.bloc_bouton_plus {
		position: absolute;
		width:30px;
        height:30px;
        cursor: pointer;
        border-radius:20px;
        top: 149px;
        left: 127px;
        opacity: 0.7;
        background: blue;
	}  
  </style>
  <script>
    jeedom.cmd.update['#id#'] = function(_options) {
      var widget = $('.cmd[data-cmd_id=#id#]').closest('.eqLogic').find('.widget-daikin:first')
      var srcImgURL = 'https://community.jeedom.com/uploads/default/original/3X/'
      var srcImg = 'b/3/b3e56b9829a03807003270331ba4aba52439b6cd.jpeg'

      // ETAT POMPE A CHALEUR
      if ('#name#' == 'Etat Pompe'){
        var etatpompe = parseFloat(_options.display_value)
			if (etatpompe != null) { // Si valeur différente de vide
				if (etatpompe == 0) { // Si valeur = 0 pour OFF
					var srcImg = '1/5/1523d118929930e0b8f2a6894f3752a0f8ae1f01.jpeg'
				}
				else if (etatpompe == 1) { // Si valeur = 1 pour ON
					var srcImg = 'e/b/eb639f83bc5c36c399d1f5758627326f85ef6377.jpeg'
				}
				else if (etatpompe == 2) { // Si valeur = 2 pour ERREUR
					var srcImg = 'b/3/b3e56b9829a03807003270331ba4aba52439b6cd.jpeg'
				}
			}
      }
        widget.find('.daikin-background#id#').empty().append('<img src="' + srcImgURL + srcImg + '" class="daikin-background" data-template="IMG#id#"/>')
        
      // TEMPERATURE CHAUFFAGE
      if ('#name#' == 'Temperature Chauffage'){
        var n = parseFloat(_options.display_value).toFixed(1)
        var _int = n.split('.')[0]
        var _dec = n.split('.')[1]
        widget.find('.intNumTemp').text(_int+".").attr('title','Valeur du '+_options.valueDate+', collectée le '+_options.collectDate)
        widget.find('.decNumTemp').text(_dec)
        widget.find('[data-template=TempChauff#id#').attr('data-cmd_id', #id#)                                 
      }
 
      // TEMPERATURE EAU CHAUDE
      if ('#name#' == 'Temperature Eau'){
        widget.find('.uniteTempEau').show()
        widget.find('.intNumTempEau').text(Math.floor(_options.display_value)+".").attr('title','{{Date de valeur}} : '+_options.valueDate+'<br/>{{Date de collecte}} : '+_options.collectDate)
        widget.find('.decNumTempEau').text(Math.round((_options.display_value - Math.floor(_options.display_value)) * 10))
        widget.find('[data-template=TempEau#id#').attr('data-cmd_id', #id#)                                   
      }
    }
    jeedom.cmd.update['#id#']({display_value:'#state#', valueDate:'#valueDate#', collectDate:'#collectDate#'})

    setTimeout(function() {
      if ($('.cmd[data-cmd_id=#id#]').closest('.eqLogic').find('.widget-daikin').length > 1) {
        $('.cmd[data-cmd_id=#id#]').closest('.eqLogic').find('.widget-daikin:not(:first)').hide()
      }
    }, 100)

      // BOUTONS ACTION
      function SwitchMoins() {
      var idEau = 'TempEau'
      var idChauff = 'TempChauff'
      var element_eau = document.getElementById(idEau);
      var element_chauff = document.getElementById(idChauff);
        if(typeof element_eau !== null && element_eau !== 'undefined' ) {
           if (element_eau.style.display === "none") {
	    	   element_eau.style.display = "unset";
	    	   element_chauff.style.display = "none";
             
    	   } else {
               element_eau.style.display = "none";
	    	   element_chauff.style.display = "unset";
	       }
        }
      }
      function SwitchMenu() {
      var idEau = ('TempEau')
      var idChauff = ('TempChauff')
      var element_eau = document.getElementById(idEau);
      var element_chauff = document.getElementById(idChauff);
        if(typeof element_eau !== null && element_eau !== 'undefined' ) {
           if (element_eau.style.display === "none") {
	    	   element_eau.style.display = "unset";
	    	   element_chauff.style.display = "none";
             
    	   } else {
               element_eau.style.display = "none";
	    	   element_chauff.style.display = "unset";
	       }
        }
      }
      function SwitchPlus() {
      var idEau = 'TempEau'
      var idChauff = 'TempChauff'   
      var element_eau = document.getElementById(idEau)
      var element_chauff = document.getElementById(idChauff)
        if(typeof element_eau !== null && element_eau !== 'undefined' ) {
           if (element_eau.style.display === "none") {
	    	   element_eau.style.display = "unset"
	    	   element_chauff.style.display = "none"
             
    	   } else {
               element_eau.style.display = "none"
	    	   element_chauff.style.display = "unset"
	       }
        }
      }
        
      // MISE A L'ECHELLE 
    if ('#scale#' != '') {
      let cmd = $('.cmd[data-cmd_id=#id#]').closest('.eqLogic').find('.widget-daikin').first()
      if (cmd.attr('scaled') != '1' && '#scale#' > 0) {
        cmd.attr('scaled', '1')
        cmd.width(cmd.width()*'#scale#').height(cmd.height()*'#scale#')

        cmd.find('.daikin-background').css({
          'width' : cmd.find('.daikin-background').width()*'#scale#',
          'height' : cmd.find('.daikin-background').height()*'#scale#'
        })
        cmd.find('.intNumTemp').css({
          'font-size' : (cmd.find('.intNumTemp').css('font-size').replace(/px/i, '')*'#scale#')+'px',
          'top' : (cmd.find('.intNumTemp').css('top').replace(/px/i, '')*'#scale#')+'px',
          'right' : (cmd.find('.intNumTemp').css('right').replace(/px/i, '')*'#scale#')+'px'
        })
        cmd.find('.decNumTemp').css({
          'font-size' : cmd.find('.decNumTemp').css('font-size').replace(/px/i, '')*'#scale#'+'px',
          'top' : cmd.find('.decNumTemp').css('top').replace(/px/i, '')*'#scale#'+'px',
          'right' : cmd.find('.decNumTemp').css('right').replace(/px/i, '')*'#scale#'+'px'
        })
        cmd.find('.uniteTemp').css({
          'font-size' : cmd.find('.uniteTemp').css('font-size').replace(/px/i, '')*'#scale#'+'px',
          'top' : cmd.find('.uniteTemp').css('top').replace(/px/i, '')*'#scale#'+'px',
          'right' : cmd.find('.uniteTemp').css('right').replace(/px/i, '')*'#scale#'+'px'
        })
        cmd.find('.intNumTempEau').css({
          'font-size' : cmd.find('.intNumTempEau').css('font-size').replace(/px/i, '')*'#scale#'+'px',
          'top' : cmd.find('.intNumTempEau').css('top').replace(/px/i, '')*'#scale#'+'px',
          'right' : cmd.find('.intNumTempEau').css('right').replace(/px/i, '')*'#scale#'+'px'
        })
        cmd.find('.decNumTempEau').css({
          'font-size' : cmd.find('.decNumTempEau').css('font-size').replace(/px/i, '')*'#scale#'+'px',
          'top' : cmd.find('.decNumTempEau').css('top').replace(/px/i, '')*'#scale#'+'px',
          'right' : cmd.find('.decNumTempEau').css('right').replace(/px/i, '')*'#scale#'+'px'
        })
        cmd.find('.uniteTempEau').css({
          'font-size' : cmd.find('.uniteTempEau').css('font-size').replace(/px/i, '')*'#scale#'+'px',
          'top' : cmd.find('.uniteTempEau').css('top').replace(/px/i, '')*'#scale#'+'px',
          'right' : cmd.find('.uniteTempEau').css('right').replace(/px/i, '')*'#scale#'+'px'
        })
      }
    }        
  </script>
</div>

Hello,

merci d’avoir regardé alors déjà pour ma connaissance personnelle quand j’essaye d’utiliser idEau#id#
dans :
var element_eau = document.getElementById(idEau#id#)
ça ne fonctionne pas je l’utilise sans le #id# j’aurais aimé comprendre pourquoi.
même si j’essayé de le mettre dans la variable :
var idEau = 'TempEau'
var idEau = 'TempEau#id#'

et quand je clique sur un bouton le premier clic ne fait rien et ça fonctionne après jusqu’à ce que je recharge la page.

et vu que je suis pas développeur je voulais savoir si le code paraissait quand même cohérent et propre.

et dernière question si je rajoute la consigne de chauffage comment faire pour : l’afficher et augmenter et réduire la valeur ? par pas de 1 ?

J’ai joins le code et les fichiers :
https://1drv.ms/u/s!Apszmcx0kLhQgchsqCx_cQe_S0NNuw?e=uaVEzB

Je dois enlever le history ?

Bonne soirée et encore merci pour ton temps

Salut, a tu finalise ton widget? Ca m’interresse.

Non je ne suis décidément pas un développeur lol mais je veux bien donner les images à un dev qui veut le faire.

Ok dommage

Bonjour @nawak86 ,
y-a-t-il eu une fin heureuse sur le widget finalement ?

bonsoir,

non il est resté en l’état lol j’aurais aimé de l’aide pour corriger le soucis énoncé plus haut :

et quand je clique sur un bouton le premier clic ne fait rien et ça fonctionne après jusqu’à ce que je recharge la page.

mais bon comme je suis passé sous jeedom connect je vais plus vraiment sur l’interface de jeedom pour piloter la domotique.

++