Antenne BLEA, MotionEYE et Pi-hole sur un Raspberry Pi 2

Afin de pouvoir mettre en place la gestion de présence, il va falloir créer un réseau d’antennes Bluetooth pour couvrir la maison. J’ai prévu pour cela de créer une antenne dans le garage pour couvrir le garage et le devant de la maison. Une antenne ne monopolisant que très peu de ressources processeur/mémoire, je vais aussi l’utiliser pour recycler une vielle webcam Logitech C200 (480p) avec MotionEYE. Cela me permettra d’imaginer des scenarios de sécurisation du garage. Je vais aussi y ajouter un serveur Pi-hole secondaire à mon installation en cas de coupure du serveur primaire.

Pré-requis matériel

Pré-requis logiciel

Installation et configuration du Raspberry Pi

Rien de plus simple avec le logiciel de la fondation Raspberry Pi qui vous permettra de formater votre carte mémoire et de pré-configurer l’ensemble des paramètres de Pi OS.

Télécharger Raspberry Pi Imager : ici

Une fois télécharger et installer, vous pourrez formater votre carte microSD avec Pi OS Lite.

Afin de permettre d’utiliser son Raspberry Pi dès le premier démarrage, l’outil permet de configurer Pi OS en ouvrant les « options avancées » avec la commande « ctrl + maj + X ». Vous pourrez donner l’hostname de votre choix, activer SSH avec un mot de passe fort (voir l’article de NextINpact sur le sujet), configurer le réseau wifi, etc. Il n’y a qu’à parcourir les options possibles.

Une fois allumé et connecté au réseau on peut se connecter sur le Raspberry Pi en SSH avec le login « pi » et le mot de passe défini lors de la création de la carte SD.

Une fois connecté on met à jour l’OS :

sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get full-upgrade -y

Dans le cas ou vous voudriez modifier d’autres paramètres de Pi OS (GPIO, écran, OC, etc), il vous suffira de le faire au travers de la commande suivantes.

sudo raspi-config

Une fois le Raspberry Pi mis à jour et finement configuré ; un petit reboot.

sudo reboot

Votre Pi est prêt à être à recevoir ces multiples services.

Création de l’antenne BLEA

Pour commencer, on connecte un dongle USB Bluetooth (j’ai utilisé ce modèle TP-Link UB400). N’ayant pas une grande maison et pouvant créer un réseau d’antennes assez facilement je n’ai pas besoin d’une clef avec une grande portée. Si vous avez besoin d’une grande portée, beaucoup recommande cette clef Sena UD100-G03 qui peut accueillir une antenne plus performante au besoin.Il suffira ensuite de se rendre sous Jeedom dans le plugin « Bluetooth Advertisement » qui aura été préalablement installé et de cliquer sur « Antennes ».

Il faudra renseigner les champs suivants :
– Nom : Pour identifier l’antenne au sein du plugin BLEA
– IP / Port / User / Password : Pour permettre au plugin de se connecter au Raspberry Pi en SSH et installer tout se qui est nécessaire à la création de l’antenne.
– Devise : pour identifier le dongle Bluetooth (laisser hci0).
Une fois ces éléments complété, il faudra « Envoyer les fichiers » et attendre le retour de commande nous informant que l’envoi est terminé. Puis il faudra « Lancer les dépendances » pour installer l’antenne BLEA. Vous pourrez suivre l’avancé de l’installation avec les « Log dépendances » que vous pourrez consulter dans l’onglet « Configuration » du plugin.

Une fois que l’installation est terminée, l’antenne est opérationnelle.

Si tout c’est bien passé, votre antenne a un petit cœur vert avec le

Installation de Pi-hole

Rien de plus simple : Il suffit d’exécuter ces lignes de commandes

wget -O basic-install.sh https://install.pi-hole.net
sudo bash basic-install.sh

Il suffira par la suite de suivre le processus d’installation :

