Différencier une entrée d'une sortie, lors de l'ouverture d'une porte avec un détecteur "mouvement et vibration"

  • Quel est mon profil ?
    Bonjour, je travaille dans un bureau d’étude développant des machines agricoles (sur les partie mécanique :slight_smile: ). J’ai découvert la Domotique avec Jeedom il y a 2 ans pour pouvoir régler la température de chaque pièce en fonction des personnes présentes/jours/heures. Depuis c’est devenu un « dada ».

  • Quels étaient mes besoins ?
    Je souhaitais savoir si, lors d’un mouvement de porte, la personne Rentre ou Sort !
    Cela peut-être utile dans de nombreuse situations. Par exemple la gestion de lumières, d’une VMC, d’une température, de scénarios, etc…
    Exemple avec une lumière extérieur:
    J’ai 2 portes extérieures, une salon et une cuisine. Je souhaitais que les lumières extérieures et la lumière de la pièce s’allument quand j’ouvre une des portes, mais en distinguant une entrée (une arrivée), d’une sortie (un départ), et ceux en utilisant un seul capteur par porte.
    Exemple décris: La porte de la salle:
    Quand je rentre, je souhaite que la lumière extérieure s’allume 30 secondes (le temps de trouver mes clefs et d’ouvrir / Oui, le simple fait de “clencher” la porte est vu par le détecteur de vibration - Incroyable), et que la lumière intérieure s’allume 5 minutes.
    Quand je sors, je souhaite que la lumière intérieure s’allume 30 secondes, et la lumière extérieure 5 minutes (le temps de monter dans ma voiture et partir.
    (Sur la porte de la cuisine: Si je sors, la lumière s’allume 5 minutes. Si je vais dans la réserve et reviens 3 minutes plus tard, je “rentre” tout s’éteint directement. Une autre variante « lumineuse »…)

  • Comment en suis-je arrivé à cette solution ?
    J’avais fixé sur une des portes extérieur, de la maison, un capteur multi-fonctions (MultiSensor 6 - de chez Aeotec) avec, pour la partie qui nous intéresse: détection de vibrations et détection de mouvement.
    La détection de mouvement était classiquement utilisé pour l’alarme. Et la détection de vibration pour allumer les lumières extérieures quand on ouvre la porte. Mais la lumière s’allumait trop longtemps en arrivant ou trop peu de temps au départ.
    Banalement, il me faudrait 2 capteurs de mouvement par porte (un à l’extérieur, un à l’intérieur), soit 4 capteurs pour mes 2 portes. Cela ayant 2 inconvénients: c’est 2 fois plus onéreux, mais surtout, les capteurs vieillissent mal à l’extérieur (soleil/eau) et détecte mal (soleil).

J’ai donc voulu trouver une astuce pour utiliser ces deux types de détection, déjà présentes chez moi, pour différencier un départ d’une arrivée.

  • Comment cela fonctionne-t-il ?
    L’astuce est de créer un scripte qui « regarde » si une vibration intervient avant, ou apres une détection de mouvement.
    En effet, quand on ouvre une porte, il y a deux cas possibles (détecteur situé coté intérieur):
  • On sort: Le détecteur de mouvement nous « voit » et passe à l’état « Actif » ; puis, quelques secondes plus tard, en ouvrant la porte, le détecteur de vibration passe à actif.
  • On rentre: Le détecteur de vibration se déclenche, puis quelque seconde plus tard, le détecteur de présence.

Si l’on tente d’ouvrir la porte et que celle-ci est fermée à clef (le simple fait de « clencher » la porte / actionner la poignée, provoque une vibration détectée ! la lumière s’allume.)

  • Quels matériels ai-je choisi ?
    Une box où l’on peut faire ses scriptes. Ici une box Jeedom Smart.
    Un détecteur de mouvement et un détecteur de vibration fixé au battant de la porte. Ici un détecteur MultiSensor 6 de chez Aeotec.

  • Le plus important, la mise en œuvre
    Voici le capteur fixé sur la porte:

Puis il faut faire un script qui regarde ces fameux temps « Détection de vibration » & « Détection de mouvement ».

Je ne vais pas détailler tout le script (ceux qui voudront approfondir pourront le lire en intégralité avec quelque commentaires), et il y a surement d’autre façon de comparer les temps….
Précision:

  • Déclenchement du scénario: Vibration == 1 ET il fait nuit (#[Salon][Capteur][Vibration]#==1 ET time_between(#time#,#[Météo][Coucher du soleil]#,#[Météo][Lever du soleil]#)==1 )
  • Le premier SI est simplement pour pouvoir mettre la fonction en pose, ne pas en tenir compte
    2 nd SI : On regarde si lumière déjà allumées en Manuel.
    3 ème SI : Détection des vibration sans ouverture de porte
    4 eme SI: celui qui vous intéresse et permet de comparer les temps / de savoir si c’est une Entrée ou une Sortie
    Scénario (1ère partie)

    (seconde partie)

    Fichier log “Sortie détectée”

    Fichier log “Entrée détectée”
  • Quelles pourraient être les améliorations à apporter si c’était à refaire ?
    Dans cette exemple ? D’avoir un capteur de luminosité à l’extérieur pour ne pas seulement se reposer sur les heures de levé et couché du soleil qui ne sont pas toujours représentative du besoin éclairage
    De façon générale, sur les détections de sens Entrée / Sortie ? Je rêve d’avoir accès aux valeurs de l’accéléromètre en brut, de ce type de capteur, tant d’autres choses pourrait être faite !
    :slight_smile:
5 J'aimes

Malin, ca !
Fibaro avait fait une vidéo lors de la sortie de son capteur de mouvement, soit disant capable de compter le nombre d’occupant (enfin, surtout le nombre d’entrées / sorties). Mais il fallait deux capteurs, et ils n’étaient jamais vraiment entrés dans le détail du comment faire.
Là l’astuce est très bonne !

Je suis trop fan de cette astuce !
J’ai une petite question : as-tu une idée de la fiabilité de ce script ?
J’approfondis ma question : est-ce que le script est suffisamment fiable pour faire du comptage (combien de personnes dans la maison ?) ou est-ce qu’il a quelques ratés de temps en temps qui sont acceptables lorsque le script est utilisé uniquement pour gérer la lumière ?
Dans tous les cas, merci pour le partage.

Désolé pour le temps de réponse, mais il me fallait quelques dizaines de minutes de libre pour faire une réponse complète.
En bref, chez moi:
La réponse est « OUI, 100 % dans la cuisine » et « 95% dans la salle ».
En détail, de façon générique :
Oui, si…. (Il y a un SI !! :frowning: )
Si les lieux s’y prêtent et le scénario construit en fonction d’eux !
Je m’explique.

Dans 1 cas, la détection est impossible :

  • On est dans un bar, et il y a toujours des personnes devant la porte / le capteur : Alors le capteur ne pourra pas compter les entrées. Il verra toujours des sorties ! Car une entrée est détectée par le fait que la détection de vibration intervient avant la détection de mouvement. S’il y a toujours des gens devant le capteur, il y a toujours du mouvement ! CQFD

Dans 1 cas, la détection est défavorable :

  • La porte est une prouesse d’horlogerie, avec aucun point dur dans la clenche ni dans le bâti. Elle ne vibre donc pas du tout. La « détection de « vibration » se fera par l’accélération de la porte, à l’ouverture (si on prend le capteur dans la main et qu’on secoue, il le ressent). Du coup, elle sera concomitante à la détection de mouvement, et là… C’est un peu pile ou face !
    On détectera toujours une Sortie, mais parfois, les Entrées seront vu comme des Sorties.
    Tableau des temps, comparant les effets d’une porte « vibrante » (comme dans ma salle) et « d’horloger ».

C’est le cas dans ma cuisine, ou la porte est parfaite !
Du coup le scripte est un peu différent, je « triche » sur le temps de détection des mouvements.
Mais, cette secondes astuce est possible que si les lieux s’y prêtent ! S’il sont assez grand. Si le capteur nous voit « assez longtemps » avant.
Sur une sortie: la détection de mouvement sur une sortie, se ferra au moins 4 secondes avant l’ouverture de la porte, du coup, je peux lui enlever 2 secondes, tout en détectant toujours la sortie. Et lors de l’entrée, comme j’enlève 2 secondes (quand la vibration et le mouvement sont concomitant) j’ai bien une vibration « lu » avant le mouvement.
Tableau des temps « triché »

Espace ou l’on peut tricher sur le temps de détection, et où l’on ne peut pas.

Scripte « temps triché » (avec extinction des lumière au retour + la partie qui change en temps triché en rouge) (j’ai désactiver la fonction d’heure pour faire le test de jour…)

Log Sortie détectée (j’allume les lumières extérieurs)

Log Entrée détectée (j’éteinds les lumières extérieurs)

Bonne lecture !
:slight_smile:

3 J'aimes