«

Mar 01

Module chacon détection d’ouverture

Yeah!!! Pleins de domotique en ce moment, aujourd’hui je te propose de te présenter un petit module de détection d’ouverture de porte de marque Chacon.

Tu commences à mettre en place ton alarme ?

Nop, à la base, je l’ai pris en complément d’une commande domadoo, histoire d’avoir les frais de port offert XD Soit, je payais ma commande 48€ FDP inclus, soit je rajoutais un truc pour arriver à 50€. Ce que j’ai fais avec ce détecteur d’ouverture de porte Chacon qui coûte 13€, il m’a donc « coûté » 5€ si je déduis les FDP que j’aurais du payer ^^

Pourquoi celui là ?

Déjà, il est pas cher, puis je me suis dis que ça pourrait toujours servir. Il est compatible rf433, dans les commentaires, j’ai pu voir que quelqu’un l’avait utilisé sur Jeedom, j’ai donc foncé.

Et alors, il te sert à quoi ?

Ba, tout simplement à détecter qu’une porte est ouverte XD
Plus sérieusement, je m’étais dit que je le mettrais sur la fenêtre de la salle de bain, histoire de nous alerter si on oublie de la fermer. Puis, je me suis dis que, vu l’ambiance humide de la pièce, ce n’était peut-être pas une bonne idée ^^

Le module est donc resté quelques semaines sans être utilisé, sans même l’avoir sorti de sa boite.
Puis, il y a quelques jours, on (avec madame) se décide à commencer à aménager un coin du sous-sol en salle de sport avec tapis de course, elliptique et une télé avec un kodi pour regarder des séries en bougeant nos popotins. L’idée étant de moins larver dans le canap le soir en regardant des séries. Sauf que la chambre du petit est à l’étage, et si jamais il se réveille, on ne l’entendra plus (déjà qu’on l’entend à peine quand la télé est en route au RDC….). Heureusement, il a la présence d’esprit de sortir de sa chambre pour nous appeler. Et là, ça fait tilt. Et si on utilisait le capteur d’ouverture pour nous alerter quand il ouvre sa chambre ?

Mais oui, me dit madame, ce serait top. Idéalement, il faudrait que ça mette kodi en pause.
Wow, mais carrément, c’est une super idée ça ^^ Pour une fois qu’elle a une idée en domotique, j’avoue que j’étais très fier :)

Aller, on est partie pour l’install !

Faisons ça bien et dans le bon sens.
On commence par découvrir le module

Il est composé de 2 parties, dès que les 2 éléments sont séparés magnétiquement, le module clignote. Par contre, il ne se passe rien quand on rapproche les 2 parties.
Lorsque la partie la plus grosse est « arrachée » (en gros, le petit bouton derrière n’est plus appuyé), le module clignote.

J’ai un peu galéré pour faire reconnaître le module via Jeedom. Tout bêtement, je pensais que le rfxtrx devait être configurer pour les modules Chacon, mais ça ne suffit pas. Il faut activer le protocole lightning 4 en plus de l’AC et/ou ARC (ne me demande pas pourquoi, je n’en sais rien du tout…. Merci les internets pour m’avoir fourni l’info ^^).

Une fois que c’est fait, on passe le rfx en apprentissage, on sépare les 2 éléments, et hop un nouveau module est créé.
On peut recommencer le mode apprentissage, on simule l’arrachement en appuyant et relachant sur le bouton derrière, et hop un deuxième module est créé.

Attend, 2 modules ?

Hé oui, les 2 actions sont vues comme 2 modules différents, mais ce n’est pas très grave en soit, et ça reste même compréhensible. Un module pour l’ouverture, un module pour l’arrachage, les actions à effectuer peuvent être différentes en fonction des cas, bref, ça correspond dans l’idée à 2 modules différents.

 

 

Là où ça devient compliqué, c’est qu’au niveau de l’interface, ba les modules ne font pas grand chose…
L’icone est sur off, on simule l’ouverture, rien ne se passe… On simule l’arrachage, rien ne se passe… On simule la fermeture, rien ne se passe…..

Heeuuu, c’est nul ton machin, il sert à rien du coup ….

