Installation d'une image Rasbian + Domoticz optimisée sur Raspberry Pi 3, Pi 4 ou Pi 5

Domoticz est un système domotique multiplateforme, très compact et rapide car écrit en C++. Il permet de créer des automatisations complexes pour gérer, par exemple, un système d'alarme complet, le contrôle total d'une pompe à chaleur, etc.

Un livre à ce sujet est disponible à l'adresse suivante : https://github.com/rwbl/domoticz-homeautomation-workbook

Cette page explique comment créer une nouvelle image système avec Raspbian , Domoticz, un pare-feu et une sauvegarde.

Si vous préférez acheter une carte SD de haute qualité déjà programmée, visitez notre boutique . petit domoticz

Création d'une image pour Raspberry Pi

Nous proposons une solution rapide pour installer une image préconfigurée de Raspbian pour Raspberry Pi 3, Pi 4 et Pi 5, comprenant la dernière version du logiciel Domoticz et configurée pour préserver la mémoire flash MicroSD (la mémoire flash ne peut être écrite en toute sécurité plus de 10 000 fois) et exporter une sauvegarde hebdomadaire facilement restaurable en cas de problème.

Cette image a été testée sur les matériels Raspberry Pi 3 et Raspberry Pi 4, et utilise la dernière distribution Raspbian.

En flashant cette image sur une carte microSD, vous êtes immédiatement prêt à configurer vos appareils Domoticz depuis l'interface web.

Extraction de l'image sur une carte microSD

Vous avez besoin d'une distribution Linux, de wget, de sfdisk, de fsarchiver et d'une carte microSD (ou SSD) d'au moins 16 Go d'espace.

Dans l'interpréteur de commandes bash, saisissez les commandes suivantes :

 export disk=/dev/sdh #remplacez sdh par le périphérique microSD/SSD
wget https://docs.creasol.it/raspberry_domoticz.sfdisk
wget https://docs.creasol.it/raspberry_domoticz.sfdisk
sfdisk $disk < raspberry_domoticz.sfdisk
fsarchiver -v restfs raspberry_domoticz.fsa id=0,dest=${disk}1 id=1,dest=${disk}2
echo -e "\\aMicroSD copié"

Caractéristiques

  • Compatible avec les Raspberry Pi 4 et Raspberry Pi 3
  • Raspbian + une version récente de Domoticz
  • Optimisé pour réduire l'écriture sur la mémoire flash : /tmp et /var/log sont stockés dans le système de fichiers RAM et non sur la carte SD, et le swap est désactivé. Les fichiers temporaires Domoticz sont écrits dans /tmp et non sur la carte SD, ce qui prolonge la durée de vie de la mémoire.
  • Pare-feu avec iptables/netfilter, configurable en modifiant le fichier /usr/local/sbin/myfirewallpi.sh
  • Sauvegarde qui crée automatiquement une sauvegarde incrémentielle des fichiers modifiés ; une sauvegarde complète est effectuée un jour par semaine et une image système est créée un jour par mois ; la sauvegarde peut être facilement exportée vers un disque dur USB ou un NAS connecté (FTP ou CIFS).
  • Domoticz est partiellement configuré avec certains appareils et avec le plugin Creasol Dombus déjà installé (plugin Domoticz pour utiliser les appareils Creasol DomBus connectés au Raspberry via un bus série RS485).

Accès et configuration du Raspberry Pi avec l'image programmée

Voici les informations d'identification par défaut pour cette image :
Utilisateur Linux : pi , mot de passe : arangingenni
Utilisateur Linux : root , mot de passe : geriandallse
Utilisateur Domoticz : domoticz , mot de passe : creasol

Il est recommandé de modifier ces mots de passe par défaut !

En démarrant votre Raspberry Pi avec cette image, il obtiendra sa configuration réseau auprès de votre serveur DHCP (routeur). Vous pourrez alors vous y connecter via votre navigateur à une adresse URL du type http://192.168.1.123:8080 ( consultez votre serveur DHCP pour connaître l'adresse IP attribuée à votre Raspberry Pi , ou effectuez une analyse réseau de votre réseau local). Si vous vous connectez à votre Raspberry Pi depuis un réseau de type 192.168.*.*, 172.16.*.* ou 10.*.*.*, aucune authentification ne sera requise .
De plus, le service ssh est activé , vous pouvez donc entrer dans un shell sécurisé (en utilisant ssh, putty ou tout autre client ssh) en tant qu'utilisateur pi ou root.


Comment créer une image à partir d'une carte SD Raspberry Pi

