Logique sur 3 etats gérée par un seul bouton : help please

bonjour,

pour commander une pompe de circulation de piscine, je souhaiterais définir 3 états :

1 mode programme (ce sera alors un timer qui definit si la pompe tourne ou pas)
2 mode OFF
3 mode ON

et je souhaiterais passer de l’un à l’autre 1 2 3 1 2 3…en poussant brièvement sur un seul bouton, comment faire…

Merci d’avance

Pour ma part j’utiliserais 2 entrées virtuelles pour enregistrer le mode et je ferais 3 scénarios.
Ca ferais quelque chose du genre :
EV1 = 0 et EV2 = 0 => Mode 1
EV1 = 0 et EV2 = 1 => Mode 2
EV1 = 1 et EV2 = 0 => Mode 3

Premier scénario :
Evènement : « Bouton » ET « EV1=0 » ET « EV2=0 » (tu es en mode 1 et tu appuies sur le bouton)
Action : Activer EV2 (ça enregistre que tu es en mode 2) et mettre ta pompe en OFF (l’action du mode 2)
Et tu dupliques pour les autres scénarios.

Ce n’est peut-être pas le plus élégant, mais j’essaierais ainsi.

Dans la théorie, j’aurais fait pareil que Seb ! Dans la pratique, c’est moins évident :wink:

Le problème vient du fonctionnement du moteur de scénario de l’IPX V4 (qui est plus sophistiqué qu’on ne l’imagine au premier abord).

En effet, si l’on réalise les 3 scénarios suivant (en pseudocode)

[ul]
[li]Scénario 1

[ul]
[li]Évenement : Bouton ET EV1=0 ET EV2=0[/li]
[li]Résultat : EV1=1[/li][/ul][/li]
[li]Scénario 2

[ul]
[li]Évenement : Bouton ET EV1=1 ET EV2=0[/li]
[li]Résultat : EV2=1[/li][/ul][/li]
[li]Scénario 3

[ul]
[li]Évenement : Bouton ET EV1=1 ET EV2=1[/li]
[li]Résultat : EV1=0 ET EV2=0[/li][/ul][/li][/ul]

Dès lors que l’on actionnera le bouton, le scénario 1 sera « executé ».
Le résultat du scénario 1 est d’activer « EV1 ». Du coup, cela activera le scénario 2.
Le résultat du scénario 2 est d’activer « EV2 ». Du coup, cela activera le scénario 3…
Et là, en fonction du type d’action que vous avez utilisé (« ON/OFF » vs « ON »), vous entrerez dans une boucle infini, ou alors tous les EV seront activées…


La solution que j’ai trouvé c’est d’utiliser un compteur et de réaliser une opération de modulo manuellement.
Pour cela, il faut créer 2 scénarios : un pour l’incrémentation, un autre pour le modulo.

Scénario : INCREMENTATION

[ul]
[li]Évenement : Entrée Virtuelle 1[/li]
[li]Action : ON[/li]
[li]Résultat : Compteur

[ul]
[li]Action : Incrémentation[/li]
[li]Valeur : 1[/li]
[li]Compteur : 1[/li][/ul][/li][/ul]

Scénario : MODULO 3

[ul]
[li]Évenement : Compteur

[ul]
[li]Compteur : 1[/li]
[li]Valeur : 3[/li][/ul][/li]
[li]Action : ON[/li]
[li]Résultat : Compteur

[ul]
[li]Action : Set[/li]
[li]Valeur : 0[/li]
[li]Compteur : 1[/li][/ul][/li][/ul]

Le premier scénario incrémente de 1 la valeur du compteur 1 à chaque pression de l’entrée virtuelle 1.
Le deuxième scénario remet à 0 le compteur 1 lorsqu’il atteint 3.

(J’ai utilisé l’entrée virtuelle 1 car c’est plus simple pour tester, mais vous pouvez la remplacer par une entrée digitale si vous avez déjà un bouton poussoir de branché)

Ainsi, vous pourrez réaliser vos scénarios en utilisant la valeur du compteur, par exemple :

Scénario : MODE 1

[ul]
[li]Évenement : Compteur (Valeur : 0) ET Plage Horaire[/li]
[li]Action : ON/OFF[/li]
[li]Résultat : Relais 1[/li][/ul]

Scénario : MODE 3

[ul]
[li]Évenement : Compteur (Valeur : 2)[/li]
[li]Action : ON/OFF[/li]
[li]Résultat : Relais 1[/li][/ul]

Notez qu’il n’y a pas besoin de scénario pour le mode 2 (OFF) étant donné que lorsqu’on sort du mode 1 ou 3, le relais est automatiquement éteint grâce à l’action de type « ON/OFF ».

Voilà, n’hésitez pas si vous avez des questions.

Merci Seb, merci Zogstrip

Je suis arrive à la meme solution que celle proposée par Zogstrip, cela fonctionne assez bien avec ce compteur.
j’ai aussi deux scenarii, un pour incrementer le compteur et l’autre pour remettre le compteur a zero.

On ne pourrait pas faire qu’un scénario avec en plus pour chaque cas le passage d’une sortie virtuelle à 1 et sa Tb à 1 secondes par exemple ?
Il faudrait rajouter aussi dans tous les cas le teste de cette sortie à 0 sinon on ne fait rien.

Pas facile de taper depuis ma petite tablette, mais l’idée est que cette sortie représente le « bouton récemment utilisé ».