Toggle et va et vient

Merci. en // c’est le scénario qui boucle et empeche le changement d’état :slight_smile:

[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

Vu l’erreur…

image

Ce n’est pas 1 qu’il faut tester, mais 0.
Si la lampe est éteinte (0), on l’allume (ON). Sinon, si elle est allumée (1), on l’éteint (OFF).

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.

avec avec a executer avant ou après pas possible ?

en effet à coté de mes pompes:


je reteste

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 :

Mais du coup on reboucle…

Alors mon REX:

Comme les commandes sont liées à l’état du relai, je n’ai pas le retour dans mon widget de l’état de la lumière:

image

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

Je pense avoir trouvé, je fais les tests:

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.

en fait cela ne marche pas a tous les coups :frowning:

J’ai fait une autre approche en me concentrant uniquement sur la partie relais.
Ci-dessous, le scénario pour faire du toggle sur le relais :


Le déclencheur : #[Extérieur][8-Lampe][Toggle]#

Le scénario pour les dernières valeurs:


Les déclencheurs : #[Extérieur][8-Lampe][Toggle]# et. #[Système][ESP_ECL][Analog]#

Le virtuel associé :

Le problème majeur aujourd’hui et que je ne suis pas capable de faire un interrupteur en ayant pour retour d’état l’information Etat1

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.

hello @DanielJ

J’ai fait ceci pour m’assurer dans les logs que tout était OK mais oui cela ne sert à rien:

J’avais pas pensé au déclenchement simultané des scénarios, bien joué je vais tester.

Par contre j’ai l’impression qu’il est impossible dans mon cas d’avoir le toggle avec le retour d’état de la lampe :frowning:

1 « J'aime »

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 ?

oui c’est exact uniquement #[Système][ESP_ECL][Analog]# mais je n’y arrive pas sans perdre le mode toggle

Bonjour,
Oui, effectivement avec cette configuration ça ne peut pas marcher…

0d30ba61bf7cebb69667b93886e022dffa2911d8_2_690x111

(ou il manque des lignes sur cette capture d’écran ?)

Pour le retour d’état de l’ampoule, il faut configurer le virtuel comme un inter classique (déjà dit ici):

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.

je crois que l’on arrive pas à se comprendre :sweat_smile:

Ici un bouton un mode toggle:
image

Sur ce bouton je souhaite avoir le retour de l’ampoule, facile #[Système][ESP_ECL][Analog]# mais également pouvoir commander la lumière.

Avec cet inter, je ne suis pas en mode toggle, il me semble ? :blush:

Pour récap c’est d’avoir 2 commandes, un virtuel et un inter et pour chacune des commandes le bon retour d’état de la lumière:

La on voit bien que la lumière est allumée, l’electricité est plutot fiable :slight_smile: et le virtuel qui indique éteint. Par contre les commandes fonctionnent sans pb.

Le virtuel au complet:

Merci beaucoup

Ok, c’est plus clair en effet, je comprend mieux… :wink:
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 :

image

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]#.

Du coup, plus besoin de cette partie du virtuel :

dommage que cela ne soit pas possible, jeedom est tellement puissant pourtant

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 :slightly_smiling_face:.