Re,
Solution bis ([edit] suis en V4)
3 commandes On, 3 info binaires liées à ces on et 1 info générale
sur les on → configuration → Action après exécution de la commande → event sur la valeurs etat général à mettre à la valeur souhaitée
+
event sur les 2 autre valeur etat à passer à 0
widget (à modifier avec tes icones/images) :
<div class="cmd cmd-widget" data-type="action" data-subtype="other" data-cmd_id="#id#" data-template="tripleState" data-cmd_uid="#uid#" data-version="#version#" data-eqLogic_id="#eqLogic_id#">
<div class="content-xs">
<a class="btn btn-sm btn-default action cmdName tooltips" title="#name#">
<span class="iconCmd"></span>
</a>
</div>
<script>
jeedom.cmd.update['#id#'] = function(_options){
if (_options.display_value == '1' || _options.display_value == 1 || _options.display_value == '99' || _options.display_value == 99 || _options.display_value == 'on') {
$('.cmd[data-cmd_id=#id#] .iconCmd').empty().append('<i class="icon_green fas fa-check"></i>'); // <--------- Mettre ici l'icone/image On
} else {
$('.cmd[data-cmd_id=#id#] .iconCmd').empty().append('<i class="fas fa-times"></i>');// <--------- Mettre ici l'icone/image Off
}
}
jeedom.cmd.update['#id#']({display_value:'#state#'});
$('.cmd[data-cmd_uid=#uid#] .action').off().on('click', function () {
jeedom.cmd.execute({id: '#id#'});
});
if ($('.cmd[data-cmd_uid=#uid#]').last().prev().data('subtype') != undefined && $('.cmd[data-cmd_id=#id#]').last().prev().data('subtype') != 'other'
&& $('.cmd[data-cmd_uid=#uid#]').last().prev().css('display') != 'block') {
$('.cmd[data-cmd_uid=#uid#]').last().prepend('<br/>');
}
</script>
</div>
et là tu as un bouton triple

bon, ici c’est trois fois la même icone, soit faire 3 widget différent ou y ajouter des paramètres optionnels
[edit]__________________________________________________________________
Plus simple, pour le widget, avec 3 commandes on et 1 seul info maitre (que j’ai mis de 1 à 3 pour faire simple)
Les commande « on » avec une option idName = « nom de l’etat » selon le bouton dans l’affichage et le widget :
<div class="cmd cmd-widget" data-type="action" data-subtype="other" data-cmd_id="#id#" data-template="btnAlert" data-cmd_uid="#uid#" data-version="#version#" data-eqLogic_id="#eqLogic_id#">
<div class="content-xs">
<a class="btn btn-sm btn-default action cmdName tooltips" title="#name#">
<span class="iconCmd"></span>
</a>
</div>
<script>
jeedom.cmd.update['#id#'] = function(_options){
if (_options.display_value == #idName#) {
$('.cmd[data-cmd_id=#id#] .iconCmd').empty().append('<i class="icon_green fas fa-check"></i>');
} else {
$('.cmd[data-cmd_id=#id#] .iconCmd').empty().append('<i class="fas fa-times"></i>');
}
}
jeedom.cmd.update['#id#']({display_value:'#state#'});
$('.cmd[data-cmd_uid=#uid#] .action').off().on('click', function () {
jeedom.cmd.execute({id: '#id#'});
});
if ($('.cmd[data-cmd_uid=#uid#]').last().prev().data('subtype') != undefined && $('.cmd[data-cmd_id=#id#]').last().prev().data('subtype') != 'other'
&& $('.cmd[data-cmd_uid=#uid#]').last().prev().css('display') != 'block') {
$('.cmd[data-cmd_uid=#uid#]').last().prepend('<br/>');
}
</script>
</div>
On peut affiner, mettre une icone selon le idName d’ailleurs comme ça un seul widget
J’suis peut être pas très clair, n’hésites pas
[Edit 2] désolé ça commence à faire long, et je suis probablement pas dans les BPD.
2 fichiers de widgets (à mettre ds « html/data/customTemplates/dashboard » sans le .txt)
cmd.action.other.Triple_State.html.txt (1,4 Ko)
=> prend les icones attribuées aux commandes
paramètre du widget :
idName : la valeur donnée à la commande
cmd.action.other.Triple_state_Image.html.txt (1,5 Ko)
=> prend des images pour les statut on et off
paramètre du widget :
idName : la valeur donnée à la commande
imgOnUrl : l’url de l’image on
imgOffUrl : m’url de l’image off
virtuel tel que
=> « Etat_X » sont les valeurs à donner à Etat (l’info générale triple)
me donne :

(j’ai pris des images random que j’avais)