09-25-2014, 04:49 PM
Salut,
Ce que tu as besoin c'est une machine a etat.
Voila ce que je ferais:
Declare ca comme IO:
- Un variable interne int (on l'appelle "etat")
- Un timer pour remettre l'etat suivant a 0
Puis les regles suivantes pour definir tes etats.
Etat 0, la lampe est eteinte
Etat ou la lampe est a 25%
Etat pour les films 1%
On ajoute la regle pour eteindre et retour a l'etat 0
Cette regle est la fin du cycle de bouclage (etat0 -> etat1 -> etat2 ->etat0)
On rajoute encore le dernier etat (4) qui ne fait rien, il sert a basculer au prochain click sur l'etat 0
Ensuite tu ajoute une regle pour dire a la lampe de demarrer le timer qui va passer a l'etat 4 apres un certain temps (genre 2-3s) Ca va permettre de rebasculer a l'etat 0 (eteint) au click suivant. (a chaque fois que la lumiere est allumé le timer est relancé)
Lorsque le timer est ecoulé, on se met a l'etat 4. (ne rien faire)
La logique est en place, maintenant il manque plus que les regles pour les inter, bouton etc...
Les regles sont super simple, il faut juste incrémenter la valeur de l'etat pour passer a l'etat suivant.
Et ca marche pour tout les inter/boutons/scenario:
Ensuite tu peux simplement mettre a un etat particulier en changeant la valeur de la variable etat.
Avec ca tu auras le fonctionement suivant:
Chaque click passe a l'etat suivant.
Etat0(eteint) -> Etat1(25%) -> Etat2(1%) -> Etat0
En reglant le temps du timer tu vas choisir le temps avant que l'etat ne bascule sur l'Etat4. Comme ca au prochain click l'etat repassera a Etat0(eteint).
Et ca marche meme si tu pilotes ta lumieres directement (avec la page web par ex.) car on a mis la regle qui demarre le timer sur le changement d'etat a allumé de la lumiere.
Ce que tu as besoin c'est une machine a etat.
Voila ce que je ferais:
Declare ca comme IO:
- Un variable interne int (on l'appelle "etat")
- Un timer pour remettre l'etat suivant a 0
Puis les regles suivantes pour definir tes etats.
Etat 0, la lampe est eteinte
Code:
Si etat == 0
Faire Mur = false
Etat ou la lampe est a 25%
Code:
Si etat == 1
Faire Mur = set 25
Etat pour les films 1%
Code:
Si etat == 2
Faire Mur = set 1
On ajoute la regle pour eteindre et retour a l'etat 0
Cette regle est la fin du cycle de bouclage (etat0 -> etat1 -> etat2 ->etat0)
Code:
Si etat == 3
Faire etat = 0
On rajoute encore le dernier etat (4) qui ne fait rien, il sert a basculer au prochain click sur l'etat 0
Code:
Si etat > 4
Faire etat = 0
Ensuite tu ajoute une regle pour dire a la lampe de demarrer le timer qui va passer a l'etat 4 apres un certain temps (genre 2-3s) Ca va permettre de rebasculer a l'etat 0 (eteint) au click suivant. (a chaque fois que la lumiere est allumé le timer est relancé)
Code:
Si Mur != 0
Faire timer = start
Lorsque le timer est ecoulé, on se met a l'etat 4. (ne rien faire)
Code:
Si timer == true
Faire etat = 4
La logique est en place, maintenant il manque plus que les regles pour les inter, bouton etc...
Les regles sont super simple, il faut juste incrémenter la valeur de l'etat pour passer a l'etat suivant.
Code:
Si Inter1 == true
Faire etat = inc 1
Et ca marche pour tout les inter/boutons/scenario:
Code:
Si Scenario == true
Faire etat = inc 1
Ensuite tu peux simplement mettre a un etat particulier en changeant la valeur de la variable etat.
Avec ca tu auras le fonctionement suivant:
Chaque click passe a l'etat suivant.
Etat0(eteint) -> Etat1(25%) -> Etat2(1%) -> Etat0
En reglant le temps du timer tu vas choisir le temps avant que l'etat ne bascule sur l'Etat4. Comme ca au prochain click l'etat repassera a Etat0(eteint).
Et ca marche meme si tu pilotes ta lumieres directement (avec la page web par ex.) car on a mis la regle qui demarre le timer sur le changement d'etat a allumé de la lumiere.
Raoul,
Calaos Core Dev.
Calaos git sur NUC NUC5PPYH | Wago 750-849 | DALI RGB | Sondes NTC sur 750-464 | Sondes 1Wire DS18B20 avec adaptateur USB DS9490R | Nodes MySensors avec gateway USB | Ecran tactile ELO avec adaptateur USB/RS232 | Squeezebox Duet et Radio | Logitech Harmony Ultimate | Ampli Pioneer VSX921
Calaos Core Dev.
Calaos git sur NUC NUC5PPYH | Wago 750-849 | DALI RGB | Sondes NTC sur 750-464 | Sondes 1Wire DS18B20 avec adaptateur USB DS9490R | Nodes MySensors avec gateway USB | Ecran tactile ELO avec adaptateur USB/RS232 | Squeezebox Duet et Radio | Logitech Harmony Ultimate | Ampli Pioneer VSX921