bonjour, rencontre un problème pour la mise en place d’un widget V4 de type « action » → « default »
inspiré de : cmd.action.other.Multi-action-Defaut que l’on trouve partout dans les pages de cette rubrique.
<div style="min-width:90px;min-height:62px;" class="cmd tooltips cmd-widget cursor #history#" data-type="action" data-subtype="other" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#" data-eqLogic_id="#eqLogic_id#">
<!-- Info Widget
Basé sur les widget de :
Mise à jour : JAG 20191125 : Ajout Temps depuis dernière action
-->
<center>
<div class="title #hide_name#">
<div class="cmdName">#valueName#</div>
</div>
<div class="content-sm ">
<span class="imgCmd imgCmd#id#"></span>
</div>
<div class="value">
<span class="timeCmd label label-default timeCmd#id#" data-type="info" data-cmd_id="#value_id#"></span>
</div>
</center>
<script>
jeedom.cmd.update['#id#'] = function(_options) {
// Paramètrage du logo
// Valeur du logo
var srcImglogo = ('#logo#' != '#' + 'logo#') ? "#logo#" : "";
var srcImglogo_T = ('#logo_type#' != '#' + 'logo_type#') ? "#logo_type#" : "png";
// Paramétrage des images
if (srcImglogo == "") {
// Variable Image pour Valeur : ON ou 1
var srcImglogoON = ('#logoON#' != '#' + 'logoON#') ? "#logoON#" : "di_day"; // nom image à changer
var srcImglogoON_T = ('#logoON_type#' != '#' + 'logoON_type#') ? "#logoON_type#" : "png";
// Variable Image pour Valeur : OFF ou 0
var srcImglogoOFF = ('#logoOFF#' != '#' + 'logoOFF#') ? "#logoOFF#" : "di_night"; // nom image à changer
var srcImglogoOFF_T = ('#logoOFF_type#' != '#' + 'logoOFF_type#') ? "#logoOFF_type#" : "png";
} else {
// Variable Image pour Valeur : ON ou 1
var srcImglogoON = srcImglogo + '_on';
var srcImglogoON_T = srcImglogo_T;
// Variable Image pour Valeur : OFF ou 0
var srcImglogoOFF = srcImglogo + '_off';
var srcImglogoOFF_T = srcImglogo_T;
};
// Paramètre "sizeh" & "sizew"
var srcImgHeight = is_numeric('#sizeh#') ? parseFloat('#sizeh#') : 80;
var srcImgWidth = is_numeric('#sizew#') ? parseFloat('#sizew#') : 80;
// Type de taille
var srcImgpourcent = ('#Pourcentage#' != '#' + 'Pourcentage#') ? "#Pourcentage#" : "NO";
if (srcImgpourcent == "NO") {
var srcImgSize = 'height=' + srcImgHeight + 'px width=' + srcImgWidth + 'px';
} else if (srcImgpourcent == "YES") {
var srcImgSize = 'height=' + srcImgHeight + '% width=' + srcImgWidth + '%';
}
// Paramétrage des images
var srcFolder = ('#dossier#' != '#' + 'dossier#') ? "#dossier#" : "divers"; // nom dossier image à changer
if (srcFolder == 'NULL') {
var srcImgURL = "data/customTemplates/dashboard/cmd.action.other.Multi-action-Defaut/";
} else {
var srcImgURL = "data/customTemplates/dashboard/cmd.action.other.Multi-action-Defaut/" + srcFolder + '/';
};
// Affichage durée changement dernier etat !!! il faut ajouter une commande après le widget => logoTime => duree pour avoir Time widget
var srcImglogoTime = '#logoTime#';
//Update
if (_options.display_value == '1' || _options.display_value == 1 || _options.display_value == '99' || _options.display_value == 99 || _options.display_value == 'on') {
if (jeedom.cmd.normalizeName('#name#') == 'on') {
$('.cmd[data-cmd_id=#id#]').hide();
} else {
$('.cmd[data-cmd_id=#id#]').show();
$('.cmd[data-cmd_id=#id#] .imgCmd#id#').empty().append('<img src="' + srcImgURL + srcImglogoON + '.' + srcImglogoON_T + '" ' + srcImgSize + '>');
}
} else {
if (jeedom.cmd.normalizeName('#name#') == 'off') {
$('.cmd[data-cmd_id=#id#]').hide();
} else {
$('.cmd[data-cmd_id=#id#]').show();
$('.cmd[data-cmd_id=#id#] .imgCmd#id#').empty().append('<img src="' + srcImgURL + srcImglogoOFF + '.' + srcImglogoOFF_T + '" ' + srcImgSize + '>');
}
}
// Affichage durée changement dernier etat
// Derniere durée changement dernier etat
//Merci @Salvialf pour le code
if (srcImglogoTime == "duree") {
$('.cmd[data-cmd_id=#id#] .timeCmd#id#').show();
jeedom.cmd.displayDuration(_options.valueDate, $('.cmd[data-cmd_id=#id#] .timeCmd#id#'));
} else if (srcImglogoTime == "date") {
$('.cmd[data-cmd_id=#id#] .timeCmd#id#').show();
var srcdate = new Date(_options.valueDate);
var srcformat = $.datepicker.formatDate('D dd/mm', srcdate);
var srctime = "à " + srcdate.getHours() + ":" + (srcdate.getMinutes() < 10 ? '0' : '') + srcdate.getMinutes();
$('.cmd[data-cmd_id=#id#] .timeCmd#id#').empty().html(srcformat + ' ' + srctime);
} else if (srcImglogoTime == "heure") {
$('.cmd[data-cmd_id=#id#] .timeCmd#id#').show();
var srcdate = new Date(_options.valueDate);
var srctime = "à " + srcdate.getHours() + ":" + (srcdate.getMinutes() < 10 ? '0' : '') + srcdate.getMinutes() + ":" + (srcdate.getSeconds() < 10 ? '0' : '') + srcdate.getSeconds() + "";
$('.cmd[data-cmd_id=#id#] .timeCmd#id#').empty().html(srctime);
};
}
jeedom.cmd.update['#id#']({
display_value: '#state#',
valueDate: '#valueDate#',
collectDate: '#collectDate#',
alertLevel: '#alertLevel#'
});
$('.cmd[data-cmd_uid=#uid#] .imgCmd#id#').off().on('click', function() {
jeedom.cmd.execute({
id: '#id#'
});
});
</script>
</div>
j’essaye de l’appliquer à un module sonoff mini installé via le plugin « ewejee »
pour mes test j’utilise soit directement le module sonoff mini qui est nommé sur la photo ci-dessous en « Lumière » en « 1 »
soit un virtuel qui est nommé « Lumière Salon » en « 2 » sur la photo
le widget « cmd.action.other.Multi-action-Defaut.html » est bien installé dans le bon répertoire, accompagné de son répertoire comprenant toutes les icônes
je précise que j’utilise ce widget sur d’autre actions et il fonctionne très bien…
le problème que je n’arrive pas à expliquer ni à contourner est le suivant
sur le module la commande « on » envoi un ordre « on » et pareil pour le « off », jusque là tout est logique
voir photo des commandes ci-dessous
dès que j’applique le widget : « cmd.action.other.Multi-action-Defaut.html » sur le paramètre de commande du « ON » id234
tout se passe bien j’ai bien l’icône du « ON » qui se transforme en image demandée par le widget !
là ou tout se gâte c’est quand j’applique ce même widget « cmd.action.other.Multi-action-Defaut.html » sur le paramètre de la commande « OFF » id235
la commande « OFF » disparaît et il ne reste que la commande « ON » avec l’icône du widget bien présente et qui du coup ne permet que de faire un « ON »… et plus de « OFF »
ma question est… quel est le problème ?, j’utilise le bon widget ???
merci pour vote aide
bon confinement