01-27-2018, 01:55 AM
Le Widget/Component Toggle est apparu il y a quelques versions.
C'est Génial !
Il contient 3 champs :
- Retours d'états
- Action allumer
- Action éteindre
et on peut même choisir la couleur affichée dans le retour d'état en fonction de l'action (ici rouge ou gris = par défaut)
Ceci est par exemple parfaitement adapté pour des variables bouléennes, ou des status de lampes, ...
Et évidemment (vous me connaissez) j'ai voulu aller plus loin.
J'ai une variable de type chauffage, qui contient 9 valeurs prédéfinies.
Perso, je n'en utilise que 2 : Mode confort et Mode éco.
Donc je me suis dit je vais utiliser le component Toggle pour basculer entre ces 2 modes.
- Retours d"états : il refuse de me proposer de choisir ma variable de type chauffage. C'est logique, car il n'a que 2 possibilités d'affichage, et la variable peut prendre 9 valeurs.
- Action allumer/éteindre : il accepte de prendre en compte les deux états qui m'intéressent
Et quand je clique une première fois sur le bouton, il passe en rouge et ma variable est bien modifiée à Mode confort. Si je reclique, elle s'affiche en vert et ma variable passe en Mode éco. Donc le Toggle fonctionne comme je souhaite qu'il fonctionne : il modifie la valeur de la variable entre les 2 options que je souhaite, et l'affichage est correct (= correspond à mon choix).
Donc le paramètre "Retours d'états" n'est pas nécessaire, SAUF si je modifie la valeur de la variable ailleurs que via DS.
Je suis obligé de lui renseigner quelque chose, et si cette chose est modifiée, alors l'affichage est modifié, et ce n'est plus cohérent.
Ma proposition :
1) ne plus proposer de choisir quelque chose dans Retour d'états. Je supprimerais même ce champ. Car en fait, on affiche le résultat de l'action prise.
2) dans les actions allumer/éteindre, ne pas permettre de choisir des éléments différents (exple : allumer une prise et éteindre une autre, non allumer et éteindre la MEME prise - idem choisir des valeurs différentes pour la même variable - ...) => l'espace utilisé par Retours d'états pourrait être occupé par la sélection de l'objet, et les champs suivants pour choisir les valeurs possibles en fonction du type d'objet sélectionné (comme dans CS)
3) si la valeur de l'objet correspond à l'action allumer, afficher le toggle dans la couleur de l'action allumer.
4) si la valeur de l'objet correspond à l'action éteindre, afficher le toggle dans la couleur de l'action éteindre
5) si la valeur de l'objet ne correspond à aucune des deux valeurs précisées dans les actions, afficher le toggle dans une couleur par défaut grisée (?), avec le bouton au milieu (?)
On aurait ainsi un super toggle qui afficherait toujours la valeur réelle, en fonction des choix précédents, et on pourrait même définir n'importe quoi comme valeur : dans mon cas, c'est une variable de type chauffage, mais cela pourrait être une variable numérique ou chaine, ou heure, ou ...., ou une position de volet, ...
Bon j'ai une solution pour contourner le problème, mais pas très élégante : je crée (encore) une variable booléene supplémentaire qui prend la valeur True ou False en fonction des 2 valeurs que je souhaite. Et il faudra également un automate supplémentaire pour modifier la valeur de ma variable booléenne. Ayant déjà plus de 160 variables et plus de 200 automates, je souhaiterais éviter cet artifice...
Qu'en pensez-vous ?
"Il parait que la nuit porte conseil, je vais me coucher avant d'avoir d'autres idées farfelues"
C'est Génial !
Il contient 3 champs :
- Retours d'états
- Action allumer
- Action éteindre
et on peut même choisir la couleur affichée dans le retour d'état en fonction de l'action (ici rouge ou gris = par défaut)
Ceci est par exemple parfaitement adapté pour des variables bouléennes, ou des status de lampes, ...
Et évidemment (vous me connaissez) j'ai voulu aller plus loin.
J'ai une variable de type chauffage, qui contient 9 valeurs prédéfinies.
Perso, je n'en utilise que 2 : Mode confort et Mode éco.
Donc je me suis dit je vais utiliser le component Toggle pour basculer entre ces 2 modes.
- Retours d"états : il refuse de me proposer de choisir ma variable de type chauffage. C'est logique, car il n'a que 2 possibilités d'affichage, et la variable peut prendre 9 valeurs.
- Action allumer/éteindre : il accepte de prendre en compte les deux états qui m'intéressent
Et quand je clique une première fois sur le bouton, il passe en rouge et ma variable est bien modifiée à Mode confort. Si je reclique, elle s'affiche en vert et ma variable passe en Mode éco. Donc le Toggle fonctionne comme je souhaite qu'il fonctionne : il modifie la valeur de la variable entre les 2 options que je souhaite, et l'affichage est correct (= correspond à mon choix).
Donc le paramètre "Retours d'états" n'est pas nécessaire, SAUF si je modifie la valeur de la variable ailleurs que via DS.
Je suis obligé de lui renseigner quelque chose, et si cette chose est modifiée, alors l'affichage est modifié, et ce n'est plus cohérent.
Ma proposition :
1) ne plus proposer de choisir quelque chose dans Retour d'états. Je supprimerais même ce champ. Car en fait, on affiche le résultat de l'action prise.
2) dans les actions allumer/éteindre, ne pas permettre de choisir des éléments différents (exple : allumer une prise et éteindre une autre, non allumer et éteindre la MEME prise - idem choisir des valeurs différentes pour la même variable - ...) => l'espace utilisé par Retours d'états pourrait être occupé par la sélection de l'objet, et les champs suivants pour choisir les valeurs possibles en fonction du type d'objet sélectionné (comme dans CS)
3) si la valeur de l'objet correspond à l'action allumer, afficher le toggle dans la couleur de l'action allumer.
4) si la valeur de l'objet correspond à l'action éteindre, afficher le toggle dans la couleur de l'action éteindre
5) si la valeur de l'objet ne correspond à aucune des deux valeurs précisées dans les actions, afficher le toggle dans une couleur par défaut grisée (?), avec le bouton au milieu (?)
On aurait ainsi un super toggle qui afficherait toujours la valeur réelle, en fonction des choix précédents, et on pourrait même définir n'importe quoi comme valeur : dans mon cas, c'est une variable de type chauffage, mais cela pourrait être une variable numérique ou chaine, ou heure, ou ...., ou une position de volet, ...
Bon j'ai une solution pour contourner le problème, mais pas très élégante : je crée (encore) une variable booléene supplémentaire qui prend la valeur True ou False en fonction des 2 valeurs que je souhaite. Et il faudra également un automate supplémentaire pour modifier la valeur de ma variable booléenne. Ayant déjà plus de 160 variables et plus de 200 automates, je souhaiterais éviter cet artifice...
Qu'en pensez-vous ?
"Il parait que la nuit porte conseil, je vais me coucher avant d'avoir d'autres idées farfelues"