NRX800 : Mini-tuto Installation du container HomeAssistant + HACS + Gestion GPIO


:hammer_and_wrench: É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 -y

Installer Docker

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Ajouter l’utilisateur au groupe docker

sudo usermod -aG docker $USER

Installer Docker Compose (plugin)

sudo apt install docker-compose-plugin

Se 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

  1. 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.

  1. 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
  1. 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.

  1. :white_check_mark: 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.

  1. :light_bulb: 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

:package: Étape 2 : Installation de HACS dans le conteneur Home Assistant

  1. Prérequis

    Un compte GitHub actif.

    Home Assistant installé et fonctionnant dans son conteneur.

  2. 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
  1. 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.

:gear: É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.

:gear: É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"

:warning:: 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 :wink:

2 « J'aime »