Utilisez Quad9 qui est selon moi le meilleur résolveur (voir l’article de Next Inpact à ce sujet)
Activer le serveur DNS en IPv4 et IPv6 car sur la Freebox Delta, une partie du routage local est réalisé en IPv6 sans que l’on sache vraiment pourquoi… :-/
Cela permettra de modifier la configuration du Pi-Hole via une interface graphique.
Oui, oui et Oui, sauf si vous voulez vous compliquer la vie !
Je désactive les logs pour ne pas user la carte SD du Raspberry Pi prématurément.
Idem que pour les logs, mais aussi surtout car la vie privée est importante. Même sur des serveurs maisons. :-$

Veillez à noter le mot de passe transmis à la fin de l’installation

Votre Pi-hole est installé et « configuré » (un second article sur Pi-hole sera consacré à la configuration plus poussée de ce dernier) ! Vous pouvez donc y accéder avec votre navigateur à l’adresse indiqué lors de l’installation. Dans mon cas :

http://192.168.0.1/admin

La seule chose qui vous reste à faire est de faire pointer l’intégralité des requêtes DNS de votre réseau sur votre Pi-hole. Il vous suffira de vous connecter à votre interface administrateur de votre routeur et de modifier l’IP du serveur DNS de votre serveur DHCP :

https://mafreebox.freebox.fr

Je ne sais pas pour quelle raison, même si le DHCP v6 est désactivé sur la Freebox, une partie du trafic est malgré tout routé en IPv6 (si quelqu’un à l’explication, je suis preneur). Il faudra donc aussi modifier le serveur DNS du DHCP IPv6.

Une fois connecté avec votre mot de passe admin de votre Freebox, allez dans les paramètres :

Accès aux paramètres de la Freebox pour modifier le serveur DNS du serveur DHCP v4 et v6
Remplacement du serveur DNS 1 par l’IPv4 du serveur Pi-hole.
Remplacement du serveur DNS primaire par l’IPv6 du serveur Pi-hole.

Maintenant, toutes vos requêtes IPv4 et IPv6 passent par votre Pi-hole !

Installation de MotionEYE

Pour installer MotionEYE, il suffit d’exécuter l’ensemble de ces lignes de commande via SSH.

sudo apt-get install ffmpeg libmariadb3 libpq5 libmicrohttpd12
wget https://github.com/Motion-Project/motion/releases/download/release-4.2.2/pi_buster_motion_4.2.2-1_armhf.deb
sudo dpkg -i pi_buster_motion_4.2.2-1_armhf.deb
sudo apt-get install python-pip python-dev libssl-dev libcurl4-openssl-dev libjpeg-dev libz-dev
sudo pip install motioneye
sudo mkdir -p /etc/motioneye
sudo cp /usr/local/share/motioneye/extra/motioneye.conf.sample /etc/motioneye/motioneye.conf
sudo mkdir -p /var/lib/motioneye
sudo cp /usr/local/share/motioneye/extra/motioneye.systemd-unit-local /etc/systemd/system/motioneye.service
sudo systemctl daemon-reload
sudo systemctl enable motioneye
sudo systemctl start motioneye

Une fois MotionEYE démarré vous pourrez vous connecter sur l’interface web :

http://192.168.0.1:8765/

Le login d’accès par défaut est « admin » sans aucun mot de passe. Il faut donc absolument commencer par créer un mot de passe. On va aussi en profiter pour créer un second accès de « surveillance » pour Jeedom.

Comme d’habitude, on prévois un mot de passe fort, même si tout ceci n’est qu’en local.

Une fois les mots de passe créés, nous pouvons créer la caméra réseau

Mon type de camera est une UVC Camera (USB video device class).
Il ne reste plus qu’à renommer et configurer votre caméra

Afin de pouvoir récupérer le flux de la camera IP sur Jeedom on récupère la « Streaming URL »

Il ne reste plus qu’à ajouter la camera dans le plugin Jeedom en renseignant les champs de login/mot de passe et URL de la camera.

Voilà comment transformer un vieux Raspberry Pi 2 en caméra IP, bloqueur de pub et comme antenne Bluetooth pour Jeedom.

