on SR04#Distance > 10 do //Si distance >10cm ...
if [Etat_timer#state]=0 //Si le timer n'est pas lancé
taskvalueset,6,1,1 //Remplacer le 6 par le numero de ton dummy
timerset,1,180 //... lance un timer de 3min
logentry,'Timer1 starts'
endif
endon
on SR04#Distance < 10 do //Si la distance repasse sous <10cm ...
taskvalueset,6,1,0 //Remplacer le 6 par le numero de ton dummy
timerset,1,0 // ... Désactive le timer 1
logentry,'Timer1 stops'
endon
on Rules#Timer=1 do
LongPulse,4,0,20 //Impuslion de 20s à l'état 0 du GPIO4
logentry,'Timer1 trig'
endon
Edit: Effectivement, comme sous entendu par @rol-rider , chaque fois que la distance varie au dessus de 10, ça relance le timer de 3min. Donc, il faut créer un dummy device:
J’ai modifier le code au lieu d’attendre à chaque fois 3 min et le numéro du Dummy
Etat_timer reste toujours à 0 malgré la distance à + 10 cm
on SR04#Distance > 10 do //Si distance >10cm …
if [Etat_timer#State]=0 //Si le timer n’est pas lancé
taskvalueset,3,1,1 //Remplacer le 6 par le numero de ton dummy
timerset,1,20 //… lance un timer de 3min
endif
endon
on SR04#Distance < 10 do //Si la distance repasse sous <10cm …
taskvalueset,3,1,0 //Remplacer le 6 par le numero de ton dummy
timerset,1,0 // … Désactive le timer 1
endon
on Rules#Timer=1 do
LongPulse,4,0,20 //Impuslion de 20s à l’état 0 du GPIO4
endon
Faut peut être rafraîchir le navigateur pour voir le dummy passer a 1. ( Si tu es directement sur l’esp sans passer par Jeedom)
Et
Tu dois pouvoir supprimer le chiffre après la virgule sur le dummy
Déjà est ce que le GPIO4 change d’état.
Ensuite il ne faut pas mettre les décimales sur le dummy (cf mon post précédent et celui de @rol-rider ).
Tu as bien laissé l’interval du Dummy à 0 ?
J’ai updaté mon code avec des logentry. Tu devrais les voir apparaitre dans Tool->Log lors du changement de Distance à 10.
Par contre ? Tu es sur Jeedom ?
Je vois que tu n’as pas défini de Ctr ?
Dans tes device
Si tu n’as pas de contrôleur de défini, rien ne sera envoyé sous Jeedom.
j’ai modifier le code , au lieu de 3mn j’ai 20 secondes
on SR04#Distance > 10 do //Si distance >10cm …
if [Etat_timer#State]=0 //Si le timer n’est pas lancé
taskvalueset,3,1,1 //Remplacer le 6 par le numero de ton dummy
timerset,1,20 //… lance un timer de 3min
logentry,‹ Timer1 starts ›
endif
endon
on SR04#Distance < 10 do //Si la distance repasse sous <10cm …
taskvalueset,3,1,0 //Remplacer le 6 par le numero de ton dummy
timerset,1,0 // … Désactive le timer 1
logentry,‹ Timer1 stops ›
endon
on Rules#Timer=1 do
LongPulse,4,0,20 //Impuslion de 20s à l’état 0 du GPIO4
logentry,‹ Timer1 trig ›
endon
Et si tu fais comme ça.
A chaque mesure ( 5sc) la rule devrait se lancer et faire les deux test ( peut être mettre la distance en premier)
on SR04#Distance do
if [Etat_timer#State]=0 and [SSR#Distance]>10
taskvalueset,3,1,1 //Remplacer le 6 par le numero de ton dummy
timerset,1,20 //… lance un timer de 3min
endif
endon
Bon rétablissement.
Je crois que ça devrait fonctionner.
J’ai testé sur un esp, et j’avais bien le lancement de la rule sur mon module et on le voyait dans les logs
Après le COVID, la bronchite… je n’ai vraiment pas de chance.
En tout cas, j’ai testé et ça fonctionne. Mais j’ai vraiment du mal avec les rules.
Merci à tous pour l’aide apportée.
Amicalement.