Nous avons écrit le script bash raspberry_domoticz.sh (voir ci-dessus) qui permet d'enregistrer une copie de la mémoire Raspberry sur une clé USB, et également de créer une nouvelle carte SD avec le contenu d'une image enregistrée .

C'est utile car :

  1. La mémoire flash ne peut pas être écrite indéfiniment : chaque cellule flash peut généralement être écrite entre 10 000 et 100 000 fois. L’image proposée est optimisée pour limiter les écritures sur la carte SD.
  2. Il est toujours judicieux de conserver une sauvegarde du Raspberry Pi en cours d'exécution , afin de pouvoir restaurer le système à partir d'une ancienne image en cas de problème.
  3. Vous pourriez avoir besoin de cloner une carte SD existante et de conserver les images sur votre PC ou NAS.

Caractéristiques:

  • Les images sont compressées ... c'est absurde d'avoir une image de 16 Go pour une carte SD de 16 Go presque vide !
  • Les images peuvent être restaurées sur des cartes SD de différentes capacités ; il est donc possible d'utiliser la même image pour écrire sur une carte SD de 32 Go ou de 8 Go.
  • La création et la restauration d'une image sont très rapides , comparées à d'autres systèmes.

Malheureusement, ce système ne fonctionne pas sous Windows, mais… qui utilise encore Windows de nos jours ? Tout migre vers Linux ! Android est basé sur Linux. Raspbian est basé sur Linux. Vos routeurs, points d’accès et téléviseurs fonctionnent très probablement sous Linux ! ;-)

Cliquez pour télécharger le script raspberry_domoticz.sh , enregistrez-le dans un répertoire exécutable de votre système Linux (par exemple /usr/local/sbin) et accordez-lui les permissions d'exécution.
Exécutez raspberry_domoticz.sh et suivez les instructions pour créer une image compressée à partir de la carte SD Raspberry Pi. Cela fonctionne également en mode Live, directement depuis le système Linux en fonctionnement, avec une forte probabilité de succès.

 

Vous en voulez plus ? Présentation du DomBus, un système d'une fiabilité exceptionnelle.

 

Foire aux questions (FAQ)

Quelques commandes utiles

ps ax |grep domoticz : liste tous les processus actifs en affichant uniquement ceux qui portent le nom domoticz

netstat -lnp |grep domoticz : affiche les ports TCP/UDP utilisés par domoticz (normalement, il utilise le port 8080)

lsusb : liste les périphériques connectés en USB. lsusb -v affiche les détails des périphériques USB.

Comment configurer les GPIO du Raspberry Pi

Avec cette image Raspbian, les GPIO peuvent être configurés en modifiant le fichier /etc/rc.local et en définissant le gpio nécessaire comme out (si sortie), in (si entrée) ou les deux (si bidirectionnel).

 [code]#/etc/rc.local fichier

#Configuration des GPIO à l'aide de l'outil wiringpi :
#Syntax: gpio export GPIONUMBER out|in|both pour définir comme sortie, entrée ou E/S
gpio export 24 out # Définir comme sortie.
Sortie GPIO 23
Sortie GPIO 22
Sortie GPIO 27
Sortie GPIO 18
Sortie GPIO 17
Sortie GPIO 25 #lightOut2
Sortie GPIO 8 #lightOut3
Sortie GPIO 7 #lightOut4
export GPIO 12 sorties #lightOut1[/code]

Après modification, saisissez /etc/rc.local pour recharger le script.

Comment mettre à jour le plugin Creasol DomBus vers la dernière version ?

Il suffit de taper, depuis le shell root, la commande creasoldombus_update.sh

Comment configurer une adresse IP statique pour l'interface Ethernet de Raspbian ?

Modifiez le fichier /etc/dhcpcd.conf ( nano /etc/dhcpcd.conf ) et ajoutez les lignes suivantes à la fin :

 interface eth0 static ip_address=192.168.1.250/24 static routers=192.168.1.1 static domain_name_servers=192.168.1.1 8.8.8.8

et enregistrez avec Ctrl+X.

La Raspberry Pi ne peut pas être connectée par SSH (port 22) ni par HTTP (port 8080).

Assurez-vous que le câble LAN est connecté au Raspberry Pi et qu'un serveur DHCP peut lui attribuer des paramètres IP.

Un script de pare-feu est installé, /usr/local/sbin/myfirewallpi.sh, qui nécessite que l'interface eth0 soit déjà configurée par DHCP ou par adresse IP statique.

Quelle est la consommation énergétique du Raspberry Pi 4 ?

