Futile : la boite aux lettres !

Rédaction : le 12/01/2019
Mise à jour : le 13/02/2019

Envie de savoir que vous avez du courrier ou un colis. De ne pas vous déplacer quand c’est de la publicité … ou pire ouvrir votre boite aux lettres pour voir qu’elle est vide alors qu’il pleut ! Le top de la fainéantise… on va domotiser notre boite aux lettres ! Si !


Courrier passé, courrier récupéré..

Ou la version notifications ! Je l’ai aussi incluse quand nous arrivons dans les messages de désactivation de l’alarme ou de bienvenue par SMS pour savoir s’il y a du courrier ou non…

Envoi d’une photo avec l’indication du type de courrier. Ici, pas de voiture de la Poste, mais une dépose de publicité…

Pré-requis :

  • une Raspberry avec des GPIO disponibles à proximité de votre boite aux lettres (alternative, un wemos) ;
  • deux capteurs ILS de petite taille (et le nécessaire de montage électronique, double-face extérieur) ;
  • un plugin de notification : télégram, email, MMS ;
  • facultatif : une caméra pointant votre boite aux lettres – l’intérêt est de savoir si c’est de la publicité ou réellement “la Poste” ;
  • facultatif : le démon BLEA déployé sur votre Raspberry et des NUTs sur vos clés de boite aux lettres/maison.

Concernant la partie BLEA et JEEDOUINO, je vous renvoie sur l’article en question qui traite déjà le sujet. L’intérêt est d’avoir une antenne Bluetooth avec des NUT à proximité de votre boites aux lettres. Pourquoi ? Car on pourra traiter le fait que vous récupérez le courrier, plus facilement !

Relire l’article !

Au niveau du matériel, quelques liens pour vous permettre d’acheter le matériel adéquat :

Raspberry 3 all-inclusive

Nut Finder 2 (à mettre sur vos clés de maison, boite aux lettres)

Nut Finder 3 (meilleure autonomie)

Capteur ILS (à lames) de faible encombrement

Mon portail n’étant pas loin, j’ai ajouté ce capteur pour savoir s’il était ouvert/fermé !

Capteur magnétique extérieur

Je vous conseille ce type de kit très complet pour vous lancer dans quelques soudures. Ici, il vous faudra juste ajouter des terminaisons adaptées aux pins de vos GPIO rien de plus !

Kit 1

Kit 2

Aspect Matériel

J’ai fait le choix d’utiliser des capteurs à lames (ILS) de faible encombrement, notamment pour la fente. Il est assez compliqué d’avoir un capteur de faible taille qui ne vient pas bloquer l’ouverture de la fente.

Sur cette photo, vous pouvez voir les deux capteurs, un positionné au niveau de la fente avec un déport et un second pour la porte.

Vue globale
La gestion de la fente (ouverte)
La gestion de la fente (fermée)
La gestion de la porte de la boite aux lettres

Côté Jeedouino, comme pour le ballon d’eau chaude (voir l’article) ou l’article de présentation de la Raspberry (voir l’article), configurez vos 2 capteurs ILS comme suit :

Pour ma part, il y a un capteur magnétique pour le compteur d’eau (40), le contact portail (37) et deux capteurs pour la boite aux lettres (33/35)
les pins 33 et 35 – les 2 autres fils de vos capteurs sont à positionner en GND

Mappez vos commandes ainsi crées sur un virtuel avec 2 informations de type binaire. Vous commencez à avoir l’habitude !

Le virtuel avec 2 informations de type binaire
Le mapping sur les 2 GPIO de la Raspberry de BAL

Si vous possédez des NUTs, vous aurez l’information du niveau du signal capté par l’antenne BLEA de cette Raspberry. Vous pourrez donc déduire qu’il s’agit de Pierre, Paul ou Jacques qui ouvre la boite aux lettres avec ses clés et non pas le facteur qui dépose un colis ! Votre NUT possède autant de niveaux de signal que d’antennes BLEA dans votre maison :

