Merci. en // c’est le scénario qui boucle et empeche le changement d’état
[2024-10-03 13:48:53][SCENARIO] -- Début : Scenario execute automatiquement sur evenement venant de : [Exterieur][8-Lampe][Etat_toogle_relais] (1).
[2024-10-03 13:48:54][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Système][ESP_ECL][Analog]# == 1
[2024-10-03 13:48:54][SCENARIO] Evaluation de la condition : [0 == 1] = Faux
[2024-10-03 13:48:54][SCENARIO] - Exécution du sous-élément de type [action] : else
[2024-10-03 13:48:54][SCENARIO] Exécution de la commande [Extérieur][8-Lampe][OFF]
[2024-10-03 13:48:54][SCENARIO] Fin correcte du scénario
------------------------------------
[2024-10-03 14:08:13][SCENARIO] -- Début : Scenario execute automatiquement sur evenement venant de : [Exterieur][8-Lampe][Etat_toogle_relais] (1).
[2024-10-03 14:08:13][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Système][ESP_ECL][Analog]# == 1
[2024-10-03 14:08:13][SCENARIO] Evaluation de la condition : [0 == 1] = Faux
[2024-10-03 14:08:13][SCENARIO] - Exécution du sous-élément de type [action] : else
[2024-10-03 14:08:13][SCENARIO] Exécution de la commande [Extérieur][8-Lampe][OFF]
[2024-10-03 14:08:13][SCENARIO] Fin correcte du scénario
------------------------------------
[2024-10-03 14:10:32][SCENARIO] -- Début : Scenario execute automatiquement sur evenement venant de : [Exterieur][8-Lampe][Etat_toogle_relais] (1).
[2024-10-03 14:10:32][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Système][ESP_ECL][Analog]# == 1
[2024-10-03 14:10:32][SCENARIO] Evaluation de la condition : [0 == 1] = Faux
[2024-10-03 14:10:32][SCENARIO] - Exécution du sous-élément de type [action] : else
[2024-10-03 14:10:32][SCENARIO] Exécution de la commande [Extérieur][8-Lampe][OFF]
[2024-10-03 14:10:32][SCENARIO] Fin correcte du scénario
C’est pour gérer le mode toggle. Avec un virtuel, on peux le faire aussi mais cela reste du virtuel, pas moyen de lancer une commande associée.
C’est plus simple avec un scénario.
Oui, c’est possible en effet mais cela ne fonctionne que sur une action de façon inconditionnelle. Pour une info, on est limité au choix d’une seule valeur, sans pouvoir faire un test dessus :
Par exemple, SI valeur == 1 [pendant x minutes], ALORS faire ceci/cela
Mais il n’y a pas de SINON…
On est obligé de repasser par un test dans le virtuel comme ceci :
Si la lumière est allumée au bouton on a etat=1, normal.
Si je veux l’éteindre via le virtuel cela ne marche pas, le relai fait 2 clics et reste à sa position:
------------------------------------
[2024-10-03 19:01:47][SCENARIO] -- Début : Scenario execute automatiquement sur evenement venant de : [Exterieur][8-Lampe][Etat_toogle_relais] (1).
[2024-10-03 19:01:47][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Système][ESP_ECL][Analog]# == 0
[2024-10-03 19:01:47][SCENARIO] Evaluation de la condition : [1 == 0] = Faux
[2024-10-03 19:01:47][SCENARIO] - Exécution du sous-élément de type [action] : else
[2024-10-03 19:01:47][SCENARIO] Exécution de la commande [Extérieur][8-Lampe][OFF]
[2024-10-03 19:01:47][SCENARIO] Fin correcte du scénario
avec en déclencheur uniquement l’état de l’ampoule.
En effet si j’appuie sur le bouton mural je ne touche pas à la partie relais et donc l’information de l’état de la lumière ne se met pas à jour. Je crois que ce scénario permet de contourner ce problème.
Bonjour,
Désolé, je n’avais pas vu qu’il y a eu une suite…
J’ai regardé la dernière version du scénario et cette logique me semble OK si j’en crois la table de vérité (j’ai pris comme entrées l’état de l’ampoule, le dernier état mémorisé du relais, l’état du toggle et l’état actuel du relais).
Il y a tout de même un petit truc qui m’interpelle.
Ces deux tests ne servent à rien :
En effet, si le test #[Extérieur][8-Lampe][R5Etat]# == 1 est faux, c’est qu’il est à 0. Il est inutile de le confirmer par un test supplémentaire.
A remplacer par SINON → action #[Extérieur][8-Lampe][R5ON]#
Je pense également qu’il faut bien faire attention aux timings utilisés.
Il ne faut pas par exemple que le scénario qui mémorise les dernières valeurs se déroule en même temps que le scénario effectuant le toggle à proprement dit, ce qui est d’autant plus risqué et probable qu’il y a un déclencheur identique : #[Extérieur][8-Lampe][Toggle]#.
Sinon, on risque de se retrouver avec des valeurs aléatoires, ce qui peut expliquer que :
Il faut donc lancer le scénario de mémorisation par le scénario toggle, et uniquement à la fin de l’exécution de celui-ci, et supprimer le déclencheur #[Extérieur][8-Lampe][Toggle]# du scénario de mémorisation. Mais on doit garder le déclencheur #[Système][ESP_ECL][Analog]# par contre.
le toogle semble fonctionner dans les 2 sens, inter et relais
Par contre pas de retour état possible : Si je mets Etat1 dans mettre à jour je perds le toogle
De quel retour d’état tu parles ? du relais ou de l’ampoule ?
Mais je dirai peu importe, si le toggle fonctionne bien maintenant comme souhaité avec l’interrupteur mural et le relais…
Seul l’état de l’ampoule est important pour l’associer à un widget, et cet état lui est bien reporté avec #[Système][ESP_ECL][Analog]# non ?
Sur la ligne ESP : si ESP = 1 => on lance une action virtuelle ON et Etat1 = 1. Si ESP = 0, c’est l’action OFF qui est lancée et Etat1 = 0.
Ou on peut aussi récupérer directement la valeur de #[Système][ESP_ECL][Analog]# sans passer par un virtuel.
La on voit bien que la lumière est allumée, l’electricité est plutot fiable et le virtuel qui indique éteint. Par contre les commandes fonctionnent sans pb.
Ok, c’est plus clair en effet, je comprend mieux…
Donc un bouton en mode toggle, mais qui recopie également l’état réel de l’ampoule…
Bon, je vais regarder mais à priori je ne pense pas que ce soit possible : le toggle indique lui la position du relais (information non pertinente), qui est éteint ici visiblement, mais il ne peut pas être associé à l’état de l’ampoule en même temps.
Il faut donc disposer un autre widget distinct pour l’ampoule, associé lui à #[Système][ESP_ECL][Analog]#, donc deux widgets associés comme ça par exemple :
La touche Jardin = commande virtuelle du toggle (qui fonctionne). Et on n’affiche évidemment pas l’état du relais qui n’apporte rien.
L’ampoule = la recopie de l’état #[Système][ESP_ECL][Analog]#.
On est aux limites du système (faire correspondre une entrée avec deux sorties), et avec un virtuel je doute que soit possible en effet. Mais peut-être qu’avec du code… mais je m’arrêterai là pour ma part .