78
DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3 Ref : NT_202 Iss/Rev : 1.0 Date : 13/02/2017 Page : 1 / 78 Centrale Domotique : Jeedom sur Raspberry PI3 + Auteur : Julien Grenier Nom Fichier : Centrale_Domotique_Sur_Raspberry_PI3_V1-0.docx Date Fichier : 20 février 2017 Suivi des versions : Version Date Commentaire 1.0 13/02/2017 Création

Centrale Domotique Jeedom sur Raspberry PI3 · DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3 Ref : NT_202 Iss/Rev : 1.0 Date : 13/02/2017 Page : 1 / 78 Centrale Domotique

Embed Size (px)

Citation preview

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 1 / 78

Centrale Domotique :

Jeedom sur Raspberry PI3

+

Auteur : Julien Grenier

Nom Fichier : Centrale_Domotique_Sur_Raspberry_PI3_V1-0.docx

Date Fichier : 20 février 2017

Suivi des versions :

Version Date Commentaire

1.0 13/02/2017 Création

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 2 / 78

Table des Matières

1 INTRODUCTION .................................................................................................................................................................. 4

1.1 MATERIEL NECESSAIRE ............................................................................................................................................................. 5 1.2 LOGICIEL NECESSAIRE .............................................................................................................................................................. 6

2 INSTALLATION DE L’OS ....................................................................................................................................................... 7

2.1 OS RASPBIAN ........................................................................................................................................................................ 7 2.2 INSTALLATION MATERIELLE ....................................................................................................................................................... 8 2.3 TROUVER L’ADRESSE IP DE LA RASPBERRY PI. ............................................................................................................................... 9 2.4 PREMIERE CONNEXION : ........................................................................................................................................................ 10 2.5 ETENDRE LA PARTITION SYSTEME ............................................................................................................................................. 11 2.6 MISE A JOUR ....................................................................................................................................................................... 12

3 INSTALLATION DE JEEDOM............................................................................................................................................... 13

3.1 DEPENDANCES ..................................................................................................................................................................... 13 3.2 INSTALLATION ET PRE-CONFIGURATION DE JEEDOM..................................................................................................................... 14 3.3 PREMIER LANCEMENT DE JEEDOM ............................................................................................................................................ 16 3.4 PREMIERE CONNEXION .......................................................................................................................................................... 17

4 SAUVEGARDE ET RESTAURATION ..................................................................................................................................... 18

5 CREATION D’UNE PASSERELLE ET CONFIGURATION DE L’ENVIRONNEMENT ARDUINO. ................................................... 19

5.1 SCHEMA DE LA SERIAL GATEWAY ............................................................................................................................................. 19 5.2 NRF24L01 VS NRF24L01+ .................................................................................................................................................. 22 5.3 CONFIGURATION DE L’ENVIRONNEMENT ARDUINO ...................................................................................................................... 23 5.4 CREATION DU SKETCH DE LA PASSERELLE. .................................................................................................................................. 26 5.5 TRANSFERT DU PROGRAMME DANS L’ARDUINO .......................................................................................................................... 28 5.6 DEBUG CONSOLE. ................................................................................................................................................................. 30 5.7 FINALISER LA SERIAL GATEWAY ............................................................................................................................................... 30

6 CREATION D’UN CAPTEUR D’HUMIDITE/TEMPERATURE + LEDS MYSENSORS .................................................................. 31

6.1 SCHEMA ............................................................................................................................................................................. 31 6.2 CREATION DU SKETCH DU CAPTEUR D’HUMIDITE. ........................................................................................................................ 33

7 CONFIGURATION MINIMALISTE DE JEEDOM .................................................................................................................... 37

7.1 INSTALLATION DU PLUGIN MYSENSORS ..................................................................................................................................... 37 7.2 AJOUT D’UN « NODE MYSENSORS » ......................................................................................................................................... 43 7.3 CONFIGURATION DE JEEDOM .................................................................................................................................................. 44 7.4 CONFIGURATION DU NODE ..................................................................................................................................................... 46 7.5 DASHBORD.......................................................................................................................................................................... 50

8 SECURISATION ................................................................................................................................................................. 51

8.1 SECURISATION MYSENSORS .................................................................................................................................................... 51 8.1.1 Authentification .......................................................................................................................................................... 51

8.1.1.1 ATSHA204Soft ........................................................................................................................................................................ 52 8.1.1.1.1 Schématique : ................................................................................................................................................................... 52 8.1.1.1.2 Activation de la signature et paramétrage du HMAC : ..................................................................................................... 52

8.2 AVEC VOTRE EDITEUR DE TEXTE PREFERE, EDITER LE FICHIER MYCONFIG.H SE TROUVANT DANS LE REPERTOIRE D’INSTALLATION DES LIBRAIRIES

