Sonnette connectée ESP32 respectueuse de la vie privée grâce à une intégration locale avec Home Assistant
(tristam.ie)- Un projet de sonnette DIY intégrée localement à Home Assistant avec ESP32-CAM et ESPHome, destiné aux utilisateurs qui veulent éviter les sonnettes connectées dépendantes du cloud
- La configuration de base repose sur Home Assistant, l’add-on ESPHome et l’application mobile Home Assistant companion app ; une pression sur le bouton déclenche l’envoi d’un instantané de la caméra dans une notification sur le téléphone
- Le matériel comprend une ESP32-CAM, un bouton-poussoir momentané, un anneau de 8 LED RGB en option, un câble Micro USB de 10 m et un boîtier imprimé en 3D ; la LED intégrée peut remplacer le flash
- Selon la variante d’ESP32-CAM, le brochage et le comportement des résistances de rappel vers le bas peuvent différer ; pour l’entrée bouton sur GPIO14, il faut ajouter un câblage avec une résistance de rappel vers le bas de 10 kΩ vers GND
- Le boîtier en PLA a été utilisé pour l’exemple d’impression, mais le PETG ou l’ABS conviennent mieux pour l’étanchéité ; en raison de l’ouverture pour la caméra, l’installation doit se faire à un emplacement protégé de la pluie
Configuration de la sonnette locale et prérequis
- Cette sonnette connectée vise une configuration respectueuse de la vie privée et s’intègre à Home Assistant via ESPHome
- Pour commencer, les éléments suivants sont nécessaires
- Une instance Home Assistant en cours d’exécution
- L’add-on ESPHome
- L’application mobile Home Assistant companion app pour recevoir les notifications lors de l’appui sur le bouton
- L’exemple de montage utilise un anneau lumineux de 8 LED RGB, mais il peut être omis pour simplifier, en utilisant la LED intégrée de l’ESP32-CAM comme flash
- La version ESP32-CAM AI-Thinker peut ne pas disposer de toutes les résistances de pull-up/pull-down comme un ESP32 classique
- La fonction
INPUT_PULLDOWNd’ESPHome a été essayée sur GPIO14, mais n’a pas fonctionné - Il existe de nombreuses variantes chinoises d’ESP32-CAM, avec des différences possibles selon les cartes
- La fonction
Composants et fichiers publics
- Les principaux composants sont les suivants
- ESP32-CAM
- Une carte dotée d’un bouton
flash/download/io0est recommandée afin de faciliter le premier flashage avec ESPHome - Les cartes sans ce bouton doivent être flashées à l’aide d’un adaptateur FTDI
- Une carte dotée d’un bouton
- Bouton-poussoir momentané
- Anneau lumineux de 8 LED RGB
- Câble Micro USB de 10 m
- ESP32-CAM
- Les fichiers d’impression 3D et de configuration sont publiés
- Fichiers .stl sur Printables
- thatguy-za/esp32-cam-doorbell : configuration Home Assistant et ESPHome
Impression du boîtier et assemblage
- Le boîtier s’imprime en trois pièces
- Corps principal
- Plaque de fixation de l’ESP32-CAM
- Plaque arrière faisant aussi office de support mural
- Les parties avant et arrière du boîtier doivent être imprimées avec des supports
- L’exemple d’impression utilise du PLA, mais pour l’étanchéité, un filament PETG ou ABS avec 20 à 30 % de remplissage est recommandé
- Après impression, deux inserts filetés M2.5 sont ajoutés
- Insérés dans le cache avant pour pouvoir visser le support de fixation de l’ESP32-CAM
- Insérés en bas de la plaque arrière pour permettre de fixer la façade avec une vis M2.5 de 10 mm
Flasher l’ESP32-CAM avec ESPHome
- Pour démarrer l’ESP32-CAM en mode flashage, maintenir le bouton
flash/download/io0enfoncé tout en la connectant à l’ordinateur avec le câble Micro USB - Dans Home Assistant, ouvrir l’add-on ESPHome et créer un nouvel appareil
- Le chemin est
Settings -> Add-ons -> ESPHome -> Open Web UI - Le nouvel appareil peut par exemple être nommé
Doorbell - Choisir ESP32 comme type d’appareil et cocher
use recommended settings
- Le chemin est
- Coller le code de configuration du dépôt GitHub sous
captive_portal:dans la configuration YAML générée - Cliquer sur
SavepuisInstall, puis choisirPlug into this computer - Flasher le firmware depuis le navigateur avec ESPHome Web
- Google Chrome est utilisé comme navigateur le plus fiable pour flasher le firmware de l’ESP32-CAM
- Après compilation du firmware, il est possible de cliquer sur
Download Project; cela peut prendre quelques minutes
- Une fois le nouveau firmware flashé, Home Assistant détecte le nouvel appareil et les entités souhaitées peuvent être ajoutées au tableau de bord
Automatisation des notifications du bouton
- Lorsqu’on appuie sur le bouton de la sonnette, une automatisation prend un instantané de la caméra et l’envoie au téléphone
- Créer une nouvelle automatisation dans Home Assistant
- Le chemin est
Settings -> Automations -> + Create Automation - Créer une nouvelle automatisation à partir de zéro et sélectionner
Edit in YAMLdans le menu en haut à droite
- Le chemin est
- Coller le YAML d’automatisation du dépôt GitHub, puis adapter le nom d’entité de l’appareil, par exemple le téléphone mobile, à l’environnement utilisé
- Après enregistrement et redémarrage de Home Assistant, la nouvelle automatisation est activée
Câblage et contraintes d’installation
- Il existe plusieurs variantes de cartes ESP32-CAM ; il faut donc vérifier le brochage réel de la carte
- Le câblage se fait par soudure à l’arrière du PCB inférieur, celui qui comporte le port Micro USB
- Ajouter une résistance de rappel vers le bas de 10 kΩ entre GPIO14 et GND
- Sans cette résistance, il a été observé que GPIO14 flottait fréquemment à l’état high
- Il est recommandé de protéger la résistance avec de la gaine thermorétractable
- En raison de l’ouverture de la caméra intégrée, la structure n’est pas entièrement étanche et doit être installée à un emplacement protégé de la pluie
- L’alimentation est fournie via le câble Micro USB de 10 m inclus dans la liste des composants
1 commentaires
Avis sur Hacker News
Sympa. J’aime aussi l’éclairage.
On peut aussi fixer un interrupteur reed (comme un capteur classique d’ouverture/fermeture de porte) près de la bobine magnétique qui fait sonner une sonnette stupide, pour envoyer l’information à Home Assistant.
On branche un interrupteur reed à 0,50 $ sur la sonnette existante, alimenté par la même source que la bobine de la sonnette, et on le raccorde à un port d’entrée/sortie numérique d’un ESP. Quand on appuie sur la sonnette, cela envoie un instantané par e-mail depuis la caméra d’entrée uniquement locale, et joue un enregistrement du carillon de la sonnette sur la chaîne stéréo à l’étage. Au départ, je voulais surveiller la tension de la bobine via une entrée analogique, mais c’était trop instable ; la méthode plus simple avec interrupteur reed détecte le courant de façon très fiable.
la même source que la bobine de la sonnetteest excellente. Je me demande quelles autres sources de tension un peu atypiques on peut exploiter dans une maison. Une unité murale de CVC, une ligne téléphonique analogique, ce genre de choses.Une ligne téléphonique POTS (Plain Old Telephone Service) doit fournir environ 48 V CC quand tous les téléphones sont raccrochés. Si un téléphone sur la même ligne décroche, cela tombe dans une plage de 3 à 9 V. Un téléphone décroché consomme généralement environ 20 mA CC en fonctionnement, avec une résistance CC d’environ 180 Ω. Le reste de la chute de tension se produit dans le trajet en cuivre et les circuits de l’opérateur téléphonique, qui comportent généralement une résistance en série de 200 à 400 Ω pour la protection contre les courts-circuits et l’isolation des circuits audio.
https://www.jkaudio.com/article_03.htm
Dans le même esprit, j’en ai déjà fixé un sur le dessus du boîtier d’un relais pour détecter si la bobine était alimentée, sans avoir à toucher directement au circuit de commande ni au circuit de charge.
Tout ce que je veux de ce genre d’appareil IoT, c’est l’absence de dépendance au cloud et l’utilisation du PoE. Je préfère tirer des milliards de câbles plutôt que de gérer ces fichues batteries stupides qui meurent sans arrêt. Les batteries deviennent aussi beaucoup trop chères.
non isolé : https://www.olimex.com/Products/IoT/ESP32/ESP32-POE/open-sou...
isolé : https://www.olimex.com/Products/IoT/ESP32/ESP32-POE-ISO/open...
Changer une batterie une fois par an, c’est une petite corvée, mais avec des dizaines d’appareils, ça s’accumule vite et revient périodiquement, donc ce n’est pas mieux qu’une croissance linéaire.
Quand j’aurai ma propre maison, je pense passer à KNX.
C’est un peu hors sujet, mais ma femme a un TDA assez marqué et perd souvent des objets. Tile ne permet de retrouver les objets que dans un certain rayon, et semble tomber souvent en panne.
C’est peu probable, mais je me demande si quelqu’un a déjà construit un système de localisation intérieure capable de retrouver des objets en 3D à quelques centimètres près dans une maison, avec des balises Bluetooth Low Energy.
Pour revenir davantage au sujet, l’ESP32 est assez impressionnant. Cela dit, je n’ai pas réussi à maintenir une connexion Wi‑Fi stable avec MicroPython ou CircuitPython, mais l’éventail des possibilités est étonnant. Ma carte est assez ancienne ; acheter une carte plus récente ferait peut-être une différence.
MicroPythonouCircuitPython, je ne sais pas trop à quoi il fallait s’attendre. C’est pratiquement à proscrire pour les systèmes embarqués qui exigent de la fiabilité.Il est intéressant de voir que, dans certains endroits du monde, l’existence d’une sonnette est tellement importante qu’on en vient à devoir la rendre « intelligente ». Le succès des sonnettes connectées montre bien qu’il y a une demande
Je n’ai pas de sonnette. Si un visiteur ne sait pas comment me joindre, moi ou quelqu’un d’autre dans la maison, il y a de bonnes chances qu’il n’ait pas vraiment de raison de venir au départ
Et je ne suis pas le seul. D’après une enquête très peu scientifique faite en me promenant la semaine dernière, la plupart des maisons de ma rue sont dans le même cas, et c’est probablement vrai pour une bonne partie de ma ville
Les sonnettes ont un côté anachronique. Presque personne dans notre rue n’en a
D’après les tests que j’ai vus, la sonnette caméra Reolink semble être la seule option commerciale qui corresponde aux exigences de l’auteur. Elle fonctionne en local et peut s’intégrer à Home Assistant
En revanche, l’interphone nécessite une application séparée. La solution faite maison de l’auteur ne semble pas fournir de communication audio, et, au moins avec le seul protocole de la caméra, il ne semble pas non plus y avoir de moyen d’utiliser directement l’audio bidirectionnel dans Home Assistant
L’ESP32 est vraiment un terrier de lapin dans lequel on peut s’enfoncer très loin. Il y a déjà énormément de projets qui l’utilisent ou qui sont en développement avec lui, et voilà maintenant une idée de plus à garder en tête
Super projet. La caméra ESP32 peut avoir une qualité d’image assez médiocre. Ce serait utile d’avoir sur le blog une photo en pleine résolution prise depuis la sonnette
Excellent projet. C’est chouette de voir les différentes sonnettes ESP32 que les makers créent
Ce serait bien d’avoir une vidéo ou des photos d’exemple. J’ai déjà utilisé une ESP32 Cam, et même si c’est impressionnant en soi, ce n’était pas vraiment la qualité que je recherchais. Cela dit, mon usage d’une sonnette connectée se rapproche davantage de la sécurité que du simple « qui est là »
Pour l’instant, pour économiser, j’utilise une sonnette PoE assez coûteuse achetée en état
AS-IS. C’est un produit Axis CommunicationsJ’aime beaucoup sa capacité à recevoir des événements ONVIF. Si l’on peut consommer ces événements, on peut en pratique faire ce qu’on veut, ce qui rend ce type de produit très flexible. Par exemple, il existe aussi des moyens de créer des événements personnalisés, comme lorsque quelqu’un couvre l’objectif de la caméra avec la main
Home Assistant offre un excellent support d’ONVIF. J’aimerais créer une sorte de wrapper autour de scripts, par exemple un booléen porte ouverte/fermée, afin d’obtenir des événements ONVIF natifs
Un des commentaires sur ce site pointait les problèmes de performances de l’ESP32. Je n’ai jamais vraiment manipulé d’appareils IoT ni ce genre de cartes, mais comme elles sont relativement bon marché, j’avais envie d’essayer, et en cherchant j’ai découvert que l’ESP32 était fabriqué en 40 nm
Je me demande s’il existe une version plus récente, fabriquée avec un procédé plus avancé, qui offrirait de meilleures performances avec un budget énergétique similaire
Il existe des familles de SoC qui offrent de meilleurs compromis, mais peu sont aussi accueillantes pour les hobbyistes que l’ESP32. Nordic, peut-être, ou alors passer à de petits ordinateurs monocarte comme le Pi Zero
Malgré tout, l’ESP32 est largement plus puissant que ce dont la plupart des appareils de domotique ont besoin. On ne commence à atteindre ses limites que sur quelques tâches plus lourdes, comme le streaming vidéo ou le machine learning. Et même là, avec un peu d’ingéniosité, on peut déjà faire beaucoup de choses