Je me lance dans la domotique

Me voilà à tourner autour du sujet depuis longtemps (j’ai acheté mes ampoules Philips Hue en 2015 et ma station météo Netatmo en 2014), je me lance enfin dans la domotique. Étant donné l’ampleur de la tâche, je vais essayé en parallèle d’alimenter ce blog au fur et à mesure de l’avancée du projet. Je n’ai pas vocation à en faire des tutoriels mais plutôt un manuel de mon installation.

Mais qui je suis ?

Christopher (vous l’avez le pher.cloud/blog ?!), 34 ans, vivant dans la Drôme accompagné de ma compagne Meghanne et des mes deux fils. Je suis un passionné d’informatique et de tech. J’ai toujours aimé démonter, monter, bidouiller et surtout comprendre ce que j’avais entre les mains. L’achat de notre maison en 2018 sera le terrain de jeux de toute mon installation domotique / informatique.

Par où commencer ?

J’ai commencé par faire le point sur ce que j’ai comme matériel et ce à quoi je voudrais arriver. Aujourd’hui, on a tous des objets connectés qui peuvent être associés à une installation domotique. Je suis aussi du genre a faire avec ce que j’ai. Une page sur mon matériel a été faite pour référencer mes équipements et ainsi pouvoir être au clair sur mon installation.

Simple, simple et efficace.

Définition de mes besoins

Voici quelques objectifs à atteindre avec mon installation domotique :

  • Éclairage
    – Rendre pilotable l’intégralité des points lumineux de la maison. Je ne souhaite pas forcement avoir 100% de mon éclairage « dimmable » avec les couleurs de mon choix, mais de pouvoir interagir sur l’ensemble des luminaires intérieurs et extérieurs.
    – Rendre intelligent certaines lumières pour s’adapter à des situations et gagner en confort (limiter automatiquement la luminosité des couloirs et des WC la nuit, par exemple).
    – Simuler de la présence en cas d’absence.
    – Réaliser un éclairage ou une extinction des lumières suivant notre présence.
  • Chauffage
    – Gérer le chauffage le plus finement possible en fonction des plannings et informations remontées grâce à la domotique (détection d’absence prolongée, par exemple).
    – Détecter les gaspillages de chauffage (fenêtre ouverte trop longtemps, par exemple).
  • Énergie
    – Mesurer les consommations énergétiques afin d’identifier de potentiels fuite d’eau ou coupure de courant.
    – Gérer les cycles de chauffe de mon ballon d’eau chaude.
    – Couper le courant de certains périphérique à des moments clefs.
  • Automatiser
    – La gestion de notre robot aspirateur (si personne à la maison : passer l’aspirateur).
    – La gestion d’un futur arrosage automatique (arroser uniquement si nécessaire avec les données de la station météo et l’humidité mesurée du sol).

Je n’ai pas forcement prévu de sécuriser notre maison par la domotique. Je ne suis pas adepte de la vidéo surveillance et j’ai de gros doutes sur l’efficacité des alarmes. De plus, la tâche est grande pour définir et configurer une telle installation avec des contraintes de ce type :
– Aucune action à effectuer pour activer ou désactiver l’alarme (gestion de présence 100% fiable).
– Fiabiliser les différents capteur afin d’éviter les faux positifs ou encore les inhibitions.
Je regarderai ce point là dans un second temps.

Tous ces objectifs devront être atteins avec le moins d’interaction « homme/machine » possible. Le but ultime est véritablement de ne plus avoir à penser à l’installation, et aussi d’être complémentaire à l’installation domestique classique.

Pour atteindre ces objectifs, je dispose déjà d’un serveur sous unRAID sur lequel je vais pouvoir faire tourner Jeedom dans une machine virtuelle.

Pour l’ensemble de mes périphériques domotiques, je vais privilégier tant que faire se peut le protocole Zigbee. Ils sont économiques et le réseau maillé fait que je trouve ce protocole préférable aux autres.

Y’a plus qu’à …