MYSENSORS (CONFER 5.2NRF24L01 VS NRF24L01+ ............................................................................................................................ 52 8.2.1.1.1 Mise à jour des sketchs passerelle et capteur .................................................................................................................. 56

8.2.2 Encryption ................................................................................................................................................................... 61 8.3 SECURISATION JEEDOM ......................................................................................................................................................... 62

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 3 / 78

8.3.1 Mot de passe admin .................................................................................................................................................... 62 8.3.2 Ajout d’un utilisateur ................................................................................................................................................... 63

8.4 SECURISATION LINUX ............................................................................................................................................................. 64 8.4.1 Changer le mot de passe du compte pi ....................................................................................................................... 64 8.4.2 Ajouter un utilisateur .................................................................................................................................................. 64 8.4.3 Mise en place d’un serveur ssh plus sécure ................................................................................................................. 65

8.4.3.1 Configuration du serveur ssh ................................................................................................................................................. 65 8.4.3.2 Création des clefs et transfert de celles-ci au bon emplacement .......................................................................................... 65

8.4.4 Mise en place d’un firewall ......................................................................................................................................... 67 8.4.5 Configuration de la box internet ................................................................................................................................. 68

8.5 TROUVER SON ADRESSE IP PUBLIQUE........................................................................................................................................ 70

9 ACCEDER A JEEDOM DEPUIS SON SMARTPHONE ............................................................................................................. 71

9.1 ANDROID ............................................................................................................................................................................ 71 9.1.1 Configuration .............................................................................................................................................................. 71 9.1.2 Utilisation .................................................................................................................................................................... 75

9.2 AUTRE OS .......................................................................................................................................................................... 77

10 AMELIORER LA CONSOMMATION .................................................................................................................................... 78

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 4 / 78

1 Introduction

Le but du jeu est de créer une centrale domotique :

à moindre coût initial

consommant le moins possible.

pouvant supporter par principe n’importe quel protocole domotique.

sans jamais dépendre d’un site internet externe et sans dépendre de fourniture de données personnelles.

pouvant être accédé de manière sécurisé et crypté depuis votre Smartphone.

L’idée est de présenter un essai permettant de démontrer la solution. Il faudra en garder le principe afin de réaliser d’autres capteurs/actionneurs. Les montages domotiques mySensors sont légion sur internet.

Déroulement des essais :

La première étape sera de créer une passerelle MySensors/Jeedom nécessaire afin de supporter le protocole de communication MySensors qui est très utilisé par le monde Arduino. Jeedom a été choisi car il permet moyennant de créer une passerelle pour chaque protocole de pouvoir gérer a peu près tous les protocoles du marché (Somfy, Bliss, etc…)

La deuxième étape sera de créer un module déporté capteur/température pourvu d’un actionneur représenté par une simple led.

La troisième étape sera de sécuriser l’ensemble.

La dernière étape sera de limiter la consommation.

Ce document va donc couvrir :

Installation du système d’exploitation

Installation de Jeedom

Sauvegarde et restauration

Création d’une passerelle protocole mySensors/Jeedom

Création d’une module déporté humidité/température + led.

Configuration minimaliste de Jeedom pour mySensors

Première communication

Sécurisation de Jeedom et du protocole MySensors

Accéder à Jeedom depuis son Smartphone

Réduire la consommation. (A finaliser)

Le scenario de l’exemple : des capteurs de températures/humidités pour commander un chauffage central simulé par une led.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 5 / 78

1.1 Matériel nécessaire

Matériel définitif

Centrale :

Raspberry PI 3 (Le PI2 peut aussi faire l’affaire)

Radiateur pour raspberry PI 3

une carte microSD supérieur à 8go (Classe 10 si possible)

une alimentation 5V microUSB attention prendre une 2.5A minimum. (Recommandation du site raspberry pour un raspberry PI3)

un accès internet filaire.

un câble réseau RJ45 cat 5e ou supérieur. (De préférence blindé : FTP ou mieux SFTP)

Matériel pour l’installation

un lecteur de carte micro SD

Matériel pour les essais

2x Arduino nano

2x Module NRF24L01+* avec antenne sur le PCB. o Si le module NRF24L01+* est avec antenne déporté, ou si le montage n’est pas alimenté par le

connecteur micro-usb, il faut prévoir en plus un régulateur(s) LDO 5V vers 3.3V (ex MCP1702) et 2xCondensateurs chimique 10µF 6.3V (ou supérieur en valeur ou/et en tension) par montage.

o Sinon 2xCondensateurs chimique 10µF 6.3V (ou supérieur en valeur ou/et en tension) par montage

1x Capteur de température DTH11, une résistance de 10kOhms.

1xLed et une résistance d’environ 1 à 2Kohms 1/4W.

*Attention, il existe deux versions NRF24L01 et NRF24L01+. Le mieux étant de prendre le NRF24L01+ il est retro-compatible avec le NRF24L01. Sous certaines conditions, ils peuvent être compatible en eux (Confer §5.2NRF24L01 vs NRF24L01+)

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 6 / 78

1.2 Logiciel nécessaire

Logiciel pour l’installation

Un logiciel d'écriture bit à bit d'image disque tel que Win32DiskImager

Figure 1: WinDiskImager( https://sourceforge.net/projects/win32diskimager/)

Un client SSH. Exemple Kitty ou Putty. Dans la suite du document kitty sera utilisé.

Figure 2: Kitty (http://www.9bis.net/kitty/?page=Telecharger)

Pour la programmation des Arduino nous utiliserons l’environnement de développement Arduino. Il est amplement suffisant pour commencer.

Figure 3:( https://www.Arduino.cc/en/Main/Software)

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 7 / 78

2 Installation de l’OS

2.1 OS Raspbian

Figure 4: Raspbian (https://www.raspberrypi.org/downloads/raspbian/)

Nous allons installer une distribution linux raspbian lite. Pour cela :

télécharger la distribution à l’adresse de la Figure 4: Raspbian (https://www.raspberrypi.org/downloads/raspbian/)Figure 4 la distribution RASPBIAN JESSIE LITE.

Dé zipper l’archive. Un fichier .img doit être dedans.

Insérer la carte microSD dans le lecteur de carte microSD.

Ouvrir win32DiskImager

Sélectionner la lettre du lecteur correspondant à la carte microSD (1)

Sélectionner le fichier .img dé zippé plus haut (2)

Sélectionner write et patienter (> 5 minutes)

Un fois l’écriture fini un popup apparait vous indiquant la fin.

Quitter le win32diskImager

Ejecter la carte SD proprement (Dans l’explorateur, faire clic droit sur la carte microSD puis éjecter, attendre que Windows vous indique qu’elle peut être retirée en toute sécurité)

Vous voilà avec une carte microSD contenant l’OS raspbian.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 8 / 78

2.2 Installation matérielle

Il est IMPERATIF d’avoir un radiateur sur la puce principal de son raspberry PI3 (Pas mal sont disponibles sur ebay ou amazon) sauf si le raspberry est uniquement utilisé pour Jeedom, il n’y a besoin de ventilateur.

Ces radiateurs viennent avec un scotch thermique double face.

Figure 5 Exemple de radiateur: https://www.amazon.fr/gp/product/B00ILK6DMA/ref=oh_aui_detailpage_o02_s01?ie=UTF8&psc=1

Si vous le souhaitez, il existe de nombreux boitiers disponibles. Eviter de prendre un boitier en métal si vous souhaitez utilisez un protocole domotique sans fil. Le boitier métallique ferait cage de faraday et empêcherait les signaux radios de sortir correctement du boitier.

Placer les radiateurs

Insérer la carte SD

Placer le cas échant la raspberry dans son boitier

Brancher le câble réseau RJ45 entre la raspberry et votre installation internet. (En général directement sur la box internet)

Brancher le câble secteur

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 9 / 78

2.3 Trouver l’adresse IP de la raspberry PI.

La raspberry démarre en mode DHCP. C'est-à-dire qu’elle demande sur le réseau que quelqu’un lui fournisse son adresse IP. 99% du temps c’est la box internet qui fournit l’adresse.

Sur la freebox, il faut démarrer l’interface de gestion http://mafreebox.freebox.fr/ Puis « Périphérique réseau », sélectionner « raspberry », faire click droit propriété. Dans l’onglet « connectivité » vous allez trouver l’adresse IP de la raspbery (exemple : 192.168.1.31)

Pour les autres box, il faut voir le manuel. En général il faut chercher le mot clef DHCP dans l’interface de gestion de la box internet.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 10 / 78

2.4 Première connexion :

A l’aide de kitty :

Remplir l’adresse IP trouvé précédemment, le port doit être 22 et ssh doit être sélectionné.

Faire Open

A la première connexion, un popup s’ouvre vous demandant si vous d’autorisez la clef (un gros listing incompressible de chiffre et de lettre) : accepter

La fenêtre suivante s’ouvre.

LOGIN : pi

MOT de PASSE : raspberry

Vous êtes à présent sur une console linux à l’intérieur du raspberry. Le travail d’installation de jeedom va pouvoir commencer.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 11 / 78

2.5 Etendre la partition système

La partition système (en gros taille du disque dur) est de base inférieur à 2Go. Ceci est trop faible pour l’installation de jeedom. Nous allons donc étendre la partition de 2Go à la taille de la carte SD

taper

sudo raspi-config

Choisir « Extend filesystem »

Puis Ok

Puis Finish

Would you like to reboot now ? taper YES

Le client ssh (kitty doit planter à ce moment-là). (Confer §2.4Première connexion :)

Attendre au moins 20 secondes le temps que le raspberry reboote

relancer la connections ssh avec kitty.

Utiliser le compte pi pour le logging et re-rentrer le mot de passe.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 12 / 78

2.6 Mise à jour

Avant tout autre chose, entre le moment où l’image raspbian a été mise en téléchargement et aujourd’hui, des mises à jour de sécurité ont pu être faites. Nous allons donc procéder à l’installation des mises à jour de sécurité.

taper

sudo apt-get update

sudo apt-get dist-upgrade

sudo reboot

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 13 / 78

3 Installation de jeedom

3.1 Dépendances

Jeedom nécessite des dépendances, nous allons les installer ici. Un choix a été fait : le serveur web utilisé sera Nginx car il consomme un peu moins de ressources qu’apache.

taper

sudo apt-get -y install mysql-client mysql-server

PS : Pendant l’installation de MySQL, celui-ci demande un mot de passe pour le compte root de mysql : le noter. ‘Ce document y fera référence comme compte root mysql à la différence du compte root de l’OS. (Si rien de préciser, il s’agira du compte root de l’OS)

taper

sudo apt-get -y install nginx-common nginx-full ntp ca-certificates unzip curl

sudo apt-get -y install php5-cli php5-common php5-curl php5-fpm php5-json php5-mysql php5-gd

Nous allons configure PHP:

taper

sudo mkdir -p /var/www/html/log

sudo sed -i 's/max_execution_time = 30/max_execution_time = 600/g' /etc/php5/fpm/php.ini

sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 1G/g' /etc/php5/fpm/php.ini

sudo sed -i 's/post_max_size = 8M/post_max_size = 1G/g' /etc/php5/fpm/php.ini

sudo sed -i 's/expose_php = On/expose_php = Off/g' /etc/php5/fpm/php.ini

sudo sed -i 's/pm.max_children = 5/pm.max_children = 20/g' /etc/php5/fpm/pool.d/www.conf

sudo rm /etc/nginx/sites-available/default

sudo rm /etc/nginx/sites-enabled/default

sudo wget https://raw.githubusercontent.com/jeedom/core/stable/install/nginx_default -O /etc/nginx/sites-available/default

sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

sudo systemctl restart php5-fpm

sudo systemctl restart nginx

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 14 / 78

3.2 Installation et Pre-configuration de Jeedom

Lancement automatique de la tache de fond jeedom

taper

sudo su

croncmd="su --shell=/bin/bash - root -c '/usr/bin/php /var/www/html/core/php/jeeCron.php' >> /dev/null 2>&1"

cronjob="* * * * * $croncmd"

( crontab -l | grep -v "$croncmd" ; echo "$cronjob" ) | crontab -

Une phrase indique no crontab for root. C’est normal.

Vous pouvez vérifier que tout est ok en tapant. (Pour l’éditer à la main « crontab –e », choisissez nano comme éditeur de texte : il est un peu plus « user friendly » que les autres)

crontab -l

Résultat

* * * * * su --shell=/bin/bash - root -c '/usr/bin/php /var/www/html/core/php/jeeCron.php' >> /dev/null 2>&1

(Ctrl-X pour sortir de l’éditeur de texte « nano »)

Pour sortir du shell super utilisateur

taper

exit

Ajout des droits root pour l’utilisateur à jeedom

taper

sudo visudo

Ajouter à la dernière ligne : www-data ALL=(ALL) NOPASSWD: ALL

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 15 / 78

Ajout et pré-configuration du site internet jeedom

taper

mkdir -p /var/www/html

sudo rm -rf /root/core-*

wget https://github.com/jeedom/core/archive/stable.zip -O /tmp/jeedom.zip

sudo unzip -q /tmp/jeedom.zip -d /root/

sudo su

cp -R /root/core-*/* /var/www/html/

cp -R /root/core-*/.htaccess /var/www/html/

exit

Et voilà Jeedom est installé.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 16 / 78

3.3 Premier lancement de jeedom

Prendre votre navigateur internet favori et taper http://Adresse_ip_raspberry

Compléter le database password par le mot de passe root mySQL. (Noté à l’étape3.1Dépendances)

Cliquer sur proceed

La page web mouline un peu puis doit afficher quelque chose comme cela :

Cliquer sur « here »

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 17 / 78

3.4 Première connexion

Nom d’utilisateur admin

Mot de passe admin

Attention, Il existe un « market ». Jeedom incite à si connecter avec un login et mot de passe. Cette connexion permet de faire des sauvegardes sur un serveur sur internet. Comme stipulé dans l’introduction, il faut éviter de mémoriser votre système d’alarme sur le Web : Le market fonctionne quand même et pour la sauvegarde il y a plus simple et en local. (§4Sauvegarde et restauration)

Voilà l’installation de Jeedom est officiellement terminé mais inutilisable en l’état car non configuré pour notre utilisation.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 18 / 78

4 Sauvegarde et restauration Ce chapitre peut être fait n’importe quand. Le principal est d’au moins faire une sauvegarde à la fin de ce document. A vous de voir ce que vous souhaitez refaire en cas de crash système.

Pour les sauvegardes et restauration, c’est très simple et carrément bourrin:

éteindre le raspberry

prendre la carte microSD et la mettre dans un lecteur de carte microsd

ouvrir win32DiskImager

Sélectionner la carte microSD (1)

Pour la sauvegarde : o Choisir le chemin et le fichier de destination (taper le nom du fichier avec l’extension .img). Si votre

la taille de votre microSD est supérieure ou égale à 4go, Le chemin de destination doit être au format ntfs ou extfat (alias fat64)

o faire read (3) Attention, la taille du fichier sera égale à la taille de la carte SD. Cependant vous pouvez le compresser avec le zip de windows (clic droit sur le fichier puis compresser). Comme le système dans le .img est très répétitif, il y a un très fort taux de compression. (ex : pour une microSD de 16Go avec un sauvegarde on a un fichier résultant .img de 16Go et .zip de 575Mo)

Pour la restauration : o Sélectionner l’image à restaurer (2) o Faire Write (3)

Personnellement, je fais de temps en temps une sauvegarde restauration sur une deuxième carte SD.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 19 / 78

5 Création d’une passerelle et configuration de l’environnement Arduino. Le but de ce chapitre est de créer une passerelle protocole mysensors/jeedom et configuration de l’environnement Arduino

On change de sujet pour revenir plus tard à Jeedom. Nous allons créer une passerelle série entres des interfaces NRF24L01+ et jeedom en utilisant le protocole mysensors.

5.1 Schéma de la Serial Gateway

Le schéma de la passerelle longue portée est le suivant :

Il va falloir réaliser une maquette. Le schéma de la passerelle est aussi la base pour tous les modules déportés.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 20 / 78

Avant de commencer voici l’émetteur/récepteur RF :

Le pinout du module NRF24L01/NRF24L01+ avec antenne PCB: voir la figure ci-dessous. (Pour la version avec antenne déportée c’est le même pinout). Le petit carré blanc en sérigraphie indique la pin 1 (GND) . Pour information sur les connecteurs de type HE10 (ceux sur la photo) les pins se numérote en rangée pair et impair : Donc ici : 1=GND, 2=VCC, 3=CE, 4=CSN, 5=SCK, 6=MOSI, 7=MISO, 8=IRQ)

Antenne PCB vs Antenne Déporté

Avant de faire le schéma un peu d’explication. Le module NRF24L01/NRF24L01+ est une interface RF 2.4GHz très basses consommation piloté par un bus SPI. Le module DOIT être alimenté en 3.3V (VCC). Toutes les autres pins sont compatibles avec du 5V ou du 3.3V.

Pour la version avec l’antenne intégré, on peut utiliser la sortie 3.3V de l’Arduino nano en rajoutant une capacité de 10µF entre les bornes VCC(+) en GND(-) au plus près du module NRF24L01. Pour la version antenne déportée, elle consomme trop pour l’Arduino, il faut rajouter un convertisseur LDO 5V/3.3V (La référence que j’utilise : MCP1702-3302E/TO) (voir plus loin).

Je ne décrirai pas le bus SPI, la documentation de ce bus est disponible sur le net, de même le protocole de communication du module NRF24L01 est disponible dans sa documentation technique propre. Voici cependant une brève description des pins :

VCC : alimentation du module en 3.3V

GND : Ground : Référence

MISO : Master In Slave Out. Communication de l’Arduino (master) vers le module NRF24L01 (Slave)

MOSI : Master Out Slave In : Communication du module NRF24L01 vers l’Arduino nano (master)

SCK : Serial clock : C’est l’Arduino (master) qui génère cette horloge servant à échantillonner les signaux MOSI et MISO

CSN : Chip select Negate. Un bus SPI peut avoir plusieurs esclaves. L’Arduino met cette pin à 0V (Actif à zéro=Negate) pour dialoguer avec les pins MOSI/MISO vers/depuis ce module.

IRQ : Interrupt ReQuest Seul l’Arduino (maitre) peut donner la parole au module NRF24L01 (esclave). Si le module souhaite parler vers le maitre, il faut l’avertir qu’il a quelque chose à dire. C’est l’objet de cette pin.

CE : Chip Enable. Met la puce en veille.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 21 / 78

Je ne vais pas décrire l’Arduino nano. Beaucoup (trop) de document sont présent sur le web.

Voici les connexions à faires afin de relier les deux modules :

Module NRF24L01 Arduino Nano

Sérigraphie

Commentaire

VCC (Si antenne PCB)

+3.3V Si NRF24L01 avec antenne PCB, souder une capa 10µF 6.3V entre VCC et GND du module NRF24L01

VCC (Si antenne déporté)

Voir explication dans le commentaire

La pin « 5V » de l’Arduino Nano doit être relié à l’entrée d’un convertisseur de tension LDO 5V/3.3V. Le GND du convertisseur doit être relié au GND de l’Arduino, la sortie du convertisseur de tension doit être reliée au VCC du module NRF24L01. Une capacité de 10µF 6.3V doit être placée entre le +5V et le GND au niveau des pins de l’Arduino et une capacité de 10µF 6.3V doit être placée entre le VCC et le GND du module NRF4L01

GND GND Voir numérotation en noir sur le schéma ci-dessus

SCK D13 Voir numérotation en violet sur le schéma ci-dessus

MOSI D11 Voir numérotation en violet sur le schéma ci-dessus

MISO D12 Voir numérotation en violet sur le schéma ci-dessus

CSN D10 Voir numérotation en violet sur le schéma ci-dessus

IRQ D2 Voir numérotation en violet sur le schéma ci-dessus

CE D9 Voir numérotation en violet sur le schéma ci-dessus

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 22 / 78

5.2 NRF24L01 vs NRF24L01+

La version NRF24L04 supporte deux vitesses de communication : Sous porteuse à 1MHz et 2MHz

La version NRF24L04 supporte trois vitesses de communication : Sous porteuse à 250kHz, 1MHz et 2MHz

Plus la vitesse de communication est élevée, plus la bande passante (Nombre de données possible pas unité de temps) est élevée par contre la consommation électrique est en général exponentiel vis-à-vis de la vitesse.

Dans notre cas, nous n’avons besoin de transmettre que quelques octets par seconde ; Donc pas besoin de monter en bande passante. C’est pourquoi, nous utiliserons un module NRF24L01+ et PAS le NRF24L01. Par défaut la librairie mySensors fonctionne à 250KHz.

En anticipant sur les chapitres suivants, si vous souhaitez changer la vitesse, il faut modifier la constante ci-dessous du fichier \libraries\MySensors\MyConfig.h. Attention tout le réseau doit fonctionner à la même vitesse.

//RF24_250KBPS for 250kbs, RF24_1MBPS for 1Mbps, or RF24_2MBPS for 2Mbps

#define RF24_DATARATE RF24_250KBPS

.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 23 / 78

5.3 Configuration de l’environnement Arduino

Nous utiliserons les outils Arduino. Si cela n’est pas déjà fait télécharger le logiciel Arduino. (Confer §1.2Logiciel nécessaire) et installé le.

Cependant, les bibliothèques mySensors ne sont pas installées par défaut. Il faut les télécharger sur

https://www.mysensors.org/download/

Le fichier téléchargé s’appelle chez moi Arduino-master.zip.

Au 13/07/2016, l’API 2.0 venant de sortir moins de 10 jours auparavant, j’ai préféré prendre la version stable précédente : API1.5.4.

Il va falloir de-zipper une partie de ce zip dans le répertoire des librairies de l’environnement Arduino. Pour connaitre le répertoire des libraires de l’environnement Arduino, lancer l’environnement Arduino.

Faire : Fichier -> Préférence

Noter le répertoire des librairies (« Sketchbook location ». De plus la traduction française de l’interface Arduino est déplorable au point de ne plus comprendre ce que l’on fait. Sélectionner la langue anglaise. Cela devient de suite beaucoup plus clair pour les disciples de Shakespeare. Puis cliquer sur OK

QUITTER l’environnement ARDUINO

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 24 / 78

A l’intérieur du zip téléchargé, ne prendre que le sous répertoire librairies et le coller dans le répertoire des librairies de l’environnement Arduino. Cela doit au final ressembler à cela :

Mon répertoire des librairies arduino (avec un peu de bordel dedans)

Le sous répertoire librairies contenu dans le zip mysensors téléchargé plus haut

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 25 / 78

Relancer l’environnement Arduino.

Aller dans :

File -> Examples

Vérifier qu’il y a un menu mysensor. Si cela est le cas, vous avez bien installé les librairies, sinon il faut creuser.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 26 / 78

5.4 Création du sketch de la passerelle.

Rien de plus simple : Dans l’environnement Arduino.

Aller dans :

File -> Examples -> MySensors -> SerialGateway

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 27 / 78

Un exemple s’ouvre. Mais cela est trop simple me direz-vous. Il y a une petite subtilité en effet. Le plugin Jeedom/Mysensors (que l’on installera plus loin (Confer §Erreur ! Source du renvoi introuvable.Erreur ! Source du nvoi introuvable.)) a besoin de connaitre la version de l’interface utilisée du protocole mysensors. Hors l’exemple de la gateway ne renvoie pas cela, nous allons donc modifier l’exemple afin de renvoyer cette version. (Sans cela, les logs de jeedom indiqueront les réceptions des trames au format mysensors mais aucun module déporté ne sera rajouté dans jeedom car jeedom ne pourra décoder ces trames).

Dans l’exemple,

aller dans la procédure void setup()

Juste après le gw.begin(…) entrer la ligne suivante : Serial.print("0;0;3;0;2;");Serial.print(LIBRARY_VERSION);

Ci-joint le sketch modifié comme indiqué ci-dessus.

SerialGateway.zip

Il n’y a plus « qu’à » transférer le programme. Voir chapitre suivant (5.5Transfert du programme dans l’Arduino)

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 28 / 78

5.5 Transfert du programme dans l’Arduino

Il faut d’abord configurer l’environnement pour l’Arduino Nano, puis trouver le bon port série et enfin transférer le programme.

Configurer l’environnement pour Arduino nano

Aller dans

Tools

Sélectionner :

Board : Arduino Nano

Processor ATMega328

Ouvrir le menu Port COM et lister les ports COM

Fermer le menu tools

Brancher la passerelle sur un PC à l’aide d’un câble USB vers mini-usb

Aller dans

Tools=> Port et sélectionner le port qui vient d’apparaitre : (ici COM17)

Ps : Si vous branchez la passerelle sur un autre concentrateur racine USB de votre PC, le port COM va changer. Si vous conserver le même port, il sera identique.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 29 / 78

Transférer le programme

Cliquer sur Upload, il compilera puis si le programme est ok, il le transfèrera. La partie du bas indique l’avancement de la compilation puis du transfert. Il doit finir par avrdude: verifying ... avrdude: xxxxxx bytes of flash verified avrdude done. Thank you. Si une erreur se produit on n’arrive pas sur ces lignes, il y a le mot clef ERROR un peu partout

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 30 / 78

5.6 Debug console.

Tant que j’y suis et qu’une maquette est connectée sur mon port USB du PC (Attention la copie d’écran correspond à mon module capteur température/humidité et non pas au Programme SerialGateway qui est déjà en service au moment d’écrire ce document.), l’environnement Arduino possède une interface de debug utilisant les mêmes entrées sorties servant à la programmation. Une fois le programme lancé, il peut servir à afficher des informations de debug. La librairie Mysensors affiche sur cette interface en autre les trames envoyés/ reçues.

Aller dans :

Tools => Serial Monitor

Voilà un exemple pris sur la maquette du module température/humidité. Il fait bon chez moi 21°C et 50% Hydrométrie.

5.7 Finaliser la Serial Gateway

Débrancher du PC et brancher la maquette SerialGateway à l’aide du même câble USB vers mini-usb sur n’importe quel port du module raspberry pi.

Rebooter le raspberry pi

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 31 / 78

6 Création d’un capteur d’humidité/température + leds mysensors

6.1 Schéma

Très simple, pour toute la partie communication il faut refaire le schéma Confer §5.1Schéma de la Serial Gateway.

Pour rajouter le capteur de température : Il existe deux types de capteurs DHT11 sur le marché :

Capteur monté sur PCB vs Capteur seul

La version montée sur PCB intègre la résistance de pull-up et la capacité. La version sans le PCB, c’est à vous de rajouter une résistance de pull up (4.7kOhms / 1/4W) et une capacité de 100nF / 6.3V.

La commande de la Led : Rl est d’environ 1.5kOhms à 2.2kOhms 1/4W pour une Led verte de diamètre 3 ou 5mm.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 32 / 78

La Led sera active lorsque la pin Dx de l’Arduino sera à ‘0’.

Module DHT11 Arduino Nano

Sérigraphie

Commentaire

VCC (Si antenne PCB)

+5V Une petite capa du type 100nF / 6.3V est fortement conseillé sur la version sans PCB

La résistance 4.7kOhms /1/4W entre le +5V et D3 est indispensable sur la version sans PCB

D3/Out D3* Voir numérotation en violet sur le schéma Confer §5.1Schéma de la Serial Gateway

GND GND Voir numérotation en noir sur le schéma Confer §5.1Schéma de la Serial Gateway

D4 D4* Câbler comme le schéma ci-dessus.

* Peut-être câblée sur une autre pin Dx mais il faudra adapter le sketch du §6.2 Création du sketch du capteur d’humidité.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 33 / 78

6.2 Création du sketch du capteur d’humidité.

Rien de plus simple : Dans l’environnement Arduino.

Aller dans :

File -> Examples -> MySensors -> HumiditySensor

Le sketch d’exemple ne contient que le capteur d’humidité. La commande de la Led est donc absente. :

HumiditySensor.zip

Voici l’exemple sans la led. Bien que la Led est absente de ce sketch, l’ensemble est fonctionnel sans aucune modification.

Nous allons rajouter la commande de la Led (En rouge les changement par rapport à ci-dessus)

HumiditySensorLed.zip

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 34 / 78

/*

Mix of mysensors humidity sensors example and relay actuator sketch

*/

#include <SPI.h>

#include <MySensor.h>

#include <DHT.h>

#define CHILD_ID_HUM 0

#define CHILD_ID_TEMP 1

#define CHILD_ID_LED 2

#define HUMIDITY_SENSOR_DIGITAL_PIN 3

#define LED_PIN 4

unsigned long SLEEP_TIME = 5000; // Sleep time between reads (in milliseconds)

#define LED_ON 0 // GPIO value to write to turn on attached relay

#define LED_OFF 1 // GPIO value to write to turn off attached relay

#define NRFL_IRQ_PIN 2

MySensor gw;

DHT dht;

float lastTemp;

float lastHum;

int lastLedState;

boolean firstLoop = true;

boolean metric = true;

MyMessage msgHum(CHILD_ID_HUM, V_HUM);

MyMessage msgTemp(CHILD_ID_TEMP, V_TEMP);

MyMessage msgLed(CHILD_ID_LED, V_STATUS);

void setup()

{

gw.begin(incomingMessage,AUTO,false); //Node gere par controller

dht.setup(HUMIDITY_SENSOR_DIGITAL_PIN);

// Send the Sketch Version Information to the Gateway

gw.sendSketchInfo("Humidity", "1.0");

// Register all sensors to gw (they will be created as child devices)

gw.present(CHILD_ID_HUM, S_HUM);

gw.present(CHILD_ID_TEMP, S_TEMP);

gw.present(CHILD_ID_LED, S_LIGHT);

//When turning Pin Led as output, the pin goes low because the output default value is 0.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 35 / 78

//So we have first to write the pin register to 1 before turning the pin Led as output if you wish start the Led OFF (because the Led comand is active low)

digitalWrite(LED_PIN, LED_OFF);

pinMode(LED_PIN, OUTPUT);

metric = gw.getConfig().isMetric;

}

void loop()

{

delay(dht.getMinimumSamplingPeriod());

float temperature = dht.getTemperature();

if (isnan(temperature)) {

Serial.println("FaiLed reading temperature from DHT");

} else if (firstLoop || (temperature != lastTemp)) {

lastTemp = temperature;

if (!metric) {

temperature = dht.toFahrenheit(temperature);

}

gw.send(msgTemp.set(temperature, 1));

Serial.print("T: ");

Serial.println(temperature);

}

float humidity = dht.getHumidity();

if (isnan(humidity)) {

Serial.println("FaiLed reading humidity from DHT");

} else if (firstLoop || (humidity != lastHum)) {

lastHum = humidity;

gw.send(msgHum.set(humidity, 1));

Serial.print("H: ");

Serial.println(humidity);

}

int ledstate=(digitalRead(LED_PIN)?LED_ON:LED_OFF);

//Read back Led pin (Beaware that the Led on means pin low.

if (firstLoop || (lastLedState != ledstate)) {

lastLedState = ledstate;

gw.send(msgLed.set(ledstate, 1));

Serial.print("L: ");

Serial.println(ledstate);

}

firstLoop = false;

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 36 / 78

//gw.sleep(SLEEP_TIME); //sleep a bit (Arduino and NRFL OFF sleep : all off) //Do not work if actionner as we have to call process() to retrieve message

gw.wait(SLEEP_TIME); //Will automatically call gw.process() Works but consume power

}

void incomingMessage(const MyMessage &message) {

if (message.isAck())

{

Serial.print("This is an ack from gateway");

}

/* Serial.print("MsgType:");

Serial.println(message.type);

Serial.print("MsgSensor:");

Serial.println(message.sensor);

Serial.print("Msgbool:");

Serial.println(message.getBool());

*/

// We only expect one type of message from controller. But we better check anyway.

if (message.type==V_STATUS) {

// Change relay state

digitalWrite(LED_PIN, message.getBool()?LED_ON:LED_OFF);

}

}

Suivre les instructions confer §5.5Transfert du programme dans l’Arduino pour programmer ce sktech.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 37 / 78

7 Configuration minimaliste de Jeedom

7.1 Installation du plugin mySensors

Le plugin sert à faire le lien entre la serial gateway et Jeedom

Sélectionner le menu plugins-> Gestion des plugins

Sélectionner Accéder au Market

Faire une recherche avec le mot clé : mySensors

Sélectionner le plugin « mySensors »

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 38 / 78

Cliquer sur installer stable

Un popup vous demande si vous souhaitez aller sur la page de configuration du plugin : Oui

Cliquer sur activer

Le plugin est activé ; Malheureusement, il nécessite un peu de main d’œuvre avant d’être fonctionnel.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 39 / 78

Il faut lancer l’installation des dépendances (ATTENTION cela a pris environ 1h chez moi, ouvrir les logs et patienter même si cela ne semble pas avancer). Cliquer sur installer (screenshot erronée car l’installation a déjà été faire). Un log apparait lors de l’installation. L’installation doit finir par un status OK.

Une fois des dépendances OK, passer au démon : le démarrer et vérifier le status OK. (moins de 10 secondes après l’action)

Si cela n’est pas déjà fait, brancher la Serial Gateway à l’aide d’un câble usb/mini usb sur le raspberry PI

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 40 / 78

Sélectionner dans la liste déroulante le périphérique /dev/ttyUSB0 puis cliquer sur Sauvegarder puis fermer

la fenêtre avec la croix (Attention, j’ai du redémarrer le raspberry après cette étape car Jeedom n’affichait pas la passerelle )

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 41 / 78

De retour dans Jeedom, dans le menu configuration de Jeedom aller dans Configuration Réseau

L’accès interne doit obligatoirement être configuré (sinon vous aller voir les logs de la serial gateways mais jamais aucun capteurs/actionneurs ne sera trouvé) Protocole : http IP : L’ip indiqué dans l’URL (URL=barre d’adresse du navigateur) Port 80 / : Il faut mettre le chemin entre l’adresse ip de l’URL et index.php. Ce chemin doit OBLIGATOIREMENT être précéder de « / » même s’il est vide.

Ex :

- Pour une URL : http://192.168.1.31/index.php?v=d&p=administration il faut rajouter « / » - Pour une URL http://192.168.1.31/jeedom/index.php?v=d&p=administration if faut rajouter « /jeedom »

Sauvegarder le tout en utilisant le bouton de sauvegarde tout en bas de la page.

Le status doit passer à OK

Pour l’accès externe, cela fait partie de la configuration avancé. Remettre les mêmes arguments que l’accès interne, sauvegarder puis vérifier le status : OK

Bouton de sauvegarde en bas de la page

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 42 / 78

Aller dans le menu Jeedom : Analyse => Santé

Les paramètres « Configuration réseau interne », « Configuration réseau externe », et tous les paramètres Santé mysensors doivent être au vert »

PS si la version de la gateway n’apparait pas c’est que vous avez peut-être oublié de modifier le sketch d’exemple de la serial gateway (Confer §5.4Création du sketch de la passerelle.)

Le menu du plugin est désormais disponible sous le menu Jeedom « Plugins »

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 43 / 78

7.2 Ajout d’un « node mySensors »

Aller dans le menu jeedom Plugins/ Protocole domotique/mySensors

Nous allons faire détecter notre capteur d’humidité à jeedom. Pour cela, il faut activer le mode inclusion

PUIS allumer le capteur d’humidité/température +leds.

Explication : Dans le langage mysensors, cela s’appelle un « node » . Pour l’allumer il suffit de brancher le node sur n’importe quel port USB pour l’alimenter. Lorsqu’il est en mode inclusion, jeedom détecte les périphériques dont l’ID du protocole mysensors est en AUTO(255), il attribut alors un numéro unique à chacun des nodes allumés. Chaque node stocke alors son numéro dans une mémoire non volatile (EEPROM). Au redémarrage du node suivant, l’ID est automatiquement pris dans sa mémoire non volatile, il n’y a donc plus besoin du mode inclusion. (PS pour faire un reset usine du node, il faut effacer la mémoire non volatile du node. Cela se fait en utilisant le sketch exemple : exemples/mysensors/ClearEepromConfig)

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 44 / 78

Notre node apparait. (L’icône a été changé par moi, mais le node apparait bien là)

Désactiver le mode inclusion

7.3 Configuration de jeedom

Avant d’aller configurer le capteur, jeedom fonctionne avec des objets mis en relation entre eux par des relations parents/enfants. Le problème est qu’il n’y a pas par defaut d’objet parent « racine ». Il faut en créer un afin de pouvoir rattache les enfants (en l’occurrence dans notre cas l’enfant sera le node capteur d’humidite led)

Dans le menu jeedom, aller dans outils->Objets

Sélectionner Ajouter

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 45 / 78

Un popup s’ouvre demandant le nom de l’objet.

Rentrer ce que vous voulez, puis cliquer sur D’accord.

Vérifier que visible est coché. Il n’y a forcément aucun père possible puisque c’est l’objet racine.

Sauvegarder

On a maintenant notre objet racine : maison

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 46 / 78

7.4 Configuration du node

Revenir dans le menu du plugin mysensor : Plugins->Protocole domotique->mySensors

Double cliquer sur le node à configurer. (Ps j’ai changé le nom et l’icône par défaut sur la capture d’écran ci-dessus)

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 47 / 78

(Screen copy du haut de la page)

(screen copie du bas de la page)

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 48 / 78

(Zoom haut gauche de la page)

Changer le nom du node

Sélectionner l’objet parent que vous avez créé (Confer 7.3Configuration de jeedom). S’il n’y a pas d’objet parent de sélectionner, il n’y aura rien dans le Dashbord jeedom

Sélectionner Activer et Visible

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 49 / 78

(Zoom sur page du bas)

Vous pouvez changer les noms. Pour retrouver la correspondance avec le sketch du capteur. Relever le numéro dans la colonne capteur cela correspond aux bouts de code CHILD_ID du sketch du capteur humidité. #define CHILD_ID_HUM 0 gw.present(CHILD_ID_HUM, S_HUM);

Dans la colonne données, renseigné le champ de la leds comme relais. (Par défaut, il n’est pas affecté et cela a l’air de gêner jeedom dans le dashboard)

Après, il y a la colonne Paramètre. Vous pouvez afficher sur le dashboard ou/et historiser. C'est-à-dire conserver toutes les données dans une base de données afin de reconstituer des graphiques. Inutile d’afficher le status de relais car jeedom comprend que c’est un relais car il y a trois nodes ayant le même code CHILD_ID déclaré en tant que relais (V_STATUS) dans le sketch MyMessage msgLed(CHILD_ID_LED, V_STATUS);

Enfin il y a les boutons tester afin de tester individuellement CHILD.

N’oublier pas de sauvegarder

PS : Si en cours de route, vous rajouter un CHILD dans le sketch, il suffit de redemarrer le node puis d’aller dans la : Plugins->Protocole domotique->mySensors->Votre_node et de faire sauvegarder pour que le changement soit pris en compte.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 50 / 78

7.5 Dashbord

Aller dans le menu jeedom->Dashbord->Votre objet racine

Et voilà ! Tout cela pour cela.

Si vous cliquer sur le relai il change d’état (dût à la présence de l’état)

Si vous double-cliquer sur une donnée historisée, on obtient de beaux graphiques.

La suite sur Jeedom se trouve sur internet. A vos google-marques, partez !

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 51 / 78

8 Sécurisation La sécurisation va se faire en plusieurs étapes. On va s’attaquer au protocole mySensors, puis à jeedom, au linux du raspberry, au PC de votre installation, de nouveau à Jeedom.

8.1 Sécurisation mySensors Sans protection, un monsieur lambda, peut voir et actionner votre capteur/actionneur en quelques secondes. Le but du jeu ici est d’empêcher le premier venu de pouvoir joueur avec vos capteurs. Je pars du principe que si un excellent cambrioleur veut rentrer, il rentrera quel que soit le matériel en face.

Principalement deux types de protections peuvent venir à notre secours : l’authentification et le chiffrage.

Beaucoup de personne pense que sécurité rime forcement avec chiffrage : de mon point de vu le chiffrage de l’information n’a que très peu d’intérêt sauf si vous faite passer des informations vitales par le protocole utilisé (ex : coordonnée bancaire, etc…). Dans la plupart des cas concernant le domaine d’utilisation de mySensors (domotique…), il n’y a aucun intérêt à chiffrer une température ou une commande d’ouverture du portail. L’essentiel est de savoir avec certitude qui a émis l’ordre. Cela s’appelle en sécurité, l’authentification. Si le message est authentifié, on le prend sinon on le jette. Beaucoup de centrale domotique du commerce sont basées sur ce principe.

8.1.1 Authentification

Le protocole mySensors tel que fourni dans les exemples des paragraphes ci-dessus n’a aucune protection. MySensors propose un mécanisme d’authentification en standard basée sur une puce ATSHA204 (La réf que j’ai commandé : ATSHA204A-STUCZ-T). Si vous souhaitez vous passer de cette puce, une émulation logicielle existe : ATSHA204soft. Le plus simple à mettre en place même si le générateur aléatoire est moins performant est cette version logicielle. Cela évite les étapes de programmation de la puce, de souder un autre composant aussi ici je vais me concentrer sur la version logicielle.

Pour le détail de l’authentification voir sur le web un excellent site sur le sujet : https://forum.mysensors.org/topic/1021/security-introducing-signing-support-to-mysensors.

L’essentiel :

Il faut connaitre les node_id à l’avance. Il faut donc désactiver la génération automatique du node par Jeedom et affecter à chaque node un numéro unique (1 à 254)

Pour la version ATSHA204Soft o Générer un numéro aléatoirement unique « HMAC » pour tous vos nodes, passerelle comprise. o Générer un numéro aléatoire unique par node « User PSK »

Pour la version ATSH204 Hard o A remplir plus tard.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 52 / 78

8.1.1.1 ATSHA204Soft

8.1.1.1.1 Schématique :

L’implémentation soft requiert une PIN analogique qui doit être non connectée, il s’agit par défaut de la PIN 7 (Analogue 7). L’entrée analogique sert à prendre une tension aléatoire (car PIN en l’air) afin d’initialiser le générateur aléatoire. Je pousse le bouchon un peu plus loin, mettre un fils d’une dizaine de centimètres, cela fera antenne et captera plus de bruit environnant (CEM).

Schéma :

Arduino Nano

Sérigraphie

Commentaire

A7 Laisser cette pin en l’air ou mieux ajouter un fils d’une dizaine de centimètre avec l’autre extrémité en l’air. (Attention que l’extrémité en l’air ne touche pas d’autres composants)

8.1.1.1.2 Activation de la signature et paramétrage du HMAC :

8.2 Avec votre éditeur de texte préféré, éditer le fichier myconfig.h se trouvant dans le répertoire d’installation des librairies mySensors (Confer 5.2NRF24L01 vs NRF24L01+

La version NRF24L04 supporte deux vitesses de communication : Sous porteuse à 1MHz et 2MHz

La version NRF24L04 supporte trois vitesses de communication : Sous porteuse à 250kHz, 1MHz et 2MHz

Plus la vitesse de communication est élevée, plus la bande passante (Nombre de données possible pas unité de temps) est élevée par contre la consommation électrique est en général exponentiel vis-à-vis de la vitesse.

Dans notre cas, nous n’avons besoin de transmettre que quelques octets par seconde ; Donc pas besoin de monter en bande passante. C’est pourquoi, nous utiliserons un module NRF24L01+ et PAS le NRF24L01. Par défaut la librairie mySensors fonctionne à 250KHz.

En anticipant sur les chapitres suivants, si vous souhaitez changer la vitesse, il faut modifier la constante ci-dessous du fichier \libraries\MySensors\MyConfig.h. Attention tout le réseau doit fonctionner à la même vitesse.

//RF24_250KBPS for 250kbs, RF24_1MBPS for 1Mbps, or RF24_2MBPS for 2Mbps

#define RF24_DATARATE RF24_250KBPS

.

Configuration de l’environnement Arduino)

/libraries/MySensors/MyConfig.h

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 53 / 78

Une clef plus haut est commenté (Non montré si dessus) IL faut impérativement la laisser commenter : //#define MY_OTA_FIRMWARE_FEATURE. Le fait de la laisser commenté désactive le flashage à distance qui par défaut est non signé. Certain pirate utilise cette fonctionnalité.

Dé commenter la clef : #define MY_SIGNING_FEATURE. Cela active l’authentification (Signing en Anglais)

Laisser la valeur #define MY_VERIFICATION_TIMEOUT_MS à 5000. Ce temps est le temps de ping-pong maximum pour l’authentification (Est égal à deux allers et un retour de message sur le protocole mySensors entre la passerelle et le node).

Dé commenter la clef #define MY_SECURE_NODE_WHITELISTING. Cela force chaque node et la passerelle à vérifier une clef unique à chaque émetteur (« User PSK »). En effet, si cette clef n’est pas cochée les messages peuvent être authentifiés mais la passerelle acceptera n’importe quel message authentifié ou pas… donc pas top pour la sécurité.

#define MY_ATSHA204_PIN 17. Cette clef ne sert que pour la version avec la puce ATSH204, donc inutile ici.

Dé commenter la clef #define MY_RANDOMSEED_PIN 7, cela indique que la pin analogique qui DOIT être laisser en l’air est la pin A7. (Confer l’alinéa schématique ci-dessus)

Dé-commenter est renseigner la clef #define MY_HMAC_KEY. Cette clef doit être aléatoire.

Pour cela utiliser sur internet un générateur aléatoire :

o http://beautifytools.com/hmac-generator.php

Dé-commenter

5000ms

Dé-commenter

Dé-commenter

(Laisser tel quel, c’est pour la version hard)

Clef HMAC (voir plus loin)

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 54 / 78

o Cliquer sur « Calculate HMAC »

o Faire un copie- coller de la chaine généré est la rentrer comme valeur dans

#define MY_HMAC_KEY. Attention, il faut respecter le format par défaut de cette constante :

Exemple avec la clef généré sur le site :

4cb0cefa9a2dff29a24c3f2f274d97d4846b7fc15389737730bf0f3ebd1ac62c

Séparer par groupe de deux caractères et préfixer par 0x. Séparer chaque groupe par « , »

#define MY_HMAC_KEY 0x4c,0xb0,0xce,0xfa,0x9a,0x2d,0xff,0x29,0xa2,0x4c,0x3f,0x2f,0x27,0x4d, 0x97, 0xd4,0x84,0x6b,0x7f,0xc1,0x53,0x89,0x73,0x77,0x30,0xbf,0x0f,0x3e,0xbd,0x1a,0xc6,0x2c

Voici le fichier

MyConfig.h

Entrer n’importe quel texte (ex : un copier-coller d’un page

quelconque sur le net)

Entrer n’importe quel texte

Sélectionner sha256

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 55 / 78

Nous allons pousser plus loin car des petits malins ont réussi à rentrer malgré la désactivation du flashage OTA (Ils sont balaises ces messieurs). En effet, il reste des reliquats de codes dans la version 1.5.4 qui ne sont pas correctement bornées par la constante MY_OTA_FIRMWARE_FEATURE. Plus tôt que de passer trop de temps à rentrer dans tous les bouts de codes, j’ai changé un seul paramètre qui rend mon protocole de flashage OTA non compatible avec le standard mySensors au niveau du transfert OTA. Pour cela utiliser votre éditeur de texte préféré avec le fichier :

/libraries/MySensors/MyMessage.h

Vers la ligne 41, changer la valeur de l’ENUM C_STREAM par un nombre compris entre 5 et 254.

Et voici le fichier.

MyMessage.h

Voilà, l’authentification est activée. Tous les paramètres communs des nodes et passerelles sont définis. Ne reste que la customisations des nodes et de la passerelle.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 56 / 78

8.2.1.1.1 Mise à jour des sketchs passerelle et capteur

Actuellement, nous avons deux nodes :

La passerelle. Son node ID est déjà définis en statique à « 0 » A conserver à 0

Le node Humidity Sensor Led. Son node ID est en dynamique

Nous allons changer leurs paramètres par défaut comme suit

La passerelle : node_id statique à « 0 » avec une « user PSK » (A générer aléatoirement : je l’ai comme le paragraphe 8.1.1.1.2Activation de la signature et paramétrage du HMAC : mais en ne gardant que les 9 premiers blocks) UPSK passerelle = 0x05,0x3b,0xc0,0x43,0x84,0xec,0xf8,0xc4,0x7a

Le node Humidity Sensor Led : node_id statique à « 1 » avec une « user PSK » A générer aléatoirement : je l’ai comme le paragraphe 8.1.1.1.2Activation de la signature et paramétrage du HMAC : mais en ne gardant que les 9 premiers blocks) UPSK node humidity sensorLed = 0x70,0x30,0x61,0xdc,0xd4,0xcd,0x11,0xab,0x74)

Passerelle :

Ajouter

Decommenter

Commenter

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 57 / 78

Ce qu’il faut comprendre ici :

La ligne uint8_t psk[SHA204_SERIAL_SZ] = {0x05,0x3b,0xc0,0x43,0x84,0xec,0xf8,0xc4,0x7a} déclare la user PSK de la passerelle

La ligne whitelist_entry_t node_whitelist[NUMBER_OF_CONNECTED_NODE] = { …} déclare l’ensemble des « user PSK » autorisées. Si la passerelle reçoit un message non signé, ou n’apartenant pas à cette liste, il est jeté.

Si vous avez plusieurs nodes, indiquer le nombre de nodes (hors passerelle) dans #define NUMBER_OF_CONNECTED_NODE et dupliquer/adapter/decommenter le block

//Duplicate this section for each one of your sensor using a PSK key //{ .nodeId = 1, //Your sensors node // .serial = {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09} //Your sensor PSK // }

La version ATSHA204Soft est vulnérable au reverse engeneering par extraction des données de la flash. Cela veut donc dire que l’on vous a volé un node. Pour contrer cela, il faut obligatoirement :

Avoir la passerelle à l’intérieur de la maison.

Supprimer dès que possible de la node_whitelist de la passerelle le block correspondant au node volé.

Ainsi, même si le voleur extrait la HMAC et le user PSK du node volé (Cela réclame un peu de matériel mais qui peut être transportable), il ne pourra pas rentrer immédiatement. Il faut cependant noter qu’il détient votre HMAC et qu’un attaque de type brute force peut beaucoup plus facilement trouver les autres « user PSK ». (Peut prendre plusieurs années avec un bon PC, quelques semaines avec du cloud computing (il faut débourser quelques millier

Commenter

Ajouter les lignes en jaune

Si vous avez d’autres nodes, rajouter les user PSK de chaque node. Changer

la constante NUMBER_OF_CONNECTED_NODE

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 58 / 78

d’euros) , ou quelques secondes avec des processeurs QBIT (mais bon pour en décrocher un il faut débourser plusieurs millions)). Donc dans un second temps et seulement si vous êtes paranoïaque, il faudra prévoir de régénérer l’ensemble des nodes avec une nouvelle HMACS. Penser donc à sauvegarder vos sources. (Y compris de la librairie mySensors)

Node :

Rajouter les lignes en jaunes : bibliothèques nécessaires

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 59 / 78

Rajouter les lignes en jaunes : configuration de la user PSK, de la whitelist et activation de l’authentification

Changement de l’attribution de la valeur du node d’automatique en statique.

C’était la ligne avant la modification de

l’authentification

Static node id

User « PSK »

Gateway « PSK »

S’il y a de la communication inter node, ne pas oublier de les rajouter dans la liste et mettre à jour la

constante NUMBER_OF_CONNECTED_NODE

C’était la ligne avant la modification de

l’authentification

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 60 / 78

Et voilà !

Et voilà quoi : les fichiers :

SerialGatewaySha.zip HumidiySensorSha.zip

Recompiler et transférer chaque programme (5.5Transfert du programme dans l’Arduino). Aucune modification de Jeedom à faire. Cela doit marcher tel quel.

Complement :

Voici une vue synthétique des clefs dans la passerelle et dans le node. Remarquer le croisement des clefs.

Voici la console série debug du node, vous pouvez voir le mécanisme d’authentification accepté ; Puis j’ai changé un seul chiffre dans la user PSK du node afin de voir le rejet. Le SG=1 après la réception de la signature de la passerelle indique que la signature a été acceptée.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 61 / 78

8.2.2 Encryption

Malheureusement, le chiffrage est très couteux en terme de ressources processeur et nos petit Arduino ne sont pas trop à la hauteur. Il existe cependant quelques bibliothèque sur le net (ex : chercher pour MyTransportNRF24ENC

environ 3ko en flash). Je ne l’ai pas testé car je pense que chiffrer une température, une humidité ou même une action d’ouverture de porte ne présente pas trop d’intérêt.

Si une personne veut le faire…

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 62 / 78

8.3 Sécurisation Jeedom

8.3.1 Mot de passe admin

Aller sur « Profil admin » (en haut à droite)

Sélectionner sécurité

Changer le mot de passe ; Ceci sera la mot de passe admin jeedom

Cliquer sur Sauvegarder

Ps : il y a un mécanisme de protection en 2 étapes. Celui dépend de l’heure système et un simple décalage entre l’heure du server Jeedom et celui du client (ex mobile) peut faire échouer l’authentification. Bref, laisser tomber pour notre cas d’utilisation.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 63 / 78

8.3.2 Ajout d’un utilisateur

Sélectionner configuration/Utilisateurs

Sélectionner Ajouter un utilisateur

Entrer le nom de l’utilisateur, mot de passe et cliquer sur Enregistrer

Vérifier que la case « Local seulement » du compte admin soit décochée. On la cochera plus tard (fin config serveur ssh après un test) mais à ne surtout pas faire maintenant.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 64 / 78

Cocher la case Local seulement pour votre utilisateur

Cliquer sur sauvegarder.

8.4 Sécurisation linux

A l’aide de kitty, se connecter au raspberry pi (Confer 2.4Première connexion :)

8.4.1 Changer le mot de passe du compte pi

taper

passwd

Entrer le mot de passe par défaut : raspberry

Entrer deux fois votre mot de passe. Attention, il est assez chiant sur les mots de passe. S’il juge qu’il est trop simple il vous invite à recommencer.

8.4.2 Ajouter un utilisateur

Pour les accès à distance, nous allons créer un utilisateur spécifique nommé remote dans notre exemple.

taper

sudo adduser remote

Rentrer un mot de passe deux fois.

Il demande aussi des informations comme le numéro de téléphone, etc. Ces informations sont inutiles et il suffit de les laisser vierge , puis confirmer que les informations sont correctes.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 65 / 78

8.4.3 Mise en place d’un serveur ssh plus sécure

Un serveur ssh est déjà présent cependant la configuration de base est un peu/très légère. Nous allons l’améliorer un peu. L’utilisateur pi pourra être accéder depuis le réseau interne par mot de passe (comme précédemment). L’utilisateur remote pourra accéder uniquement avec l’aide d’une clef privé spécifique que nous allons générer et n’aura d’autorisé que le renvoi de port vers jeedom (pas de login, pas d’exécution de commande, pas de tunneling vers d’autre horizon que jeedom)

8.4.3.1 Configuration du serveur ssh

taper

sudo nano /etc/ssh/sshd_config

Modifier la ligne « PermitRootLogin without-password » par

PermitRootLogin no

Modifier la ligne « #PasswordAuthentication yes» par

PasswordAuthentication no

Modifier la ligne « X11Forwarding yes » par

X11Forwarding no

Rajouter à la fin du fichier (L’utilisateur Pi pourra rentrer par authentification par mot de passe seulement à partir de votre réseau) Attention remplacer l’adresse en rouge par l’adresse IP de votre raspberry et en remplaçant le dernier groupe de chiffre par « * »

Match User pi Address 192.168.1.*

PasswordAuthentication Yes

Rajouter à la fin du fichier

Match User remote

ForceCommand "/bin/echo do-not-send-commands"

PermitTunnel yes

PermitOpen 127.0.0.1:80

PermitTTY no

Rajouter à la fin du fichier une ligne vierge.

Enregistrer le fichier (CTRL-W) puis presser entrer

Quitter nano (CTRL-X)

8.4.3.2 Création des clefs et transfert de celles-ci au bon emplacement

Taper (cela va créer deux fichier id_rsa et id_rsa.pub)

ssh-keygen -t rsa -b 2048

Generating public/private rsa key pair.

Enter file in which to save the key (/home/pi/.ssh/id_rsa): Appuyer sur enter

Created directory '/home/pi/.ssh'.

Enter passphrase (empty for no passphrase): rentrer un mot de passe (S’en souvenir)

Enter same passphrase again: rentrer le même mot de passe

Your identification has been saved in /home/pi/.ssh/id_rsa.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 66 / 78

Your public key has been saved in /home/pi/.ssh/id_rsa.pub.

The key fingerprint is:

43:20:3f:38:04:f9:ac:ca:20:3a:6e:d7:d1:a5:cd:a8 pi@raspberrypi

The key's randomart image is:

+---[RSA 2048]----+

| .oo . |

| .. + . |

| oo o . |

| o. o . |

| . . S |

|o . . + + |

|=. . o |

|+o . E |

|oo. |

+-----------------+

Nous avons maintenant une clef privé id_rsa associé avec une passphrase . et une clef publique id_rsa.pub. La clef privée doit aller dans votre(vos) smartphone(s) favoris . La clef publique doit aller dans un fichier d’autorisation du serveur.

Déplaçons la clef publique au bon endroit :

taper

sudo mkdir /home/remote/.ssh

sudo mv /home/pi/.ssh/id_rsa.pub /home/remote/.ssh/authorized_keys

sudo chown –R remote.remote /home/remote/.ssh

sudo chmod 440 /home/remote/.ssh/authorized_keys

Voilà la clef est autorisée pour le compte remote.

Récupérons la clef privée du raspberry

taper

cat ~/.ssh.id_rsa

sélectionner à l’aide de la souris dans kitty depuis la ligne « ----BEGIN RSA PRIVATE KEY-----» jusqu’à la ligne « -----END RSA PRIVATE KEY-----». Veiller à laisser le texte sélectionner.

Sous votre poste Windows, ouvrir un éditeur de texte comme notepad et faire coller. Puis enregistrer le fichier comme « id_rsa ».

Je laisse volontairement une copie dans le répertoire /home/pi/.ssh/id_rsa. Elle ne sert à rien sinon de sauvegarde. Il faudrait normalement la supprimer.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 67 / 78

8.4.4 Mise en place d’un firewall

A faire dans la prochaine version.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 68 / 78

8.4.5 Configuration de la box internet

Dans toutes les box internet il y a un router NAT, il faut le trouver et rediriger un port vers notre serveur ssh. Je ne montrerai l’exemple que sur ma box. A la fin de cette étape, nous avons un accès ouvert depuis internet. J’en profiterai pour récupérer mon adresse IP.

Sur la freebox, il faut démarrer l’interface de gestion http://mafreebox.freebox.fr/

Sélectionner « Paramètres de la Freebox », « mode avancé »

Sélectionner « Gestion des ports »

Sélectionner « Ajouter une redirection »

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 69 / 78

Remplir les champs puis sauvegarder

Cliquer sur OK

Voilà l’accès est ouvert sur internet.

IP du raspberry

Mettre un numéro supérieur à 1024

Mettre le même numéro que ci-dessus NOTER ce numéro= Port NAT

22

Ce que vous voulez

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 70 / 78

8.5 Trouver son adresse IP publique

Dans votre navigateur web favoris, taper : http://www.mon-ip.com/

Le site internet affiche directement votre adresse publique

Certain opérateur change régulièrement d’adresse IP. Ce n’est pas la cas de free en version dégroupé. Si vous constater que cette adresse change, il faut que :

Soit vous pouvez demander à votre opérateur une adresse fixe

Soit utiliser un resolver d’adresse dynamique. (Ex : Dynu, dyndns, no-ip, etc…). Dans le principe, il faudra installer un client sur une machine toujours allumée (exemple votre raspberry), ce client vient se connecter à intervalle régulier au resolver d’adresse ip. En tapent le nom donné par le resolver d’adresse ip, vous arrivez sur votre raspberry. Des tutoriels existent pour chaque resolver d’adresse dynamique.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 71 / 78

9 Accéder à Jeedom depuis son smartphone

9.1 Android

Problème constaté : Fonctionne avec sohs mais sur Freemobile en itinérance orange :

bride le débit a quasiment rien voir ferme le port aux heures de pointes s’il détecte du crypté … (Free en itinérance pas si illimité que cela). A 8h du matin, cela fonctionne chez moi à plein po. Entre 19h et 24h, le débit est insoutenablement long (plus de 5 minutes par pages !)

Pour free mobile : a investiguer :

- Trouver contournement pour free mobile - Changer operateur - Annuler le cryptage, modifier firewall pour n’autoriser en distant que le port 80, modifier la regle nat de la

box. (Mais perte de la sécurité smartphone / jeedom)

9.1.1 Configuration

Aller sur le « Play store » et télécharger l’application ssh tunnel

Au démarrage, il vous demande de rooter votre mobile : C’est inutile, nous n’utiliserons pas les fonctions nécessitant de rooter le mobile. Ignorer ce message

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 72 / 78

Dans le menu de l’application (haut droit sur mon mobile), faite « rename » et rentrer « jeedom » comme nom de profil.

Entrer votre adresse publique

Confer 8.5Trouver son adresse IP publique

Entrer le numéro de port NAT que vous avez choisi lors de la configuration de

votre box

Confer 8.4.5Configuration de la box internet

Entrer « remote »

Entrer la passphrase que vous avez choisi

Confer 8.4.3.2Création des clefs et transfert de celles-ci au bon

emplacement

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 73 / 78

Laisser la valeur par défaut ici 1984

127.0.0.1

80

Cocher Auto-reconnect

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 74 / 78

Dans le menu de l’application choisissez « Key File Manager »

Sélectionner le fichier « id_rsa » précédemment transféré dans votre téléphone.

Penser selon les versions d’Android à autoriser l’application ssh tunnel à fonctionner en arrière-plan. (Sur Android 5.0.1 anglais, « system settings/Protected apps » Mettre à ON SSHTunnel)

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 75 / 78

9.1.2 Utilisation

Pour utiliser ssh tunnel, il faut :

Activer le tunnel

Utiliser le tunnel

Pour activer SSH Tunnel, activer la case « Tunnel switch ». Si vous voyez « Error… » dans la barre de notification, c’est que vous avez loupé une étape de la configuration soit du serveur ssh soit de sshtunnel, soit de la box.

Une fois activée : lancer votre Navigateur Web sur le mobile et taper comme adresse URL : http://127.0.0.1:1984. Penser à la mettre en bookmark.

Noté le petit logo dans la barre de notifications de SSHTunnel.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 76 / 78

Une fois votre navigation terminé, désactiver SSHTunnel en décochant « Tunnel Switch »

Et voilà : Enjoy.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 77 / 78

9.2 Autre OS

A faire car je ne peux pas tester mais cela devrait être le même principe.

DOMOTIQUE Construction Centrale Domotique sur Raspberry PI3

Ref : NT_202

Iss/Rev : 1.0

Date : 13/02/2017

Page : 78 / 78

10 Améliorer la consommation

Se reporter à la note de Francis Chatain pour ce sujet.

Voici quelques remarques complémentaires :

Si l’on change la fréquence du processeur, des bibliothèques (exemple : DHT11, DS18B20) deviennent instables.

Les composants achetés sur les sites chinois ne sont pas de réguliers sur le respect de spécifications. Selon votre chance, vous allez y tomber sur des composants consommant peu ou beaucoup Exemple, sur un lot d’Arduinos achetés sur un site chinois, Un consomme 80mA en fonctionnement, alors que tous les autres sont à 18mA pour le même sketch. Il n’y a pas le choix que de les échantillonner un par un.