Erreur sur compte à rebours depuis install Jeedom 4.3.5

Bonjour,
Sur mon dashboard j’utilise un widget pour avoir un compte à rebours lorsque l’arrosage se déclenche.
Depuis la dernière mise à jour de Jeedom (4.3.5) j’ai le message suivant qui arrive dans les logs en non stop :

http://192.168.1.200/index.php?v=d&p=dashboard line 2 > injectedScript	12	
ReferenceError: serverTZoffsetMin is not defined

Dans le widget j’ai ce code :

<!--    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()+serverTZoffsetMin)*60000 + 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>

Il y a bien dedans une référence à serverTZoffsetMin :

var tps_restant=timestamp*1000 - (dateLoc.getTime()+(dateLoc.getTimezoneOffset()+serverTZoffsetMin)*60000 + clientServerDiffDatetime);

Une idée de comment corriger cela ?
Merci d’avance

Réponse ici https://doc.jeedom.com/fr_FR/dev/core4.3

Merci je comprends ce qu’il s’est passé par contre je suis incapable de modifier ce qu’il faudrait…

En test j’ai modifié :

jeedom.cmd.update['#id#'] = function(_options){

par

jeedom.cmd.addUpdateFunction('#id#',function(_options) {

mais maintenant j’ai l’erreur

Line 50	SyntaxError: missing ) after argument list
1 « J'aime »

Hello,

Comme tu rajoute une parenthésé au début, il en faut une à la fin :slight_smile:

Comme indiqué

Cordialement

Oui j’ai essayé d’ajouter une ) à la fin de la ligne 50 mais les erreurs continuent.

1 « J'aime »

Dans le code du widget, il faut juste modifier votre ligne

var tps_restant=timestamp*1000 - (dateLoc.getTime()+(dateLoc.getTimezoneOffset()+serverTZoffsetMin)*60000 + clientServerDiffDatetime);				

en

var tps_restant=timestamp*1000 - (dateLoc.getTime()+(dateLoc.getTimezoneOffset()+jeeFrontEnd.serverTZoffsetMin)*60000 + jeeFrontEnd.clientServerDiffDatetime);
					
2 « J'aime »

Ah merci ça fonctionne parfaitement maintenant.
Top !

1 « J'aime »

Bien joué cela corrige effectivement l’erreur

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