Scénario, valeur et durée

Hello à tous,
Certain vont sûrement me dire " mais c’est tout simple " mais je vous avoue que je galère pas mal de mon côté :

Comment fait on pour déclencher une action après avoir eu une valeur pendant x secondes

Je vous explique le pourquoi
Ma porte de garage
Deux capteurs , un pour l’etat ouvert , l’autre pour l’état fermé
Une scénario actuellement qui est déclenché par un changement de valeur de l’un ou l’autre capteurs.

Grosso modo il teste
Si capteur_ouvert =1 et capteur_fermé=0 —> porte ouverte + notification
Si capteur_ouvert =0 et capteur_fermé=0 —> porte en mouvement
Si capteur_ouvert =0 et capteur_fermé=1 —> porte fermée + notification

Si capteur_ouvert =1 et capteur_fermé=1 —> défaut de capteur.

Jusque là pas de soucis . Le problème est que les capteurs sont assez sensible et qu’il m’envoie un faux positif lorsque la porte commence a se fermer/ouvrir. (Et du coup des notifications)
J’ai bien essayé le debounce… Mais rien n’y fait. Donc comment puis je faire ?

Merci d’avance

Salut,

Je pense que j’ai moyennement voir pas bien compris l’affaire des 2 capteurs mais si en début de scénario tu fait une pause de une seconde (sleep 1) (ou plus !?) avant de faire les tests, est-ce que ça ne laisserait pas le temp aux états des 2 capteurs d’être stabilisés et donc d’envoyer le bon état général et la bonne notification ?

2 « J'aime »

C’est en effet une solution ! je vais tester.
Après j’avais cru comprendre de la part des puristes que le sleep n’est pas tres classe car bloquant.

1 « J'aime »

Effectivement, d’un aspect purement informatique c’est moche mais un sleep de une seconde n’a jamais tué personne.
J’ai moi-même des tempos de une seconde lorsque je veux lancer des commandes les unes à la suite des autres afin d’être sûr que chacune des commandes sera correctement prise en compte.

1 « J'aime »

Bonjour,

Je fais partie des gens très attentif à l’utilisation d’un sleep mais effectivement tout est question de contexte.
Faire un sleep de 300 secondes n’a pas de sens, il faur mieux utiliser un bloc DANS (du coup je met la limite à la minute)

Faire un sleep long (genre à partir de 10s-30s), faut voir si on peut pas remplacer par un WAIT. Le wait fait des sleep de 1 seconde entre chaque test mais au moins cela va peut être se débloquer sans attendre le délai complet

Faire un sleep de quelques secondes n’aura pas d’impact très visible effectivement.

1 « J'aime »

Ok, je suis rassuré !
Mon scenario a prit un sleep et il est content…

Merci a vous

1 « J'aime »

Par ces temps froids c’est le minimum…

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.