[Partage] Danfoss Living Connect (Widget)

Oui c’est ce que je constate aussi d’ou mon incompréhension. Je vais reproduire mon cas, il y a peut être qqch que je fais pas bien. Si ma syntaxe parait bonne c’est le principal :slight_smile: (je découvre le js c’est pour cela que je préférais demander).

A ne rien n’y comprendre (j’ai isolé le code dans une page web ça plantait puis d’un coup ça marche…), je reviens sur mon widget (qui lui n’a pas eu de changement de code) et la ma fonction retourne bien la valeur attendu (alors que ça plantait ce matin encore).

Il y avait peut-être un problème de cache ou qqch comme ça. Pour moi le sujet est donc clos, je vais pouvoir adapter pour la version 4.2.

Merci

Salut naboleo,

Je viens de mettre en ligne une nouvelle version. Normalement ça fonctionne avec la version 4.2, j’ai fais ça rapidement (j’espère que ça marchera chez toi aussi).

Hello

Je confirme ça refonctionne !

Hello,

Il y a un petit souci de position en mode mobile je pense


(chrome sous android)

Oui j’avais vu (mais pas eu le temps de regarder). C’est que dans la version 4.2 normalement.
Mais j’ai traité le on de remonté des valeurs en priorité.
Encore merci pour tes tests. Je te dirai quand c’est fait.

Clair, c’est juste cosmétique ! Donc no hurry

Merci pour ton boulot et ton temps en tout cas

Hello,
J’ai poussé une nouvelle version qui fonctionne en aussi 4.2.
Il y a un style width qui n’est plus présent en 4.2, je l’ai réajouté comme ça le positionnement est identique :slight_smile:

1 « J'aime »

Hello

sur github et dans la branche master ?

Oui, j’ai fais le commit mais pas le push.
Ça devrait être bon maintenant.
Merci

Hello

Ce matin, après mise à jour de la 4.2 (dernière version) c’est de nouveau tout cassé … :face_with_head_bandage:
image

C’est corrigé, c’est compatible en 4.2.1, il y avait un div en moins que dans la version 4.2.0.
Normalement c’est bon.

Merci pour ta réactivité dans les tests :slight_smile:

1 « J'aime »

@Heliospeed
@kiboost
@arnog23
@naboleo
@flbt
Bonjour,
je suis en version 4.2.9 sur Odroid C2
je viens de constater que toutes mes têtes POPP affichent une température de consigne de -2°.
Si je teste l’équipement j’ai bien la température de consigne réelle.
En activant, sur le widget la flèche > rien ne bouge, la température affichée reste à -2°
Aurais tu une idée pour corriger
Cordialement

Bonjour,
As tu la dernière version d’installé ?
J’avais aussi -2 car j’avais oublié de récupéré la version compatible en > 4.2.1

jeedom_widget_v4/danfossLivingConnect at master · Heliospeed/jeedom_widget_v4 (github.com)

Tiens moi au courant

cordialement

@Heliospeed
Bonjour,
C’est reparti :grinning:
Merci pour ton aide.
Un petit détail: pourquoi des chiffres de couleur rouge ou noir dans l’affichage de la température de consigne?
Bonne journée
Cordialement

Bonjour, normalement le chiffre est en rouge lorsque la consigne est en attente (consigne pending) et passe en noir lorsqu’elle a bien été prise en compte.
Bonne journée

@Heliospeed
OK merci
Tout fonctionne parfaitement.
Cordialement

Bonjour,

Pour ceux que ça interesse, j’ai réalisé une nouvelle version qui fonctionne avec la version 4.4.0 (alpha) et qui est rétro compatible avec les précédentes.

PS : Pour ceux qui ont migrés et qui sont passé sur le nouveau plugin : #plugin-zwavejs, la commande pending ne fonctionne plus. En attendant, j’ai réalisé un virtuel par vanne pour recréer cette commande + un scénario commun. l’explication est ici.

Cordialement

Bonsoir,

Je viens de terminer une nouvelle version du widget uniquement compatible avec les versions 4.4
J’ai supprimé les spécificités des anciennes version et remplacé le code jQuery.

Je pousserai dans GitHub des que tout sera ok.

