Bonjour
Ce n’est pas nouveau, mais je me permet de vous présenter ma domotisation de ma boite au lettre.
N’étant pas un expert en ESPhome et en yaml, j’ai chercher un moyen a ma porté pour domotiser ma boite au lettre de façon simple (pour moi).
J’ai donc utilisé le matériel suivant : (lien aliexpress, mais vous pouvez trouver ailleurs le matériel) Pour un cout inférieur à 30€ (hors cable RJ45)
Un shelly uni :
Deux contact magnétique Normalement ouvert :
Un transformateur 220V AC/12V DC :
Pose d’un contact magnétique sur la porte avant, qui me permet de détecter l’ouverture du volet « Lettre » ou l’ouverture de la porte « colis »
Pose d’un contact magnétique sur la porte arrière, qui me permet de détecter l’ouverture de la porte pour le ramassage du courrier
Les fils sont maintenu par du scotch électricien (Je ferais mieux par la suite).
Pour la liaison entre les contacts et le shelly (placé dans mon garage à 12m de la boite au lettre, j’ai utilisé un câble RJ45. Je n’ai pas mis de photo, car c’est un le bor…l dans la boite
L’alimentation est situé dans le garage à proximité de la boite de dérivation
Voila en gros pour la partie installation.
Pour le câblage, j’ai procédé comme ceci :
Important : utiliser du 12V ou 24V DC , car j’ai eu quelques souci avec du 24V AC avec le shelly-uni
Pour la partie automatisme :
J’ai utilisé nodered (mais c’est realisable par l’interface HA) :
L’automatisme me prévient par Telegram si nous avons reçu du courrier, si le courrier est relevé par un membre de la famille.
Je reçois un rappel entre 16H et 19H en cas d’oubli. Je reçois une alerte si les portes sont mal fermés.
Ci dessous le details du Flow nodered :
Résumé
[{"id":"5acc8cf9.27a254","type":"tab","label":"Boîte aux lettres","disabled":false,"info":""},{"id":"2b7f2fdf.bbb38","type":"comment","z":"5acc8cf9.27a254","name":"[Boîte aux lettres] RAZ","info":"","x":120,"y":40,"wires":[]},{"id":"7ed8eaa9.970974","type":"comment","z":"5acc8cf9.27a254","name":"[Boîte aux lettres] Boite pleine","info":"","x":140,"y":620,"wires":[]},{"id":"14754c3c.620004","type":"comment","z":"5acc8cf9.27a254","name":"[Boîte aux lettres] Releve Courrier/Colis","info":"","x":170,"y":360,"wires":[]},{"id":"01b3d0a874da7e1d","type":"api-call-service","z":"5acc8cf9.27a254","name":"BAL : counter +1","server":"64fc7b21.810404","version":5,"debugenabled":false,"domain":"counter","service":"increment","areaId":["exterieur"],"deviceId":[],"entityId":["counter.compteur_bal"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":430,"y":660,"wires":[["4ef0dce9028e4be3"]]},{"id":"2a190dbf6281df97","type":"api-call-service","z":"5acc8cf9.27a254","name":"Courrier reçu ON","server":"64fc7b21.810404","version":5,"debugenabled":false,"domain":"input_boolean","service":"turn_on","areaId":[],"deviceId":[],"entityId":["input_boolean.bal_courrier"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":430,"y":860,"wires":[["ab3e65c1b3e9431e","c84823c9412e8db8"]]},{"id":"324485113fbf11c7","type":"api-call-service","z":"5acc8cf9.27a254","name":"Bal : counter reset","server":"64fc7b21.810404","version":5,"debugenabled":false,"domain":"counter","service":"reset","areaId":["exterieur"],"deviceId":[],"entityId":["counter.compteur_bal"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":670,"y":240,"wires":[["d70b469680300e87"]]},{"id":"d70b469680300e87","type":"api-call-service","z":"5acc8cf9.27a254","name":"Notification reset BAL","server":"64fc7b21.810404","version":5,"debugenabled":false,"domain":"notify","service":"telegram_pascal_ha","areaId":[],"deviceId":[],"entityId":[],"data":"{\t \"message\":\"Reset Boite au Lettre.\",\t \"title\":\"INFO : BAL\"\t}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":980,"y":240,"wires":[[]]},{"id":"6d3ed2f2786f40a8","type":"api-call-service","z":"5acc8cf9.27a254","name":"Telegram courrier non ramassé : Pascal","server":"64fc7b21.810404","version":5,"debugenabled":false,"domain":"notify","service":"telegram_pascal_ha","areaId":[],"deviceId":[],"entityId":[],"data":"{\t \"message\":\"Courrier non Ramasssé !!! \",\t \"title\":\"INFO : BAL\"\t}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1040,"y":100,"wires":[[]]},{"id":"3b718d50eb550bea","type":"api-call-service","z":"5acc8cf9.27a254","name":"Telegram courrier ou colis reçu : Pascal","server":"64fc7b21.810404","version":5,"debugenabled":false,"domain":"notify","service":"telegram_pascal_ha","areaId":[],"deviceId":[],"entityId":[],"data":"{\t \"message\":\"Vous avez reçu une lettre ou un colis \",\t \"title\":\"INFO : BAL\"\t}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1160,"y":840,"wires":[[]]},{"id":"07c91b7329905839","type":"server-state-changed","z":"5acc8cf9.27a254","name":"Courrier/Colis reçu ON","server":"64fc7b21.810404","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"counter.compteur_bal","entityidfiltertype":"exact","outputinitially":false,"state_type":"num","haltifstate":"1","halt_if_type":"num","halt_if_compare":"gte","outputs":2,"output_only_on_state_change":true,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":160,"y":860,"wires":[["2a190dbf6281df97"],[]]},{"id":"83f06382840aa9af","type":"api-call-service","z":"5acc8cf9.27a254","name":"Courrier reçu OFF (reset)","server":"64fc7b21.810404","version":5,"debugenabled":false,"domain":"input_boolean","service":"turn_off","areaId":[],"deviceId":[],"entityId":["input_boolean.bal_courrier"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":690,"y":160,"wires":[[]]},{"id":"be7d344afc95712e","type":"api-call-service","z":"5acc8cf9.27a254","name":"Courrier reçu OFF","server":"64fc7b21.810404","version":5,"debugenabled":false,"domain":"input_boolean","service":"turn_off","areaId":[],"deviceId":[],"entityId":["input_boolean.bal_courrier"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":710,"y":500,"wires":[[]]},{"id":"f8ccb50346c867a7","type":"api-call-service","z":"5acc8cf9.27a254","name":"Telegram courrier ou colis relevé","server":"64fc7b21.810404","version":5,"debugenabled":false,"domain":"notify","service":"telegram_pascal_ha","areaId":[],"deviceId":[],"entityId":[],"data":"{\t \"message\":\" lettre ou colis relevé \",\t \"title\":\"INFO : BAL\"\t}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1150,"y":420,"wires":[[]]},{"id":"ca5dca905e2acecd","type":"api-current-state","z":"5acc8cf9.27a254","name":"BAL: Courrier ON","server":"64fc7b21.810404","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_boolean.bal_courrier","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":690,"y":420,"wires":[["f8ccb50346c867a7"],[]]},{"id":"eaad42e3c3d51ac2","type":"api-current-state","z":"5acc8cf9.27a254","name":"BAL: Courrier ON","server":"64fc7b21.810404","version":3,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_boolean.bal_courrier","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":670,"y":100,"wires":[["6d3ed2f2786f40a8"],[]]},{"id":"76b03d775fd91463","type":"inject","z":"5acc8cf9.27a254","name":"Rappel 18H - 20H","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"*/30 18-19 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":190,"y":100,"wires":[["eaad42e3c3d51ac2"]]},{"id":"c0467995506813d6","type":"server-state-changed","z":"5acc8cf9.27a254","name":"Porte avant ouverte !","server":"64fc7b21.810404","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.shelly_uni_bal_channel_1_input","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"5","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":150,"y":1060,"wires":[["b03665e8db2af00b"],[]]},{"id":"d883d529fb09aaab","type":"server-state-changed","z":"5acc8cf9.27a254","name":"Porte arriere ouverte !","server":"64fc7b21.810404","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.shelly_uni_bal_channel_2_input","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"On","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"3","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":160,"y":1120,"wires":[["b03665e8db2af00b"],[]]},{"id":"b03665e8db2af00b","type":"api-call-service","z":"5acc8cf9.27a254","name":"Telegram portes BAL Ouverte","server":"64fc7b21.810404","version":5,"debugenabled":false,"domain":"notify","service":"telegram_pascal_ha","areaId":[],"deviceId":[],"entityId":[],"data":"{\t \"message\":\" Portes boite au lettre ouverte !! \",\t \"title\":\"INFO : BAL\"\t}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":660,"y":1100,"wires":[[]]},{"id":"1c3db456966395d5","type":"api-call-service","z":"5acc8cf9.27a254","name":"Telegram courrier ou colis reçu : Isa","server":"64fc7b21.810404","version":5,"debugenabled":false,"domain":"notify","service":"telegram_isabelle_ha","areaId":[],"deviceId":[],"entityId":[],"data":"{\t \"message\":\"Vous avez reçu une lettre ou un colis \",\t \"title\":\"INFO : BAL\"\t}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1140,"y":920,"wires":[[]]},{"id":"2ab102b3997b2560","type":"delay","z":"5acc8cf9.27a254","name":"","pauseType":"delay","timeout":"2","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":440,"y":500,"wires":[["be7d344afc95712e"]]},{"id":"39535a5c05c4309e","type":"comment","z":"5acc8cf9.27a254","name":"[Boîte aux lettres] Portes ouvertes >5 minutes","info":"","x":190,"y":1020,"wires":[]},{"id":"ab3e65c1b3e9431e","type":"api-current-state","z":"5acc8cf9.27a254","name":"Notification 3 maxi","server":"64fc7b21.810404","version":3,"outputs":2,"halt_if":"4","halt_if_type":"num","halt_if_compare":"lt","entity_id":"counter.compteur_bal","state_type":"num","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":750,"y":860,"wires":[["3b718d50eb550bea"],[]]},{"id":"fce0a04b7d97ec61","type":"api-call-service","z":"5acc8cf9.27a254","name":"Telegram boite pleine : Pascal","server":"64fc7b21.810404","version":5,"debugenabled":false,"domain":"notify","service":"telegram_pascal_ha","areaId":[],"deviceId":[],"entityId":[],"data":"{\t \"message\":\"Votre Boite est Pleine ! \",\t \"title\":\"INFO : BAL\"\t}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1130,"y":660,"wires":[[]]},{"id":"4ef0dce9028e4be3","type":"api-current-state","z":"5acc8cf9.27a254","name":"Notification boite pleine","server":"64fc7b21.810404","version":3,"outputs":2,"halt_if":"10","halt_if_type":"num","halt_if_compare":"gt","entity_id":"counter.compteur_bal","state_type":"num","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":710,"y":660,"wires":[["fce0a04b7d97ec61"],[]]},{"id":"5263ed6b9a96c346","type":"cronplus","z":"5acc8cf9.27a254","name":"22H Reset","outputField":"payload","timeZone":"","persistDynamic":false,"commandResponseMsgOutput":"output1","outputs":1,"options":[{"name":"schedule1","topic":"topic1","payloadType":"default","payload":"","expressionType":"cron","expression":"0 0 22 * * *","location":"","offset":"0","solarType":"all","solarEvents":"sunrise,sunset"}],"x":170,"y":200,"wires":[["83f06382840aa9af","324485113fbf11c7"]]},{"id":"2f61dd8d91d5a27a","type":"server-state-changed","z":"5acc8cf9.27a254","name":"BAL : Porte avant","server":"64fc7b21.810404","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.shelly_uni_bal_channel_1_input","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"50","forType":"num","forUnits":"milliseconds","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":140,"y":660,"wires":[["01b3d0a874da7e1d"],[]]},{"id":"0acc0a941b448f85","type":"server-state-changed","z":"5acc8cf9.27a254","name":"BAL : Porte arriere","server":"64fc7b21.810404","version":4,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.shelly_uni_bal_channel_2_input","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"","forType":"num","forUnits":"milliseconds","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":150,"y":420,"wires":[["ca5dca905e2acecd","2ab102b3997b2560"],[]]},{"id":"c84823c9412e8db8","type":"api-current-state","z":"5acc8cf9.27a254","name":"Notification 1 maxi","server":"64fc7b21.810404","version":3,"outputs":2,"halt_if":"1","halt_if_type":"num","halt_if_compare":"lt","entity_id":"counter.compteur_bal","state_type":"num","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":750,"y":940,"wires":[["1c3db456966395d5"],[]]},{"id":"9f611dc41d83a429","type":"comment","z":"5acc8cf9.27a254","name":"[Boîte aux lettres] Courrier reçu","info":"","x":150,"y":820,"wires":[]},{"id":"64fc7b21.810404","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30}]
Pour Interface visuel :
J’ai crée une carte lovelace :
ci dessous le code :
Résumé
title: Courrier / Poubelle
square: false
columns: 1
type: grid
cards:
- type: horizontal-stack
cards:
- type: custom:button-card
entity: input_boolean.bal_courrier
aspect_ratio: 5/1
show_state: false
show_last_changed: false
styles:
card:
- background-color: white
- border-radius: 10%
- filter: opacity(100%)
- padding: 1%
- color: auto
- text-transform: null
- font-size: 15px
state:
- value: 'on'
name: Vous avez reçu du courrier
icon: mdi:mailbox-open
styles:
card:
- background-color: white
- color: red
- border: 2px solid var(--google-red)
- color: red
icon:
- color: red
name:
- color: black
- value: 'off'
name: Vous avez pas reçu de courrier
icon: mdi:mailbox
styles:
card:
- background-color: white
- border: 2px solid var(--google-green)
- filter: opacity(70%)
- color: green
icon:
- color: green
name:
- color: black
- type: horizontal-stack
cards:
- type: custom:button-card
entity: binary_sensor.shelly_uni_bal_channel_1_input
aspect_ratio: 5/1
show_state: false
show_last_changed: false
styles:
card:
- background-color: white
- border-radius: 10%
- filter: opacity(100%)
- padding: 1%
- color: auto
- text-transform: null
- font-size: 10px
state:
- value: 'on'
name: BAL-Porte avant ouverte
icon: mdi:mailbox-open
styles:
card:
- background-color: white
- color: red
- border: 2px solid var(--google-red)
- color: red
icon:
- color: red
name:
- color: black
- value: 'off'
name: BAL-Porte avant fermé
icon: mdi:mailbox
styles:
card:
- background-color: white
- border: 2px solid var(--google-green)
- filter: opacity(70%)
- color: green
icon:
- color: green
name:
- color: black
- type: custom:button-card
entity: binary_sensor.shelly_uni_bal_channel_2_input
aspect_ratio: 5/1
show_state: false
show_last_changed: false
styles:
card:
- background-color: white
- border-radius: 10%
- filter: opacity(100%)
- padding: 1%
- color: auto
- text-transform: null
- font-size: 10px
state:
- value: 'on'
name: BAL-Porte arrière ouverte
icon: mdi:mailbox
styles:
card:
- background-color: white
- color: red
- border: 2px solid var(--google-red)
- color: red
icon:
- color: red
name:
- color: black
- value: 'off'
name: BAL-Porte arrière fermé
icon: mdi:mailbox-open
styles:
card:
- background-color: white
- border: 2px solid var(--google-green)
- filter: opacity(70%)
- color: green
icon:
- color: green
name:
- color: black
Voila, C’est un projet modeste, mais qui sert tous les jours…
Si sa peut servir a d’autres tant mieux.