J’ai 4 antennes donc 4 niveaux de signaux captés. Celui que j’utiliserai sera celui du portail.

Et dans Jeedom ?

Commençons par créer le widget de notifications. Ce widget est disponible sur le market des widgets. Saisissez “boite aux lettres” dans le champ recherche et téléchargez le widget :

Widget de type “string” pour la boite aux lettres

Au cas où :

<div style="width:100px;min-height:70px;" class="cmd #history# tooltips cmd-widget" data-type="info" data-subtype="string" data-cmd_id="#id#" data-cmd_uid="#uid#" data-version="#version#">
  <center>
    <div style="font-weight: bold;font-size : 12px;#hideCmdName#">#name_display#</div>
    <span style="font-size: 2.5em;" class="iconCmd"></span>
  </center>
  <script>
    jeedom.cmd.update['#id#'] = function(_options){
      $('.cmd[data-cmd_id=#id#]').attr('title','Valeur du '+_options.valueDate+', collectée le '+_options.collectDate)
      $('.cmd[data-cmd_id=#id#] .iconCmd').empty().append("<img src='plugins/widget/core/template/dashboard/cmd.info.string.Bal/"+_options.display_value+".png'>");
   }
   jeedom.cmd.update['#id#']({display_value:'#state#',valueDate:'#valueDate#',collectDate:'#collectDate#',alertLevel:'#alertLevel#'});
 </script>
</div>

Et le fichier à placer dans /plugins/widget/core/template/dashboard et le bon répertoire.

Créez ensuite un virtuel de type string où vous appliquerez le widget précédemment téléchargé. Les champs “information” correspondront à des variables que l’on modifiera par scénario :

  • soit celle qui correspond à ce qu’il y a dans la boite aux lettres (quoidansbal) ;
  • soit celle qui correspond à l’heure du passage (passagefacteur, celui qui récupère le courrier) …
Virtuel de boite aux lettres – j’ai doublé le champ texte car j’utilise des designs à fond clair ou foncé…
N’appliquez que le widget téléchargé à au virtuel correspondant à quoidansbal. Vous pouvez appliquer le widget de texte donné dans l’article sur la météo.

Attaquons ensuite les scénarios !

Le scénario (les) !

Deux scénarios à prévoir. Le premier gère les notifications. Le second gère la remise à zéro.

Le premier scénario se déclenche uniquement quand la porte ou la fente est ouverte (==1). On s’appuie sur 4 variables internes :

  • passagefacteur : pour avoir l’heure du passage ;
  • courrier : binaire à 1 si j’ai du courrier ;
  • colis : binaire à 1 si j’ai un colis ;
  • quoidansbal qui peut être rien, courrier, colis, courrier+colis.

Pour éviter le phénomène du facteur “fou”, j’utilise une variable supplémentaire BAL que je maintiens à 1 pendant 2 minutes au cas où le facteur ouvre, ferme plusieurs fois fente et porte. Cela permet de filtrer afin de n’avoir qu’une notification.

Scénario provoqué par l’ouverture de la fente ou de la porte

3 blocs d’IF pour gérer :

  • si la porte s’ouvre et que nos clés sont détectées (niv_antenne_blea est une variable définie après réglage à -100 dBm) ou que nous sommes arrivés il y a moins de 10 minutes (600 secondes) ou que le portail est ouvert – donnera :

[Capteurs et Actionneurs][BAL (virtuel)][Porte]# == 1

ET

