Bonjour
j’utilise le widget de compte à rebours de @Bad depuis pas mal de temps…et depuis quelques temps, la valeur du virtuel ne veut plus s’afficher dans le widget.
D’autres ont-ils le même problème ?
info complémentaire : si je code en dur le state, aucune valeur ne s’affiche dans le widget…étrange
merci
merci
cela fait 2 heures que j’essaye tout à partir du poste.
même résultat.
voici le code modifié :
<!-- WIDGET SPECIFIQUE widget "tps_restant"
Refs : https://community.jeedom.com/t/decompte-a-la-seconde-widgets-v4/10658
https://community.jeedom.com/t/plugin-compte-a-rebours/6659/
Update : 2021/01/10
Modification : Clean error on clearInterval()
-->
<div class="tooltips cmd cmd-widget" data-type="info" data-subtype="numeric" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#" data-eqLogic_id="#eqLogic_id#">
<div class="title #hide_name#">
<span class="cmdName">#name_display#</span>
</div>
<div class="content-sm">
<div id="countdown_#id#_decompte" data-cmd_id="#id#"></div>
</div>
<script>
jeedom.cmd.update['#id#'] = function(_options){
$('.cmd[data-cmd_id=#id#]').attr('title','Date de valeur : '+_options.valueDate+'<br/>Date de collecte : '+_options.collectDate)
if (interval#uid#) {
clearInterval(interval#uid#);
interval#uid# = false;
}
var timestamp = parseFloat(_options.display_value);
if (timestamp > 0) {
interval#uid# = setInterval(function () {
var dateLoc = new Date;
var tps_restant=timestamp*1000 - (dateLoc.getTime()+(dateLoc.getTimezoneOffset()+jeeFrontEnd.serverTZoffsetMin)*60000 +jeeFrontEnd.clientServerDiffDatetime);
// console.log("interval("+intervalId+")");
if (!$('#countdown_#id#_decompte').length || timestamp < 0 || tps_restant < 0) {
// console.log("clearInterval("+intervalId+")");
if (interval#uid#) {
clearInterval(interval#uid#);
interval#uid# = false;
}
$('#countdown_#id#_decompte').text(' ');
} else {
//============ CONVERSIONS
var s_restantes = tps_restant / 1000; // Secondes restantes
var i_restantes = s_restantes / 60; // Minutes restantes
var H_restantes = i_restantes / 60; // Heures restantes
s_restantes = Math.floor(s_restantes % 60); // Secondes restantes
i_restantes = Math.floor(i_restantes % 60); // Minutes restantes
H_restantes = Math.floor(H_restantes); // Heures restantes
//============ FORMATTAGE
s_restantes = s_restantes < 10 ? "0"+ s_restantes : s_restantes;
i_restantes = i_restantes < 10 ? "0"+ i_restantes : i_restantes;
H_restantes = H_restantes < 10 ? "0"+ H_restantes : H_restantes;
//==================
if (H_restantes > 0) {
$('#countdown_#id#_decompte').text(H_restantes + ":" + i_restantes + ":" +s_restantes);
} else {
$('#countdown_#id#_decompte').text(i_restantes + ":" +s_restantes);
}
}
}, 1000);
} else {
if (interval#uid#) {
clearInterval(interval#uid#);
interval#uid# = false;
}
$('#countdown_#id#_decompte').text(' ');
}
}
interval#uid# = false;
jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#',alertLevel:'#alertLevel#'});
</script>
</div>
je fais des tests simplifiés avec ce compteur:
en 3386, j’ai : (#timestamp # >= #[Chambres][TIMER][Compteur]# - 60) ? 0 : (#[Chambres][TIMER][Compteur]# - 60)
en 3387, j’ai : (#timestamp # >= #[Chambres][TIMER][Compteur]# - 30) ? 0 : (#[Chambres][TIMER][Compteur]# - 30)
mon virtuel reste vide et les captions des dates de collecte fonctionnent :
une idée ?
merci
pat
Bad
Janvier 8, 2023, 12:07
4
Hello @patator100 ,
patator100:
en 3386, j’ai : (#timestamp # >= #[Chambres][TIMER][Compteur]# - 60) ? 0 : (#[Chambres][TIMER][Compteur]# - 60)
en 3387, j’ai : (#timestamp # >= #[Chambres][TIMER][Compteur]# - 30) ? 0 : (#[Chambres][TIMER][Compteur]# - 30)
Ces formules ont l’air bonnes
Peux-tu essayer avec ce nouveau code spécialement revu pour le v4.3 :
Bonjour à tous,
Suite à la mise à jour de mon code du widget « Décompte à la seconde » / « tps_restant », voici la dernière version (conforme Jeedom v4.3) :
<!-- CUSTOM WIDGET "tps_restant_v4.3"
Community link: https://community.jeedom.com/t/widget-decompte-a-la-seconde-tps-restant/99012
Updated on: 2023-01-08
Versions supported: Jeedom v4.3
Last Modification: use v4.3 js (jeeFrontEnd, jeedom.cmd.addUpdateFunction, jeedom.cmd.refreshValue)
-->
<div class="tooltips cmd cmd-widge…
Bad