Les systèmes domotiques ayant été conçus pour réduire l'empreinte environnementale des bâtiments, il est important de savoir si un Raspberry Pi est un bon matériel pour un contrôleur domotique, en termes de puissance du processeur, de stabilité et de consommation d'énergie.

En effectuant une recherche sur le web, on ne trouve que quelques articles décrivant la consommation électrique d'un Raspberry Pi ; la meilleure solution consiste donc à mesurer cette consommation en pratique.

Il s'agit du matériel testé : un Raspberry Pi 4 doté de 1 Go de RAM, connecté à un réseau local et alimenté par un bloc d'alimentation CC de 5 V.

Raspberry Pi 4 1 Go

Ci-dessous, les valeurs du courant et de la tension avec le système d'exploitation Raspbian, mesurées lorsque
1. À gauche, sans aucune charge (très faible utilisation du processeur), la consommation électrique du Raspberry Pi est de 5 V × 0,42 A = 2,1 W (normale).

2. À droite, avec une charge de 100 % sur les 4 cœurs, la consommation électrique du Raspberry Pi est de 5 V × 0,63 A = 3,15 W en crête.

Raspberry Pi 4 1 Go sans téléchargement

Raspberry Pi 4 1 Go entièrement chargé

 

Raspberry Pi 4 1 Go entièrement installé

Configuration du pare-feu

Comment activer l'adresse IP depuis laquelle vous souhaitez accéder à votre Raspberry Pi/Domoticz depuis l'extérieur ?

Modifiez le script du pare-feu avec la commande nano /usr/local/sbin/myfirewallpi.sh et modifiez la variable ADMIN_SOURCE en ajoutant les adresses IP (ou les réseaux) que vous souhaitez activer :

ADMIN_SOURCE='80.86.145.56/29 149.13.157.0/24 37.0.0.0/8'

où /24 signifie que le dernier nombre de l'adresse IP peut être n'importe lequel de 0 à 255, et /8 signifie que seul le premier nombre est vérifié tandis que les 3 nombres restants peuvent être n'importe lesquels de 0 à 255.

Enregistrez le fichier avec CTRL-s et CTRL-x, puis exécutez le script en tapant /usr/local/sbin/myfirewallpi.sh

Comment activer les connexions entrantes vers le serveur web sur Raspberry Pi ?

Modifiez le script du pare-feu avec la commande nano /usr/local/sbin/myfirewallpi.sh et ajoutez le port 80 (http) ou 443 (https) à la variable TCP_SERVICES_IN_wan.

Ensuite, enregistrez le script (CTRL+S et CTRL+X) et exécutez le script du pare-feu avec la commande /usr/local/sbin/myfirewallpi.sh

 

Configuration de sauvegarde

La configuration est stockée dans le fichier /usr/local/etc/backup.conf : modifiez-le avec votre éditeur préféré (par exemple nano /usr/local/etc/backup.conf ).

Comment créer périodiquement une image

Modifiez la variable DISKS :
DISQUES="mmcblk0p1 mmcblk0p2"
pour créer une image pour les partitions de démarrage et racine

Comment exporter une sauvegarde vers un disque dur externe USB ?

BACKUP_DIR_CONTROL="/mnt/usb"
VÉRIFICATION_DE_PARTITION_DE_SAUVEGARDE="/mnt/usb"
BACKUP_DIR="${BACKUP_DIR_CONTROL}/backup_domoticz"
BACKUP_DIR_MOUNT="mount -o nodev,noexec,async /dev/sda1 ${BACKUP_DIR_CONTROL}" # Monter /dev/sda1
BACKUP_DIR_UMOUNT="umount ${BACKUP_DIR_CONTROL}" # Démonter /dev/sda1
BACKUP_DIR_AFTER_UMOUNT="hdparm -S12 /dev/sda" # Déconnecter le disque dur externe

Comment exporter une sauvegarde sur un NAS monté par CIFS (Samba) ?

BACKUP_DIR_CONTROL="/mnt/nas"
VÉRIFICATION_DE_PARTITION_DE_SAUVEGARDE="/mnt/nas"
BACKUP_DIR="${BACKUP_DIR_CONTROL}/backup_domoticz"
BACKUP_DIR_MOUNT="mount -t cifs -o username=USER,password=PASSWORD, //NAS_IP_ADDRESS/SHARE ${BACKUP_DIR_CONTROL}" # Monter la partition NAS
BACKUP_DIR_UMOUNT="umount ${BACKUP_DIR_CONTROL}" # Démonter la partition NAS
BACKUP_DIR_AFTER_UMOUNT="" # commande envoyée après BACKUP_DIR_UMOUNT : ne rien faire