J’affiche dans un design la température mais je voudrais également pour voir y afficher l’heure à laquelle celle-ci a été mise à jour. Comment on peut faire cela ?
Tu veux savoir comment obtenir la date de mise à jour, ou comment l’afficher ?
Tu peux crer un widget (Outils > Widgets), type info, sous-type numérique, multistate. Tu coches « Time widget », dans Test tu mets 1 comme condition, et dans résultat tu mets #state# #unite#
.
Cela n’affiche pas l’heure mais le temps de dernière mise à jour (la date de collecte qui s’affiche lorsqu’on laisse le pointeur au dessus) et voilà ce que ça donne :
C’est le plus simple. Pour aller plus loin, il faut aller changer le code du widget.
.
Allez, juste pour l’exemple un petit exemple de code que j’utilise (dérivé de plusieurs exemples sur le forum y’a un moment et adapté tant bien que mal en v4) et qui donne cela :
Il y a même un peu plus vu que ça colore le fond en fonction en orange puis rouge s’il n’y a pas de mise à jour depuis 1h et 2h.
<div class="cmd cmd-widget #history#" data-type="info" data-subtype="numeric" data-template="line" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#" data-eqLogic_id="#eqLogic_id#">
<div class="content-xs">
<span class="cmdName #hide_name#">#name_display# </span> <strong class="state"></strong> #unite#
<span class="timeCmd#uid#" style="font-size:0.75em;padding : 1px;border-radius: 3px;color:white;display: inline-block;min-width: 50px;"></span>
</div>
<script>
var tps_ecoule_valuedate_#id#;
var tps_ecoule_collectdate_#id#;
//jeedom.cmd.displayDuration('#collectDate#', $('.timeCmd#uid#'));
heure_maj_#id# = '#collectDate#';
$('.timeCmd#uid#').append(heure_maj_#id#.substring(11));
jeedom.cmd.update['#id#'] = function(_options) {
var cmd = $('.cmd[data-cmd_id=#id#]')
cmd.attr('title','{{Date de valeur}} : '+_options.valueDate+'<br/>{{Date de collecte}} : '+_options.collectDate)
cmd.find('.state').empty().append(_options.display_value);
tps_ecoule_collectdate_#id# = Math.round(((new Date()).getTime() - Date.parse(_options.collectDate))/1000);
tps_ecoule_valuedate_#id# = Math.round(((new Date()).getTime() - Date.parse(_options.valueDate))/1000);
if(_options.alertLevel){
if(_options.alertLevel == 'warning'){
cmd.find('.content-xs').addClass('label label-warning')
cmd.attr('data-alertlevel','warning');
}else if(_options.alertLevel == 'danger'){
cmd.find('.content-xs').addClass('label label-danger')
cmd.attr('data-alertlevel','danger');
}else{
cmd.find('.content-xs').removeClass('label label-warning label-danger')
cmd.attr('data-alertlevel','none');
}
}
if (_options.no_collectdate_alarm == "1") { } else {
if(tps_ecoule_collectdate_#id# >= 7200){
$('.timeCmd#uid#').css("background-color", "#be0000");
//$('.cmd[data-cmd_id=#id#] .tps_ecoule_collectdate').css("background-color", "#d9534f");
} else if(tps_ecoule_collectdate_#id# >= 3600){
$('.timeCmd#uid#').css("background-color", "#orange");
//$('.cmd[data-cmd_id=#id#] .tps_ecoule_collectdate').css("background-color", "orange");
} else {
$('.timeCmd#uid#').css("background-color", "#43802d");
}
}
}
jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#',alertLevel:'#alertLevel#',no_valuedate_alarm:'#no_valuedate_alarm#',no_collectdate_alarm:'#no_collectdate_alarm#'})
</script>
</div>
Autrement, possibilité d’afficher la date/heure de la valeur relevée : valueDate(Commande,« H:i »)
Exemple valueDate(#[Salon][Température salon][Température]#,« H:i »)
Ah mais oui, c’est encore plus simple effectivement.
En reprenant mon premier exemple, si on met #state# #unite# <br> <span style="font-size:0.5em;">#collectDate#<span>
dans le champ résultat et en décochant « Time widget », voilà ce qu’on obtient :
Bonjour,
Question, vous êtes encore en v3? car là ce que vous montrez c’est le plugin widget
Non je suis en V4 je viens de réinstaller le plugin et j’ai toujours le souci
Alors déjà il ne faut plus passer par le plugin-widget qui n’est pas compatible avec la v4 car depuis cette dernière l’outils widget est intégrer à la v4 et vous le trouverez depuis le menu Outils => Widgets.
puis Ajouter et là vous trouverez ce que vous propose @seb821 type info, sous-type numérique, multistate. Tu coches « Time widget », dans Test tu mets 1 comme condition, et dans résultat tu mets
#state# #unite#
.
Merci cela fonctionne maintenant que je me suis mis au bon endroit
Par contre j’ai la date de collecte mais pas la date de valeur cela fonctionne ValueDate
Celle de @seb821. J’ai par contre j’ai remplacé collectDate par valueDate