Ca y est j’ai fait ma mise à jour 4.4. Après beaucoup de boulot il me reste encore quelques petits ajustements nécessaires.
Version : 4.4.2
Source : default
Branche : V4-stable
Système : Atlas
J’utilisais un widget codé pour afficher sous forme de ligne la durée en heure/minute/seconde à partir d’une valeur (seconde ou heure, ca dépend de ce que le plugin remonte).
Ca ne fonctionne plus du tout en 4.4, et plutot que de bricoler, je me demandais s’il existait une solution « officielle » ou du moins supportée.
Ici c’est pour l’affichage d’un widget issu du plugin NUT, mais ca peut etre l’uptime de livebox, peu importe en fait:
Si rien n’est possible ou n’existe, je vais essayer de comprendre ce qui a pu casser !
Merci !
Je mets le code, si jamais ca intéresse quelqu’un (en 4.3, du coup !). J’ai rien inventé, il était sur l’ancien forum, je l’avais juste retravaillé à l’époque.
cmd.info.numeric.cmd_numeric_lineJHMS.html
<div class="tooltips cmd cmd-widget #history#" data-type="info" data-subtype="numeric" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#" data-eqLogic_id="#eqLogic_id#" style="display: block;">
<center><span style="font-size : 12px !important;#hideCmdName#" class="cmdName">#name_display#</span> <strong class="state" style="font-size: 12px;"></strong></center>
<script>
jeedom.cmd.update['#id#'] = function(_options){
var duree = _options.display_value;
var j = Math.floor(duree/86400); duree %= 86400;
var h = Math.floor(duree/3600); duree %= 3600;
var m = Math.floor(duree/60);
var s = duree%60;
var txt = '';
if (j) txt += j + 'j ';
if (h) txt += h + 'h ';
if (m) txt += m + 'm ';
if (s) txt += s + 's ';
$('.cmd[data-cmd_id=#id#]').attr('title','Valeur du '+_options.valueDate+', collectée le '+_options.collectDate)
$('.cmd[data-cmd_id=#id#] .state').empty().append(txt);
if(_options.alertLevel){
$('.cmd[data-cmd_id=#id#]').removeClass('label label-warning label-danger')
if(_options.alertLevel == 'warning'){
$('.cmd[data-cmd_id=#id#]').addClass('label label-warning');
}else if(_options.alertLevel == 'danger'){
$('.cmd[data-cmd_id=#id#]').addClass('label label-danger');
}
}
}
jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#',alertLevel:'#alertLevel#'});
</script>
</div>
Ca me rappelle quelque chose mais c’est super vieux, je me demande si je n’avais pas basculé justement sur display value parce que value était incorrect, et maintenant je n’ai visiblement plus de valeur pour display_value
Je vais voir quand même pour modifier/ajouter un widget core qui ferait l’équivalent, c’est dommage que celui existant soit je pense trop limité, surtout pour afficher des uptimes, sur des durées comme ça, ça va encore !
Je vais en discuter avec l’équipe, voir dans quelle mesure la fonction de conversion du core pourrait aller un peu plus loin sur la conversion des durées déjà ?!
Merci @Salvialf.
En tant que dev du plugin Livebox je suis aussi intéressé pour que le core prenne en charge une conversion des info numeriques en jours heures minutes secondes soit par une fonction de conversion soit par un widget spécialisé. Pour le moment le plugin Livebox embarque un widget personnalisé « duree » que j’ai modifié pour la 4.4 (en fait je n’avais pas compris la différence entre #state# et #value# donc le problème avec la 4.4 était de ma faute)