(

(#[Capteurs et Actionneurs][Nut Find Benjamin][Rssi PI-PORTAIL]# > variable(niv_antenne_blea)) OU (#[Capteurs et Actionneurs][Nut Find Emilie][Rssi PI-PORTAIL]# > variable(niv_antenne_blea)

)

OU

(lastChangeStateDuration(#[Personnes][Benjamin][Présence]#,1) < 600 ET #[Personnes][Benjamin][Présence]# == 1)

OU

(lastChangeStateDuration(#[Personnes][Emilie][Présence]#,1) < 600 ET #[Personnes][Emilie][Présence]# == 1)

OU

(#[Extérieur][Portail2 (tab)][Portail]# == 1)

)

Dans ce cas, on indique que le courrier est récupéré. Si je suis présent et que madame ne l’ait pas, j’envoie une photo à madame pour la prévenir que j’ai récupéré le courrier ; sinon l’inverse ; sinon du TTS par JPI (relire l’article sur JPI). Je remets la boite aux lettres à “rien”; pas de courrier ; pas de colis. N’oubliez pas de rafraîchir votre virtuel de boite aux lettres à la fin ! Le fait de remettre à rien permet d’avoir quelque chose de cohérent
Cliquez sur ajouter pour la variable de niveau d’antenne définie à -100 dBm
Première partie – on récupère le courrier et on notifie de la récupération soit par Telegram (avec caméra) ; soit pour synthèse vocale

Au cas où pour avoir l’information de l’état :

Récupéré le #sjour# #jour# à formatTime(#time#) par XXXXX vous donnera “samedi 7 à 12h34 par XXXX”.

  • Sinon si la fente s’ouvre et que nos clés ne sont pas détectées alors j’initialise le filtrage pour éviter le facteur fou :D, je mets à jour en fonction de :
    • si j’ai déjà un colis, j’ai donc colis+courrier ;
    • sinon je n’ai que du courrier.

[Capteurs et Actionneurs][BAL (virtuel)][Fente]# == 1

ET variable(BAL,0) == 0

ET

(

(

#[Capteurs et Actionneurs][Nut Find Benjamin][Rssi PI-PORTAIL]# < variable(niv_antenne_blea)

)

OU

(

#[Capteurs et Actionneurs][Nut Find Emilie][Rssi PI-PORTAIL]# < variable(niv_antenne_blea)

)

)

Ici, on teste s’il y avait déjà un colis, on indique si courrier ou courrier+colis. On notifie tout le monde par Télégram. Si nous sommes à la maison, la synthèse vocale prend le relais.
Seconde partie – si est déposé du courrier ; on notifie par Telegram une photo à tout le monde même si nous sommes à la maison et un coup de synthèse vocale si présent
  • Dernier cas, la porte ! sur le même modèle que précédemment.

[Capteurs et Actionneurs][BAL (virtuel)][Porte]# == 1

ET

variable(BAL,0) == 0

ET

((

(#[Capteurs et Actionneurs][Nut Find Benjamin][Rssi PI-PORTAIL]# < variable(niv_antenne_blea))

OU

(#[Capteurs et Actionneurs][Nut Find Emilie][Rssi PI-PORTAIL]# < variable(niv_antenne_blea))

))

Pareil que précédemment sauf qu’ici c’est la porte…
Troisième partie – si est déposé un colis ; on notifie par Telegram une photo à tout le monde même si nous sommes à la maison et un coup de synthèse vocale si présent

Enfin, second scénario, programmé à minuit tous les jours soit 0 0 * * * * :

Remise à zéro de toutes les variables

N’oubliez pas d’ajouter une condition pour vos détections de mouvement pour éviter qu’un éventuel passage du facteur ne déclenche une détection de mouvement. Vous recevrez déjà une notification en cas de courrier déposé, inutile de savoir que vous avez une détection…

Pour éviter cela, vérifiez qu’il n’y a pas eu de fente/porte ouverte il y a moins de 3 minutes par exemple dans vos conditions de détection de mouvement.

(lastChangeStateDuration(#[Capteurs et Actionneurs][BAL (virtuel)][Fente]#,1) > 180 OU lastChangeStateDuration(#[Capteurs et Actionneurs][BAL (virtuel)][Porte]#,1) > 180)
Ajouter une condition pour vos détections de mouvement sur les caméras critiques

Un article au summum de la futilité de la domotique ! Mais alors quel bonheur de rentrer chez soi et de ne pas s’arrêter inutilement soit car l’autre a déjà pris le courrier, soit car c’est inutile !

La conclusion de cet article

Si vous avez aimé cet article, remerciez-moi en considérant une petite donation financière par Paypal. Cela prend du temps de rédiger et de partager ce contenu, sans publicité !

Merci à vous !

One thought on “Futile : la boite aux lettres !

  1. Bonjour,

    je souhaiterais domotiser ma BL depuis quelque temps mais celle ci est au bout du jardin, sans protection pluie ni électricité aux abords.

    Est il possible d’utiliser un wemos avec une pile ( j’ai lu que la CR123 pourrait convenir) ?

    De plus est il possible de le faire communiquer avec jeedom en 433 via le Rflink?

    1. Bonjour ! Si wemos, c’est Wifi – pas 433 MHz, je ne comprends pas trop comment vous pouvez d’ailleurs me poser ce type de questions. A la limite, vous pouvez dévier un contacteur de fenêtre 433 MHz mais l’encombrement sera compliqué à gérer. Sans compter qu’une pile dure rapidement peu dans des conditions mauvaises (température négative, excessive etc). Pour ma part, j’avais fait des essais avec un module Chacon, j’ai laissé tomber. Pareil avec du Xiaomi que j’ai ouvert et sur lequel j’avais soudé un capteur ILS. Idem, j’ai laissé tomber.

  2. Bon tuto explicatif qui va aider certains à se lancer.
    C’est clairement un gadget mais toute la famille ne peut plus s’en passer surtout quand un des membres attend un colis … 😉
    Juste pour partager mon expérience, je gère la différence entre relève et dépose avec l’état du portail.
    Si le portail est ouvert et que c’est la porte de la BAL qui est ouverte, c’est une relève. Sinon c’est une dépose.

    1. Bonne idée. Vu que j’ai fait le choix d’avoir une antenne BT à portée (qui me sert aussi pour détecter nos voitures), j’utilise le niveau d’antennes – qui est sans faille :).
      Je vais ajouter la condition sur l’état du portail dans la liste des conditions OU. Et donc éditer le tuto. Merci pour ton aide ;).

  3. Amusant, j’ai fait ça en 2005 et je l’ai associée à ma domotique en 2010. J’ai pris une boite à lettre à deux ouvertures (une de chaque côté) et j’ai mis de simples contacteurs qui faisaient basculer un relais bistable positionné chez moi. Le bistable m’allume une led quand la face avant est ouverte et s’éteint lors de la prise la prise du courrier depuis la face arrière. Simple et cout ridicule…

  4. Bonsoir je suis en train de mettre en place la gestion du courrier mais je ne trouve pas le widget sur le market j’ai l’impression qu’il a été supprimé. Est ce que tu pourrais le partager je ne sais pas si c’est possible ?
    Merci.

  5. Il faut penser à ajouter la variable courrier_recupere et la remettre à 0 dans les 2 IF où un colis/courrier est de nouveau mis dans la boite aux lettres.
    On voit la variable mis à 1 quand on récupère le courrier (premier IF).
    Petit oubli, corrigé dans ma version actuelle qui permet par exemple s’il y a plusieurs fois du courrier dans la journée d’avoir le texto sur la gestion de présence en testant si le courrier a déjà été récupéré !

  6. Bonsoir,

    Tuto très sympa mais moi je bloque au niveau suivant: “Créez ensuite un virtuel de type string” j’ai chercher dans mon Jeedom t sur le forum mais j’ai pas trouver comment créer un virtuel de type string.

    Merci d’avance pour votre aide à tous

    1. Bonsoir,

      On voit dans la copie d’écran que le widget téléchargé sur le market (qui semble avoir disparu – voir autres commentaires) est du type “string”.
      En fait, c’est le type autre ;). Il faut procéder par élimination : numérique, binaire et AUTRE :). CQFD.

Laisser un commentaire

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