Peut-être quelque chose de trivial mais je n’arrive pas à voir comment faire pour que mes virtuels prennent en compte des infos répétitives de même valeur.
Sur l’example, toutes les données remontent en même temps et sont validés mais la valeur de la battery n’évolue pas et l’info n’est pas historisee par jeedom. La date de dernière mise à jour ne s’actualise pas.
Exactement, dans mon cas, même si la valeur est le même, j’aimerai avoir l’info de collecte.
Ici les valeurs remontent toutes en même temps sous forme json via MQTT. Donc il ne doit pas y avoir de différence.
Ces informations apparaissent sur la première page de la configuration des commandes (roue crantée sur la droite de la commande).
Je vois que tu utilises le widget gaugeIMG, tu peux essayer une modification dans le code du widget:
il faut se rendre dans le menu Outils->Widgets et cliquer sur le bouton code
sélectionner dashboard sur la gauche puis cmd.info.numeric.gaugeIMG.html au milieu, le code du widget apparaît dans la case de droite.
vers le milieu tu trouveras ce code:
if ('#time#' == 'duree') {
jeedom.cmd.displayDuration(_options.valueDate,cmd.find('.timeCmd'));
}
else if ('#time#' == 'date') {
let week = ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'];
let date = new Date(_options.valueDate.replace(' ', 'T'));
let t = _options.valueDate.split(/[- :]/);
let format = week[date.getDay()]+" "+t[2]+"/"+t[1];
let time = "à "+t[3]+":"+t[4];
cmd.find('.timeCmd').html(format+'<br>'+time);
}
else if ('#time#' == 'heure') {
let t = _options.valueDate.split(/[- :]/);
let time = "à "+t[3]+":"+t[4]+":"+t[5];
cmd.find('.timeCmd').html(time);
}
il faut remplacer toutes les mentions valueDate par la mention collectDate pour obtenir ceci au final :
if ('#time#' == 'duree') {
jeedom.cmd.displayDuration(_options.collectDate,cmd.find('.timeCmd'));
}
else if ('#time#' == 'date') {
let week = ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'];
let date = new Date(_options.collectDate.replace(' ', 'T'));
let t = _options.collectDate.split(/[- :]/);
let format = week[date.getDay()]+" "+t[2]+"/"+t[1];
let time = "à "+t[3]+":"+t[4];
cmd.find('.timeCmd').html(format+'<br>'+time);
}
else if ('#time#' == 'heure') {
let t = _options.collectDate.split(/[- :]/);
let time = "à "+t[3]+":"+t[4]+":"+t[5];
cmd.find('.timeCmd').html(time);
}
A priori ça devrait correspondre au résultat que tu souhaites obtenir.
NB: il sera nécessaire de redimensionner la tuile utilisant ce widget sur le dashboard pour que les modifications soient prises en compte.