Rédaction le 11/12/2018
Mise à jour le 18/01/2019
Mise à jour le 29/05/2020
Pré-requis :
- une Raspberry avec fonction Bluetooth (PI3 ou PI2 avec clé Bluetooth dédiée – relire l’article VM BLEA) ;
- un lecteur de carte microSD sur votre ordinateur et la carte microSD destinée à votre Raspberry ;
- des capteurs connectés dessus (ou non) ;
- un serveur SNIPS installé en VM Proxmox (article à venir) et le plugin Jeedom installé ;
- Jeedom avec les plugins BLEA et Jeedouino installés.
Un article qui va vous permettre de transformer une raspberry PI3 (ou PI2 avec clé Bluetooth) en agrégateur de capteurs et antenne Bluetooth – BLEA. Mais il évoluera dans le futur avec SNIPS ! Cet article couvre donc que les 2 premiers opus…
L’intérêt :
- couvrir son domicile avec des antennes Bluetooth pour vos clés par exemple (par des NUT) – 3 dans mon habitation – plugin BLEA dans Jeedom ;
- permettre la remontée de capteurs : température (capteur DS18B20) ; ouvrant (capteur magnétique) … piscine, chauffe-eau, boite aux lettres etc – plugin JEEDOUINO dans Jeedom ;
- permettre de commander Jeedom ou interagir en local – privé avec Jeedom et l’utilisation de SNIPS. Depuis je n’utilise plus SNIPS et je passe par JPI… mais vous aurez la méthode ! Une alternative existe aussi par le plugin PlayTTS pour piloter des PI distantes.
Après avoir testé plusieurs solutions, mon choix s’est porté sur des Raspberry PI3, pourquoi ?
- leur prix (il y a souvent des promotions) – oui il est conséquent par rapport à un nodeMCU mais il y a
- une possibilité avec le connecteur GPIO pour interfacer des capteurs ou en piloter ;
- le Bluetooth intégré ;
- l’ajout d’une carte Respeaker 2mics + haut-parleur USB pour en faire un satellite audio pour intéragir avec Jeedom en audio ;
- leur faible consommation (< 5-10 W) ;
- j’ai “senti” une meilleure stabilité qu’un nodeMCU – qui est limité en agrégateur uniquement (pas de Bluetooth, pas d’audio) ;
- le port Ethernet – mon choix s’est porté sur une fiabilisation du réseau en Ethernet ou en CPL (voir l’article dédié).
Mais il y a des “mais” avec cette petite bête :
- l’écriture sur la carte SD est coûteuse, elle fatigue la carte – il faut donc se limiter à envoyer les informations pour garantir une fiabilité accrue (plus de 2 ans pour moi) ;
- mettre en place une surveillance de ces Raspberry – cela ferait l’objet d’un article à part.
Encore une fois, c’est ma vision de la domotique après avoir essayé d’autres éléments, perdu du temps, avoir été bloqué avec une couverture Wifi instable etc. Libre à vous de vous faire la même.
Je n’aborderai pas l’installation des capteurs d’un point de vue électronique ici. Il existe des sites très complets pour faire cela et je présenterai des cas concrets dans le futur : piscine, eau chaude, portail, boite aux lettres et leurs applications dans Jeedom.
http://espace-raspberry-francais.fr/Composants/Sonde-de-temperature-DS18B20-sur-Raspberry-Francais/
Internet est plein de montage avec des capteurs …
https://easydomoticz.com/forum/viewtopic.php?t=6508
Quelques liens bien pratiques pour trouver les produits sur Amazon pour vous permettre de réaliser vos satellites – agrégateurs à base de Raspberry – pas mal viennent de Chine mais sortent moins chers !
- la Raspberry en pack complet (alimentation 2.5A – boitier – carte SD) ;
- un tracker de clé (pour gérer la présence) – mention particulière oubliez les NUT mini moins chers mais dont la batterie fond comme neige au soleil – deux versions – forcément la plus chère tient plus longtemps la batterie.
- un capteur Inox de niveau ;
- une sonde DS18B20 de température (piscine, eau chaude …) ;
- un capteur magnétique d’extérieur (portail, garage …) ;
- un capteur compact d’extérieur ou intérieur (boite aux lettres, ouvrants …) ;
- un capteur inductif pour remonter votre consommation d’eau ou électrique avec un indicateur métal à l’intérieur ;
- une carte 2 micros (du coup, vous ne pouvez plus utiliser les GPIO) ;
- l’haut-parleur USB pour pouvoir entendre …
La Raspberry all-inclusive :
Raspberry Pi 3 Official Desktop Starter Kit (16GB, Black)
Les trackers Bluetooth avec une autonomie de 6 mois minimum :
Un capteur de niveau d’eau (cuve, piscine) Inox :
Un capteur étanche DS18B20 bien connu (eau chaude, piscine, etc) :
TOOGOO(R) DS18B20 Sonde Capteur Numerique de thermique Temperature Cable 1 Metre
Un capteur d’ouvrant compact (boite aux lettres) :
Pour les ouvrants extérieurs (store, volets à lames, porte de garage, portail etc) :
Merssavo Commutateur De Capteur Filaire à Contact Magnétique Pour Garage Domestique
Un capteur inductif pour remonter votre consommation électrique ou d’eau si votre compteur est à aiguilles (métal !) :
Une carte 2 microphones omni-directionnel et un haut parleur USB compact :
B Blesiya Keyestudio ReSpeaker 2-Mic Pi Hat V1.0 Board for Raspberry Pi Zero
Installation de la Raspberry
En suivant le guide pour installer Proxmox, faites de même non pas avec une clé USB mais avec la carte microSD destinée à votre Raspberry :
- Télécharger la version lite de Raspbian – distribution Linux sans interface graphique – que nous allons “graver” directement avec Etcher sur la carte microSD ;
- Etcher installé sur votre ordinateur ;
- Sélectionnez l’ISO dézippé du fichier précédemment téléchargé ;
- Gravez le …
https://www.raspberrypi.org/downloads/raspbian/
Où télécharger Raspbian
Sélectionnez Raspbian Stretch Lite – Download ZIP
Avant d’éjecter votre carte microSD de votre ordinateur, facilitons-nous la tâche pour cette Raspberry :
- Ouvrez votre explorateur Windows ;
- Ignorez (=NON) les messages indiquant que votre carte microSD n’est pas formatée ;
- Sélectionnez la partition boot de votre carte microSD ;
- Ajoutez un fichier vide sans extension ssh à la racine de cette partition par Bouton Droit / Nouveau / Fichier Texte / tapez ssh sans extension !
Personnellement, ce ne sera que de l’Ethernet ! Je vous donne une astuce – de la même manière, si vous souhaitez passer par le Wifi pour votre Raspberry, ajoutez un fichier selon cette méthode.
Ajoutez un fichier wpa_supplicant.conf à la racine pour indiquer à la Raspberry où se connecter en Wifi. L’intérêt est alors de se passer d’écran, clavier pour son installation ! Mais on fera de même en Ethernet.
https://raspbian-france.fr/connecter-wifi-raspberry-pi-3/
Le texte à placer dans le fichier wpa_supplicant.conf pour permettre à la Raspberry de démarrer automatiquement sur le Wifi en remplaçant vos paramètres …
network={ ssid=”nomDeLaBox” psk=”cléDeSécurité” key_mgmt=WPA-PSK}
ssid=”your ssid”
psk=”your password”
}
Ensuite, éjectez la carte microSD de votre ordinateur, glissez-la dans la fente de la Raspberry et démarrez-là en branchant l’alimentation (regardez à l’intérieur si vous avez des doutes, des LEDs verte/rouge clignotent).
Si souhaité, branchez vos capteurs – alimentation, masse, signaux à remonter, notez vos GPIO correspondants :
Positionnez votre Raspberry à l’endroit où elle restera tant qu’à faire (vous remarquerez que le produit que je vous recommande à un système de fixation au dos du boitier…).
Euh et l’IP ?
Rendez-vous dans votre routeur préféré pour la trouver, par exemple sur mon routeur Asus en cliquant sur Afficher la liste des clients connectés :
- notez alors l’adresse MAC ;
- personnellement, je préfère alors ajouter cette adresse MAC dans le serveur DHCP et fixer une IP qui me convient (lire l’article correspondant) ;
- redémarrer (débranchez/rebranchez) l’alimentation de la Raspberry et vous devriez voir l’IP nouvelle.
Configuration de votre Raspberry
Bon, on se connecte avec son client Bitvise SSH ou Putty préféré avec :
- l’adresse IP de votre Raspberry,
- le login d’origine : pi ;
- le mot passe d’origine : raspberry.
Et on déroule la procédure de configuration de la Raspberry, un peu inspiré de la VM de base (retrouvez l’article ici).
sudo raspi-config
Configurez le nom de votre Raspberry – Network/Hostname : personnellement PI-piece pour m’y retrouver facilement par pièce ;
Configurez les paramètres régionaux – Localisation Options / Change Locale / fr_FR.UTF-8 UTF-8 ; Timezone Europe/Paris ; Keyboard Layout fr (azerty) ;
Activez l’accès aux GPIO – Interfacing Options – Remote GPIO.
Agrandissez la partition d’origine si besoin (si la carte SD est plus grande) – Advanced Options – Expand Filesystem
etc !
Vous devez redémarrer la Raspberry pour prendre en compte son nouvel hostname avant de continuer :
sudo reboot
Reconnectez-vous ensuite avec votre client SSH. Si vous voyez des messages d’erreur lors de la mise à jour sur des variables type “LOCALE” :
sudo dpkg-reconfigure locales
et refaites OK pour régénérer les variables adéquates.
Sinon, on continue ! Personnellement, je désactive le Wifi pour réduire la consommation au besoin :
sudo nano /etc/modprobe.d/fbdev-blacklist.conf
Ajoutez ce texte – uniquement la partie Wifi si vous souhaitez le wifi ; Wifi et BT si vous souhaitez désactiver les 2.
#wifi
blacklist brcmfmac
blacklist brcmutil
#bt
blacklist btbcm
blacklist hci_uart
Un petit coup de mise à jour pour être à jour :
sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y
Vous l’aviez déjà vu non ?
Aussi, je fais le choix d’ajouter un utilisateur sur chaque raspberry au lieu de l’utilisateur de base “pi” – ici user
sudo useradd -m user -G sudo
sudo passwd user
chsh user
Entrez votre mot de passe puis /bin/bash
En super-utilisateur avec le mot de passe à entrer deux fois …
Même procédure pour l’ajouter en utilisateur sudo :
sudo visudo (oui c’est bête !)
choisissez nano ;
décommentez la ligne # sudo ALL …
copiez-la avec user au lieu de sudo :
sudo ALL=(ALL:ALL) ALL
user ALL=(ALL:ALL) ALL
si des doutes : lire l’article de la VM générique ….
Logguez-vous sur le nouvel utilisateur puis retirez l’ancien…
sudo reboot
puis avec votre client modifiez le nom de connexion par “user” (votre utilisateur) !
sudo deluser -remove-home pi
La dernière commande supprime le répertoire /home/pi … vérifiez !
Avant d’aller plus loin, fermez la console de votre client SSH et reconnectez-vous avec votre utilisateur “user” à la place du pi. Ensuite ajoutons quelques accessoires :
sudo apt-get install -y vim fail2ban net-tools dos2unix
Je vous renvoie vers l’article de configuration de fail2ban pour le SSH … si vous souhaitez protéger votre Raspberry, s’il vous prenait l’envie d’y accéder de l’extérieur. Personnellement, ce sera VPN + accès local…
Comme les autres VM, j’ajoute la partie NTP (synchronisation serveur temps) ; un joli bash coloré…
sudo apt-get install ntp -y
Ajoutez ces lignes :
sudo nano /etc/ntp.conf
server ntp.ubuntu.com prefer
server ntp2.jussieu.fr
server 0.fr.pool.ntp.org
server 0.europe.pool.ntp.org
sudo /etc/init.d/ntp restart
sudo dpkg-reconfigure tzdata
Puis on reconfigure Europe/Paris
Un joli bash :
rm -rf /home/user/.bashrc
Fermez et relogguez-vous sur votre client SSH pour avoir la couleur !
wget https://raw.githubusercontent.com/jeedom/core/stable/install/bashrc -O /home/user/.bashrc
dos2unix /home/user/.bashrc
Puis désactivez l’IPV6 :
ip a s | grep inet6
Vous permettra de voir si une connexion IPV6 est active (pas au sens des ports mais bien de l’IP
sudo nano /etc/sysctl.d/disableipv6.conf
# désactivation de ipv6 pour toutes les interfaces
puis ajoutez ce texte :
net.ipv6.conf.all.disable_ipv6=1
# désactivation de l’auto configuration pour toutes les interfaces
net.ipv6.conf.all.autoconf=0
# désactivation de ipv6 pour les nouvelles interfaces (ex:si ajout de carte réseau)
net.ipv6.conf.default.disable_ipv6=1
# désactivation de l’auto configuration pour les nouvelles interfaces
net.ipv6.conf.default.autoconf=0
sudo reboot
Un petit reboot et réexécutez la première commande pour voir si votre IPV6 est toujours active.
Configuration de l’antenne Bluetooth
Bon, si vous avez compris l’article sur la VM BLEA… rien de plus ! On le déroule de nouveau à l’exception :
- dans la configuration de l’antenne, il faut indiquer votre utilisateur SSH – ici “user” et son mot de passe.
- démarrez à “Installez quelques paquets nécessaires : …”
C’est tout ! Partie courte car le contenu est déjà dans un autre article …
Configuration de la remontée des capteurs
Cette partie part du principe que vous avez branché vos capteurs – aimant, pulse de comptage, température etc…
Le but est maintenant de les intégrer dans Jeedom pour des applications futures : pilotage de ballon d’eau chaude, boite aux lettres etc.
Pour cela, l’excellent plugin Jeedouino et son addon JeedouinoExt ! Pourquoi, car il est très complet : intégration des IO de la Raspberry, démon de remontée des données, évolution possible de votre Raspberry etc. Un autre point, après avoir essayé des méthodes avec Jeelink ou l’installation d’un Jeedom directement sur la Raspberry – c’est la plus fiable et pratique, je trouve !
Malheureusement la procédure d’installation donnée ne fonctionne pas ou mal… donc autant vous aider ! La faute à un php5 un peu casse-pied…. et je suis obligé de vous indiquer de faire quelquechose de “pas propre du tout”. Utiliser un dépôt jessie pour une installation Stretch (Debian9). Mais j’ai cherché longtemps et je n’ai jamais réussi à faire marcher JeedouinoExt…
Activez JeedouinoExt dans le plugin Jeedom puis sauvegarder :
Cliquez sur Configuration / onglet JeedouinoExt/Activer JeedouinoExt :
Dans votre client SSH sur la Raspberry à ajouter à Jeedouino :
sudo nano /etc/apt/sources.list
L’objet du délit – ajoutez la ligne suivante :
deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi
sudo apt-get update -y
Choisir la ligne php5 et non php7 …
sudo apt-get install nginx apache2
sudo apt-get install -y php5-fpm -y
sudo update-alternatives –config php
Ensuite, ajoutons JeedouinoExt sur le serveur Nginx fraichement installé :
cd /var/www/html
Le script installe tout…
sudo wget IPJEEDOM:80/plugins/jeedouino/ressources/JeedouinoExt.zip
sudo unzip JeedouinoExt.zip
cd JeedouinoExt
sudo /bin/bash JeedouinoExt.sh
J’ai eu des problèmes de droits – voir le sujet du forum – qui se résolvent comme cela :
sudo chmod -R 775 $(pwd)
A faire dans /var/www/html/JeedouinoExt
sudo chown www-data:www-data $(pwd)
Direction votre navigateur Web et… :
http://ipraspberry/JeedouinoExt/JeedouinoExt.php
Direction la page page de configuration de votre Raspberry
Ensuite :
- Ajoutez l’adresse IP de Jeedom ;
- Le port : 80 par défaut ;
- Si vous avez modifié le chemin d’installation de Jeedom sinon rien dans le dernier champ ;
- Valider puis cliquez sur sudo install RPi.GPIO pour interfacer vos GPIO avec Jeedom.
Ensuite ajoutez cette Raspberry dans le plugin Jeedouino en cliquant sur le bouton Ajouter :
- Nommez-la ;
- Indiquez qu’il s’agit d’une Raspberry sans Jeedom ;
- Sélectionnez Raspberry PI2/3 A+/B+ GPIO ;
- Son adresse IP ;
- Laissez le champ “port” vide, il se remplit tout seul lors de la sauvegarde ;
- Ne cliquez pas sur Sauvegarder !
- RDV sur l’onglet PINS/GPIO ;
- Configurez vos GPIO : entrée compteur, entrée numérique etc.
- Cliquez sur Sauvegarde puis en haut : Sauvegarder/Générer !
A ce moment, sur la page JeedouinoExt de votre navigateur Web, regardez ! L’équipement est apparu. Le démon Jeedouino envoie l’état de vos capteurs à Jeedom :
Vous pouvez quitter la page. Vérifiez dans Jeedom l’état de vos capteurs par exemple – ici, vous voyez mes virtuels d’agrégation et les Raspberry qui remontent leurs capteurs :
Les dernières de JeedouinoExt depuis 2020 sont très complètes et permettent une meilleure installation, suivi des logs … bravo à Revlys.
Configuration du satellite SNIPS ou PlayTTS
J’avais mis en place une bonne méthodologie d’installation de SNIPS sans faille. Mais j’ai abandonné SNIPS car je trouvais que l’on s’en servait plus mis à part faire “waow” quand quelqu’un venait. On reste assez tactile dans l’approche. Et le récent rachat par SONOS ne laissant rien augurer de bon, cela ne faisait que confirmer pour moi le modèle Startup et rachat pour valorisation. Next ! JPI sur Android fait très bien le travail. A défaut, un petit haut-parleur USB sur les PI et le plugin playTTS fait très bien le travail !
Astuce !
Pour répliquer vos Raspberry sans trop de souci, je vous conseille d’utiliser Win32DiskImage pour créer une image valide et la réécrire. Il existe des tutoriels très complets, mais sincèrement c’est bête comme bonjour !
Insérez votre carte microSD dans votre PC, lancez le logiciel. Ajoutez un nom pour stocker votre fichier IMG, choisissez le lecteur de votre carte et cliquez sur Lire pour “stocker votre image” sur votre PC. Pour l’écrire sur une autre carte microSD, il suffit de cliquer sur Ecrire.
Pensez à changer votre hostname sur la Raspberry lors de la première connexion ! (sudo nano /etc/hosts & sudo nano /etc/hostname) ! Et fixez l’adresse IP correspondante à son adresse MAC
C’est la fin de ce long article !
D’autres variantes existent : PIzero, PI2 avec dongle Bluetooth … adaptez ! Je vous livre mon expérience avant tout avec mes arguments, n’oubliez pas.
Je préfère le rappeler, comme expliqué dans l’article, passez par des virtuels pour capter les données de vos agrégateurs. En cas de remplacement, pas d’opérations fastidieuses de copie d’historique, pas de perte de données … tellement plus simple !
Cet article est long ! Oui ! Il n’est pas encore fini mais il démontre comment une Raspberry peut servir à avoir trois fonctions clés en domotique :
La conclusion de cet article !
– antenne Bluetooth pour BLEA ;
– satellite audio Micro+Haut-parleur pour SNIPS ou Haut-Parleur par PlayTTS ;
– agrégateur de capteurs ou d’actionneurs pour JEEDOUINO.
Si vous avez aimé cet article, faites le savoir, partagez-le ! Et n’hésitez pas à me supporter 🙂
Merci à vous !
Un petit aspirine pour le mal de tête
Ahahaha 😂👍
Du fond de mon lit tout a l air clair.
Merci encore pour ce blog
De rien !
Je dirais qu’il manque juste le script pour lancer automatiquement blea sur le Raspberry en cas de reboot. Car on ne pensera pas forcément à retourner sur jeedom pour le relancer à la main 😉
Mon choix s’est porté sur une autre solution comme je l’ai expliqué dans l’article. Cela fait l’objet d’un article qui sera publié la semaine prochaine !
Ce script de relance n’est pas assez fiable à mes yeux, j’ai eu en plus d’un an des fois où il n’est pas remonté en cas de coupure électrique.
j’ai suivi le tuto mais j’ai du faire une grosse erreur car je nai plus du tout acces a mon jeedom
voila ce que j’ai
XXX
XXX
Bonjour,
Je ne vous conseille pas de publier votre adresse de site ! Pour cette raison, j’ai édité votre message.
Ce type de copie d’écran n’aide pas. Publiez plutôt vos logs ou vos fichiers de configuration et tout le monde pourra vous aider.
Salut benj.
Je viens d’installer jeedouino sur un rpi pour la gestion du cumulus (je voulais un esp mais la panne de wifi m’a fait changer d’avis… du coup rpi en ethernet 🙂 )
Pas simple l’installation quand même mais sa l’air de fonctionner. J’attend ma sonde et mes relai pour test tous ça mais la partie config à l’air bonne les daemon sont ok 😀
A bientot 😀
Y a plus qu’à ! Mika a ajouté un temps supplémentaire pour la chauffe. Mais je préfère ma gestion par scénario qui est plus propre et qui ne lance la chauffe que si nécessaire et sur la durée qui convient.
C’est ce que j’ai cru comprendre mais j’ai cru lire que sa saturait ton réseau RFX-Com?
Moi j’ai commandée des relais pour mettre sur les gpio et commander en direct…
On pourri imagine un script perso dans le rpi pour une cmd en local en cas de défaillance de jeedom…
Enfin on va déjà commancer par l’électronique et je suis pas très doué 🙂
Merci
Non, même si je n’en suis pas sûr, je pense qu’il y avait un équipement qui me saturait le rfxcom. Mais curieusement, j’ai restauré ma VM Jeedom en 10min et tout est redevenu normal. L’intérêt des VM !
Donc rien à voir. Oui, l’idée est bonne. Mais du coup, l’intérêt du plugin avec la chauffe n’est pas intéressant.
super article, merci !
Petite question , j’aurais voulu ajouter une antenne wifi sur un port USB afin d’augmenter la portée du signal.
Y-a-t’il un moyen simple de le configurer. Faut-il déactiver le wifi sur la carte ?
Merci beaucoup
Hurmf, attention l’USB et les clés. Ca se déconnecte et la fiabilité ne sera pas au RDV (vécu et testé).
Vous pouvez bloquer le wifi en créant un fichier dédié dans modprobe avec les commandes blacklist mais sinon il suffit de récupérer le wlanX (1 normalement) et faire le fichier de connexion adéquat.
Bonne chance !
Salut Benj,
Merci encore pour cet article. Ce blog synthétise bien ce qu’on peut trouver sur le forum et ton installation m’a beauucoup inspiré !
Je souhaite mettre en place le capteur à induction comme tu as fait sur le compteur d’eau mais je suis un peu limité sur le montage électrique. Bon j’ai vu que tu te servais de l’alim 3.3V du RPI et en Ethernet plus fiable, mais est ce que tu aurais moyen de détailler un petit peu le montage de ta carte wrap ? et les composants utilisés ?
Merci beaucoup !
Euh… Merci. Mais le montage est on ne peut plus simple. 4 fils, alimentation 3.3 et 5v issues de la pi, la masse et le gpio. Et 3 résistances dont tu as la valeur. Après faut juste savoir souder.
Merci Benjamin pour ton tuto et ton aide !!
Pour ceux qui veulent faire l’installation : il n’est plus nécessaire de faire la partie :
“Dans votre client SSH sur la Raspberry à ajouter à Jeedouino :
sudo nano /etc/apt/sources.list
L’objet du délit – ajoutez la ligne suivante :
deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi
sudo apt-get update -y
sudo apt-get install nginx apache2
sudo apt-get install -y php5-fpm -y
sudo update-alternatives –config php
Choisir la ligne php5 et non php7 … ”
Comme le plugin Jeedouiono a évolué, il faut dérouler la procédure qui est indiquée dan sle mode d’eploi du plugin.
Quand vous créez le nouvel équipement, n’oubliez pas de cocher “RPI sans Jeedom*” situé à côté des coches “activé” et “visible”
Bonne update.
Mais tout récent 👍👍👍
Merci à revlys 😉