Étape 1 : Installation et configuration du conteneur
Prérequis :
- avoir installé docker
Installation de Docker et Docker Compose (si absents)
Mettre à jour le système
sudo apt update && sudo apt upgrade -yInstaller Docker
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.shAjouter l’utilisateur au groupe docker
sudo usermod -aG docker $USERInstaller Docker Compose (plugin)
sudo apt install docker-compose-pluginSe déconnecter/reconnecter pour appliquer le groupe docker
Pour que le conteneur Home Assistant puisse accéder aux GPIO du NRX800, il faut adapter la configuration habituelle du docker-compose.yml.
Il y a deux points essentiels :
-
Mode privilégié : Le conteneur doit être lancé en mode
--privileged. C’est indispensable pour l’accès aux périphériques matériels du NRX800. -
Accès aux périphériques : Les fichiers représentant les GPIO (
/dev/gpiochip*et/dev/mem) doivent être accessibles depuis le conteneur.
Installation avec Docker Compose
- Créez un répertoire pour la configuration :
mkdir ~/homeassistant
Puis se positionner dedans
cd ~/homeassistant
C’est dans ce dossier que toutes les données et configurations seront sauvegardées.
- Créez un fichier
docker-compose.yml:
sudo nano docker-compose.yml
Copiez et collez le contenu suivant dans le fichier :
services:
homeassistant:
container_name: homeassistant
image: ghcr.io/home-assistant/home-assistant:stable
restart: unless-stopped
privileged: true # <-- Mode privilégié
network_mode: host
environment:
- TZ=Europe/Paris
volumes:
- ./config:/config
- /run/dbus:/run/dbus:ro
- /dev:/dev # <-- Donne accès à tous les périphériques
devices:
- /dev/gpiochip0 # <-- Accès direct au contrôleur GPIO (pour CM4/Pi4)
- /dev/mem # <-- Accès à la mémoire, parfois requis
- Lancez le conteneur :
docker-compose up -d
La première fois, Docker va télécharger l’image et démarrer le conteneur en arrière-plan.
Vérification et première connexion :
Une fois le conteneur démarré, ouvrez votre navigateur et accédez à l’adresse suivante :
http://<adresse_ip_de_votre_machine>:8123
Remplacez <adresse_ip_de_votre_machine> par l’adresse IP de votre serveur. Vous devriez voir l’écran de bienvenue de Home Assistant.
Mises à jour du container :
Pour mettre à jour votre conteneur vers une nouvelle version, il vous suffit de suivre ces étapes :
sudo docker compose pull
Puis
sudo docker compose up -d
Étape 2 : Installation de HACS dans le conteneur Home Assistant
-
Prérequis
Un compte GitHub actif.
Home Assistant installé et fonctionnant dans son conteneur.
-
Accés à la console du conteneur
Ouvrez un terminal dans le conteneur qui exécute Home Assistant.
sudo docker exec -it homeassistant bash
Installez HACS .
sudo wget -O - https://get.hacs.xyz | bash -
Sortez de la console du container
exit
Pour finaliser l’installation, redémarrez votre conteneur Home Assistant.
sudo docker restart homeassistant
- Configuration finale dans Home Assistant
Après le redémarrage, la configuration se fait dans l’interface web de Home Assistant :
Allez dans Paramètres → Appareils et services.
Cliquez sur le bouton Ajouter une intégration.
Recherchez HACS et sélectionnez-le.
Suivez les instructions à l’écran pour autoriser l’intégration avec votre compte GitHub.
Étape 3 : Installer une intégration GPIO via HACS
Plusieurs intégrations, disponibles dans HACS, permettent de piloter les GPIO :
- Raspberry Pi GPIO
- Home Assistant GPIO Integration
Installation via HACS :
Dans HACS, allez dans la section « Intégrations ».
Cliquez sur « Explorer et ajouter un dépôt ».
Recherchez le nom de l’intégration (par exemple « gpio »).
Cliquez sur l’intégration, puis sur « Télécharger ».
Redémarrez Home Assistant.
Étape 4 : Configurer l’intégration GPIO depuis configuration.yaml
Vous pouvez aussi configurer vos entités manuellement dans votre fichier configuration.yaml.
cd ~/homeassistant/config
nano configuration.yaml
Copiez et collez le contenu suivant dans le fichier :
# Configuration des Entrées (capteurs binaires) du NRX800
binary_sensor:
- platform: rpi_gpio
sensors:
- port: 20
name: "INPUT 1"
unique_id: "nrx800_input_1" # ID unique pour la personnalisation dans l'UI
bouncetime: 80 # Temps d'anti-rebond en millisecondes
- port: 21
name: "INPUT 2"
unique_id: "nrx800_input_2"
bouncetime: 80
- port: 22
name: "INPUT 3"
unique_id: "nrx800_input_3"
bouncetime: 80
- port: 23
name: "INPUT 4"
unique_id: "nrx800_input_4"
bouncetime: 80
- port: 24
name: "INPUT 5"
unique_id: "nrx800_input_5"
bouncetime: 80
- port: 25
name: "INPUT 6"
unique_id: "nrx800_input_6"
bouncetime: 80
- port: 26
name: "INPUT 7"
unique_id: "nrx800_input_7"
bouncetime: 80
- port: 27
name: "INPUT 8"
unique_id: "nrx800_input_8"
bouncetime: 80
# Configuration des Relais du NRX800
switch:
- platform: rpi_gpio
switches:
- port: 4
name: "RLY 1"
unique_id: "nrx800_relay_1" # ID unique pour la personnalisation dans l'UI
- port: 5
name: "RLY 2"
unique_id: "nrx800_relay_2"
- port: 6
name: "RLY 3"
unique_id: "nrx800_relay_3"
- port: 12
name: "RLY 4"
unique_id: "nrx800_relay_4"
- port: 13
name: "RLY 5"
unique_id: "nrx800_relay_5"
- port: 16
name: "RLY 6"
unique_id: "nrx800_relay_6"
- port: 17
name: "RLY 7"
unique_id: "nrx800_relay_7"
- port: 18
name: "RLY 8"
unique_id: "nrx800_relay_8"
# LED Utilisateur
- platform: rpi_gpio
switches:
- port: 19
name: "User LED"
: Les numéros de ports utilisés sont les numéros GPIO (mode BCM) et non la position physique des broches sur le connecteur.
Puis dans l’interface de Home Assistant dans le menu « Aperçu » cliquez sur le « + » puis « Créer une pièce » avec le nom « NRX800 ».
Ensuite il faut aller dans le menu « Paramètres » puis « Appareils et services » puis « Entités »
sélectionner chaque entrée
cliquer sur la roue crantée et affecter à la pièce « NRX800 » et lui associer un nom
Faire de même avec les relais
Vous obtiendrez un tableau
Dans les automatisations il est alors possible de lier les entrées au relais
il faut aller dans « Paramètres » et « Automatisations et scènes »
Voila, il faut reconnaitre que la version docker est limitée par rapport à la version HAOS mais si cela suffit…N’hésitez pas à me dire si des passages sont pas assez clairs, je compléterais ![]()