Roooo, mais non, laisse-moi finir XD
Bon, ok, au début, je me disais qu’en effet, c’était pas top et que ça marchait pas. Puis j’ai laissé mijoter quelques jours, utilisé le forum de Jeedom pour essayer de chopper des infos. Bon, au final, ça ma surtout servi de canard en plastique.
Le problème, c’est qu’au début, je voulais m’en servir pour savoir si la porte était ouverte ou fermée. GROSSE ERREUR, c’est un détecteur d’ouverture. Il va donc dire si une porte s’ouvre ET C’EST TOUT.
Alors oui, au niveau de l’interface il ne se passe rien. Mais ce qui est vraiment intéressant, c’est le fait qu’il y ait un signal qui soit envoyé au moment de l’ouverture. Le module ne va servir que de déclencheur pour certaines actions. En l’occurrence, dans mon cas, mettre en pause Kodi et nous avertir que la porte du petit Platypus est ouverte. Et au final, je ne lui en demande pas plus et n’ait pas plus à lui demander.


Enfin, un dernier détail (et là, ça va parler PHP, tu es prévenu ^^), le module envoie un signal pour dire « la porte est ouverte » que j’utilise comme condition pour déclencher un scénario. Sauf que, 1 minute 20/30 après, Jeedom re-déclenche le scénario. En gros, il y a quelque chose qui passe dans un status ON au niveau de Jeedom et repasse à OFF au bout d’un peu plus d’1 minute.
En débuggant ce double lancement, j’ai pu constater que lorsque l’info d’ouverture est envoyée, un var_dump de la commande envoie une chaîne (string) vide, alors que le deuxième déclenchement m’envoie un int(0). Du coup, il faut tester que la commande === "" pour être sûr que c’est bien l’ouverture de la porte qui a déclenché le scénario.

// le module à pour valeur chaine vide "" quand il est activé
// 1 minute après son activation il se rééxécute mais la Présence n'a pas de valeur (int(0) dans un var_dump)
// Pour être sur que l'on a bien une ouverture ou un arachement il faut donc vérifier === ''
if (cmd::byString('#[Aucun][ouverture porte][Présence]#')->execCmd() === '' 
 || cmd::byString('#[Aucun][arrachement porte][Présence]#')->execCmd() === ''
) {
 
 $kodiIds = [
 '[RDC Zone 1 (salle/salon/cuisine)][kodi Salon]'
 ];
 
 foreach ($kodiIds as $kodiId) {
 // si kodi est démarré
 if (cmd::byString('#' . $kodiId . '[Heartbeat]#')->execCmd() === 'Alive') {
 // si un media est en lecture on le met en pause
 if (cmd::byString('#' . $kodiId . '[Status Media]#')->execCmd() === 'Lecture') {
 cmd::byString('#' . $kodiId . '[Pause]#')->execCmd();
 }
 // on pousse une notification dans tout les cas
 cmd::byString('#' . $kodiId . '[Notifications]#')
 ->execCmd(['title' => 'Petit Platypus', 'message' => 'Ouverture de porte']);
 cmd::byString('#[Maison][slack general][general]#')->execCmd(['message' => 'Porte de Petit Platypus ouverte']);
 cmd::byString('#[Maison][lapin][TTS]#')->execCmd(['message' => 'Petit Platypus a ouvert sa porte']);
 }
 }
}

OOOOKKKKK, d’accord, en effet, il ne faut pas lui demander ce pour quoi il n’est pas fait ^^

Exactement, et je pense que c’est une erreur que beaucoup ont fait, font et feront ^^
Il ne reste plus qu’à mettre la brique « gestion de Kodi » et on est bon pour la solution d’alerting, on va pouvoir faire notre sport le soir l’esprit tranquille :)

Je parlerais de Kodi plus tard, je pense que je lui dédirais un article rien que pour lui. Ici, tu as pu voir son utilisation dans un scénario, mais le but de cet article, c’était surtout de présenter ce petit module Chacon :)

 

2 Commentaires

  1. spark

    salut, merci pour ton article!

    J’ai une question, a tu réussi a l’utiliser avec rflink sur jeedon?

    Je pose la question car je n’ai pas la fonction arrachement sur les miens mais par contre ils fonctionne correctement dès le début pour la fonction ouverture de porte. ( je reçoi le message en 3-5 sec )

    Bonne soirée

    1. platypus

      Salut,

      J’ai un rfxtrx, donc non, pas pu tester avec rflink :)
      Par contre, je n’ai pas chronométré, mais je n’ai pas l’impression que les messages arrivent aussi lentement. j’ouvre, j’ai le message, il n’y pas plus d’une seconde.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser les balises HTML suivantes : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>