<div class="cmd cmd-widget" data-type="action" data-subtype="slider" data-template="button" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#" data-eqLogic_id="#eqLogic_id#" style="min-width: 80px;display: inline-flex;flex-direction: column; align-items: center;">
  <!--
	  Name: cmd.action.slider.danfossLivingConnect.html
    Jeedom Compatibility: v4.4.5
    Version 2.0.0 - 2024-04-29
  -->
  <div class="danfossImg #version#_danfossImg"></div><div class="state_danfoss state_#version#_danfoss state_color_font_default consigne value"></div><div class="statedec_danfoss statedec_#version#_danfoss state_color_font_default consigne value"></div><div class="unite_danfoss unite_#version#_danfoss state_color_font_default value">#unite#</div><div class="btn_ctrl_danfoss minus_danfoss minus_#version#_danfoss"></div><div class="btn_ctrl_danfoss plus_danfoss plus_#version#_danfoss"></div><div class="btn_switch_danfoss switch_#version#_danfoss"></div><input type="hidden" class="switch#id#"></input>
  <style>
    @font-face{font-family:Digital-7;src:url(data/customTemplates/dashboard/cmd.action.slider.danfossLivingConnect/digital-7-italic.ttf) format("truetype")}[data-cmd_id="#id#"] cmd cmd-widget{position:relative;height:81px}[data-cmd_id="#id#"] .dashboard_danfossImg{width:80px;height:80px;background:url(data/customTemplates/dashboard/cmd.action.slider.danfossLivingConnect/danfoss.png) no-repeat}[data-cmd_id="#id#"] .mobile_danfossImg{width:80px;height:80px;background:url(data/customTemplates/dashboard/cmd.action.slider.danfossLivingConnect/danfoss_buttons.png) no-repeat}[data-cmd_id="#id#"] .danfossLC_buttons{width:80px;height:80px;background:url(data/customTemplates/dashboard/cmd.action.slider.danfossLivingConnect/danfoss_buttons.png) no-repeat}[data-cmd_id="#id#"] .danfossLC_plus{width:80px;height:80px;background:url(data/customTemplates/dashboard/cmd.action.slider.danfossLivingConnect/danfoss_plus.png) no-repeat}[data-cmd_id="#id#"] .danfossLC_minus{width:80px;height:80px;background:url(data/customTemplates/dashboard/cmd.action.slider.danfossLivingConnect/danfoss_minus.png) no-repeat}[data-cmd_id="#id#"] .danfossLC_down{width:80px;height:80px;background:url(data/customTemplates/dashboard/cmd.action.slider.danfossLivingConnect/danfoss_down.png) no-repeat}[data-cmd_id="#id#"] .state_danfoss{font-family:Digital-7;font-size:23px;font-weight:400!important;position:absolute;letter-spacing:1px}[data-cmd_id="#id#"] .state_dashboard_danfoss{top:60px;padding-right:5px}[data-cmd_id="#id#"] .state_mobile_danfoss{top:58px;padding-right:5px}[data-cmd_id="#id#"] .statedec_danfoss{font-family:Digital-7;font-size:12px;font-weight:400!important;position:absolute}[data-cmd_id="#id#"] .statedec_dashboard_danfoss{top:63px;padding-left:20px}[data-cmd_id="#id#"] .statedec_mobile_danfoss{top:68px;padding-left:24px}[data-cmd_id="#id#"] .unite_danfoss{font-family:Digital-7;font-size:8px;font-weight:400!important;position:absolute}[data-cmd_id="#id#"] .unite_dashboard_danfoss{top:54px;padding-left:23px}[data-cmd_id="#id#"] .unite_mobile_danfoss{top:63px;padding-left:24px}[data-cmd_id="#id#"] .btn_ctrl_danfoss{position:absolute;cursor:pointer;width:14px;height:21px}[data-cmd_id="#id#"] .minus_dashboard_danfoss{top:54px;margin-right:64px}[data-cmd_id="#id#"] .minus_mobile_danfoss{top:60px;margin-right:64px}[data-cmd_id="#id#"] .plus_dashboard_danfoss{top:54px;margin-left:64px}[data-cmd_id="#id#"] .plus_mobile_danfoss{top:60px;margin-left:64px}[data-cmd_id="#id#"] .btn_switch_danfoss{position:absolute;cursor:pointer;width:21px;height:17px}[data-cmd_id="#id#"] .switch_dashboard_danfoss{top:87px}[data-cmd_id="#id#"] .switch_mobile_danfoss{top:94px}
  </style>
  <script>
    function showImg(e,t){document.querySelector('.cmd[data-cmd_uid="'+e+'"]  .danfossImg').classList.remove("danfossLC_buttons").classList.remove("danfossLC_plus").remove("danfossLC_minus").remove("danfossLC_down").addClass(t)}function hideWidget(e,t){var s=getWidgetInfoNumericDefault(e,t);null!==s&&(s.style.display="none")}function getWidgetInfoNumericDefault(e,t){let s=!1;var n=document.querySelector('.cmd[data-cmd_uid="'+e+'"]').parentElement.getElementsByTagName("span");for(let e of n){if(e.getAttribute("class").includes("cmdName")&&e.innerHTML===t&&(s=!0),s&&e.getAttribute("class").includes("value"))return e.parentElement.parentElement;if(s){var a=e.parentElement.getElementsByTagName("strong");for(let e of a)if(e.getAttribute("class").includes("state"))return e.parentElement.parentElement}}return null}function getWidgetInfoNumericDefaultValue(e,t){let s=!1;var n=document.querySelector('.cmd[data-cmd_uid="'+e+'"]').parentElement.getElementsByTagName("span");for(let e of n){if(e.getAttribute("class").includes("cmdName")&&e.innerHTML===t&&(s=!0),s&&e.getAttribute("class").includes("value"))return e.innerText;if(s){var a=e.parentElement.getElementsByTagName("strong");for(let e of a)if(e.getAttribute("class").includes("state"))return e.innerText}}return""}function setDanfossValue(e,t,s){var n=parseFloat(t),a=Math.floor(n),d=Math.round(10*(n-a)),o=document.querySelector('.cmd[data-cmd_uid="'+e+'"]');o.getElementsByClassName("state_danfoss")[0].innerText=a,o.getElementsByClassName("statedec_danfoss")[0].innerText=0!==d?d:"",""===s||s===switch_mode_consigne?o.getElementsByClassName("unite_danfoss")[0].innerText="#unite#":s===switch_mode_battery&&(o.getElementsByClassName("unite_danfoss")[0].innerText="%")}function setConsignePending(e,t,s){let n=getWidgetInfoNumericDefault(t,consigne_pending_cdeName).getElementsByClassName("value"),a=!1;n.length>0&&(n[0].innerText=s,a=!0),a||(n=getWidgetInfoNumericDefault(t,consigne_pending_cdeName).getElementsByClassName("state"),n.length>0&&(n[0].innerText=s,a=!0)),a&&(clearTimeout(window["timerHandle"+e]),window["timerHandle"+e]=setTimeout(function(){jeedom.cmd.execute({id:e,value:{slider:s}})},1e3))}function getDanfossValueDisplay(e){let t=getDanfossConsigneValue(e,consigne_cdeName,-1),s=getDanfossConsigneValue(e,consigne_pending_cdeName,-2),n=t;var a=document.querySelector('.cmd[data-cmd_uid="'+e+'"]');return t!==s?(n=s,a.getElementsByClassName("state_danfoss")[0].style.color="#bb3434",a.getElementsByClassName("statedec_danfoss")[0].style.color="#bb3434",a.getElementsByClassName("unite_danfoss")[0].style.color="#bb3434"):(a.getElementsByClassName("state_danfoss")[0].style.color="#323232",a.getElementsByClassName("statedec_danfoss")[0].style.color="#323232",a.getElementsByClassName("unite_danfoss")[0].style.color="#323232"),n}function getDanfossBatteryValue(e){let t=getWidgetInfoNumericDefaultValue(e,battery_cdeName);isNaN(parseFloat(t))&&(consigne=-3);var s=document.querySelector('.cmd[data-cmd_uid="'+e+'"]');return s.getElementsByClassName("state_danfoss")[0].style.color="#323232",s.getElementsByClassName("statedec_danfoss")[0].style.color="#323232",s.getElementsByClassName("unite_danfoss")[0].style.color="#323232",parseFloat(t)}function getDanfossConsigneValue(e,t,s){let n=getWidgetInfoNumericDefaultValue(e,t);return isNaN(parseFloat(n))?s:parseFloat(n)}function setDanfossConsignePendingValue(e,t){setWidgetInfoNumericDefaultValue(e,consigne_pending_cdeName,t.toFixed(1))}function setWidgetInfoNumericDefaultValue(e,t,s){getWidgetInfoNumericDefault(e,t).getElementsByClassName("value")[0].innerText=s.toFixed(1)}function showImg(e,t){$(".cmd[data-cmd_uid="+e+"] .danfossImg").removeClass("danfossLC_buttons").removeClass("danfossLC_plus").removeClass("danfossLC_minus").removeClass("danfossLC_down").addClass(t)}var consigne_pending_cdeName="Consigne pending",consigne_cdeName="Consigne",battery_cdeName="Batterie",switch_mode_consigne="consigne",switch_mode_battery="battery";hideWidget("#uid#",consigne_cdeName),hideWidget("#uid#",consigne_pending_cdeName),hideWidget("#uid#",battery_cdeName),jeedom.cmd.addUpdateFunction("#id#",function(e){is_object(cmd=document.querySelector('.cmd[data-cmd_uid="#uid#"]'))&&setDanfossValue("#uid#",getDanfossValueDisplay("#uid#"),switch_mode_consigne)}),jeedom.cmd.refreshValue([{cmd_id:"#id#",value:"#state#",display_value:"#state#",valueDate:"#valueDate#",collectDate:"#collectDate#",alertLevel:"#alertLevel#",unit:"#unite#"}]),document.querySelector('.cmd[data-cmd_uid="#uid#"] .plus_danfoss').addEventListener("mouseover",()=>{showImg("#uid#","danfossLC_plus")}),document.querySelector('.cmd[data-cmd_uid="#uid#"] .plus_danfoss').addEventListener("mouseout",()=>{showImg("#uid#","dashboard_danfossImg")}),document.querySelector('.cmd[data-cmd_uid="#uid#"] .plus_danfoss').addEventListener("click",()=>{let e=parseFloat("#maxValue#"),t=isNaN(parseFloat("#step#"))?.5:parseFloat("#step#");var s=getDanfossValueDisplay("#uid#");if(parseFloat(s)<=e-t){let e=(parseFloat(s)+t).toFixed(1);setDanfossValue("#uid#",e,switch_mode_consigne),setConsignePending("#id#","#uid#",e)}}),document.querySelector('.cmd[data-cmd_uid="#uid#"] .minus_danfoss').addEventListener("mouseover",()=>{showImg("#uid#","danfossLC_minus")}),document.querySelector('.cmd[data-cmd_uid="#uid#"] .minus_danfoss').addEventListener("mouseout",()=>{showImg("#uid#","dashboard_danfossImg")}),document.querySelector('.cmd[data-cmd_uid="#uid#"] .minus_danfoss').addEventListener("click",()=>{let e=parseFloat("#minValue#"),t=isNaN(parseFloat("#step#"))?.5:parseFloat("#step#");var s=getDanfossValueDisplay("#uid#");if(parseFloat(s)>=e+t){let e=(parseFloat(s)-t).toFixed(1);setDanfossValue("#uid#",e,switch_mode_consigne),setConsignePending("#id#","#uid#",e)}}),document.querySelector('.cmd[data-cmd_uid="#uid#"] .btn_switch_danfoss').addEventListener("mouseover",()=>{showImg("#uid#","danfossLC_down")}),document.querySelector('.cmd[data-cmd_uid="#uid#"] .btn_switch_danfoss').addEventListener("mouseout",()=>{showImg("#uid#","dashboard_danfossImg")}),document.querySelector('.cmd[data-cmd_uid="#uid#"] .btn_switch_danfoss').addEventListener("click",()=>{let e=document.querySelector('.cmd[data-cmd_uid="#uid#"] .switch#id#'),t=-4;""===e.innerText||e.innerText===switch_mode_consigne?(e.innerText=switch_mode_battery,t=getDanfossBatteryValue("#uid#")):e.innerText===switch_mode_battery&&(e.innerText=switch_mode_consigne,t=getDanfossValueDisplay("#uid#")),setDanfossValue("#uid#",t,e.innerText)});
  </script>
</div>

Bonjour,

Bonne nouvelle, j’attends pour mes têtes POPP

Je ne sais pas s’il existe un widget pour les têtes POPP particulié. Mais j’imagine que celui-ci peut fonctionner s’il y a à minima les 4 commandes (Batterie/Info - Consigne Pending/Info - Consigne/Info et Commande/Action)