voici le widget et le fonctionnement via scénario
le widget s'utilise avec une info donc à toi l'adaptation
donc la liste aura
le widget comprend des restes de test
(passage de couleur jquery vers css,.. )
le résultat de l'info "oui,non,auto" pour prise en compte de la couleur
.select-style#id# select option[value="Oui"] pour l'utilisation sur pc (choix coloré) qui n'est pas en mobile
Code : Tout sélectionner
<div class="cmd cmd-widget reportModeHidden" data-type="action" data-subtype="select" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#" style="display: table; width: 56px;height: 20px;">
<span class="cmdName" style="font-weight: bold;font-size : 12px;#hideCmdName#">#name_display#</span>
<div class="select-style#id#">
<select class="select-style#id# selectCmd" >#listValue#</select>
</div>
<style>
:root{
--color: white;
--background: black;
--border-color:#cmdColor#;
--radius:25px;
}
.select-style#id# {
border: 1px solid var(--border-color);
border-radius: var(--radius);
background: var(--background);
width: 66px;
height: 25px;
}
.select-style#id# select {
color: var(--color)!important;
padding: 0px 5px;
border: none;
box-shadow: none;
background: transparent!important;
background-image: none;
}
.select-style#id# select:focus {
outline: none;
}
.select-style#id# select option[value="Oui"] {
color: green;
}
.select-style#id# select option[value="Non"] {
color: red;
}
.select-style#id# select option[value="Auto"] {
background: orange;
color: white;
}
</style>
<script>
jeedom.cmd.update['#id#'] = function(_options){
if (_options.display_value == "Oui" ) {
$(".cmd[data-cmd_uid=#uid#] .selectCmd").css('--color', 'white');
$(".cmd[data-cmd_uid=#uid#] .select-style#id#").css('--background', 'green');
$(".cmd[data-cmd_uid=#uid#] .select-style#id#").css('--border-color', 'white');
}
else if (_options.display_value == "Non" ) {
$(".cmd[data-cmd_uid=#uid#] .selectCmd").css('--color', 'white');
$(".cmd[data-cmd_uid=#uid#] .select-style#id#").css('--background', 'red');
$(".cmd[data-cmd_uid=#uid#] .select-style#id#").css('--border-color', 'white');
}else {
$(".cmd[data-cmd_uid=#uid#] .select-style#id#").css('--background', 'white');
$(".cmd[data-cmd_uid=#uid#] .selectCmd").css('--color', '#ff9900');
$(".cmd[data-cmd_uid=#uid#] .select-style#id#").css('--border-color', 'lightgray');
}
}
jeedom.cmd.update['#id#']({display_value: '#state#'});
$(".cmd[data-cmd_uid=#uid#] .selectCmd").on('change', function () {
jeedom.cmd.execute({id: '#id#', value: {select: $(this).value()}});
});
</script>
</div>
pour le fonctionnement un scénario
si info "non" variable sur absent
si info "oui" variable sur présent
si info auto c'est le Nut qui dit présent ou absent (incrémentation de variable)
déclencheur :
les info des listes ;
les variables des Nut
pour moi
#[Recapitulatif][Présence][Presence_Christophe]#"
#variable(present_christophe_nut)#
donc 9 déclencheurs là
"colonne nut et présence"
voici le scénario pour une personne "donc 5 fois ça"
variable / present_christophe étant le oui ou non mis en forme pour un retour text
via widget "afin de gardé un historique lisible"
> si trigger info liste == 1 ou trigger variable du nut
Code : Tout sélectionner
trigger(#[Recapitulatif][Présence][Presence_Christophe]#) == 1 OU trigger() matches "/(present_christophe_nut)/"
>> si
#[Recapitulatif][Présence][Presence_Christophe]# == "Non"
action : variable / present_christophe / 0
stop
>> si
#[Recapitulatif][Présence][Presence_Christophe]# == "Oui"
action : variable / present_christophe / 1
stop
>> si
#[Recapitulatif][Présence][Presence_Christophe]# == "Auto"
action : variable / present_christophe / la valeur de variable(present_christophe_nut)
stop

- choix liste.jpg (70.23 Kio) Consulté 2430 fois
le premier si "trigger"
reproduit 5 fois / personnes
dont un sans avoir la fonction auto puisque il n'y as pas de Nut "chambre ami"
c'est pour le chauffage !
hs : il est conseillé d'utiliser Event au lieu de variable.