MES TUTOS
VEILLE
Chargement de la veille...
HOMELAB / IOT

Home Assistant : Domotique Locale sous Docker (Zigbee & Optimisation)

La domotique grand public (Google Home, Alexa) pose un problème majeur : vos données partent dans le Cloud. Si Internet coupe, plus rien ne marche. Home Assistant est la réponse souveraine. Il tourne en local, unifie toutes les marques (Philips Hue, Xiaomi, Sonoff) et permet des automatisations complexes. Voici comment le déployer proprement sous Docker.

[Image of home assistant dashboard]

1. Le défi du Matériel (Clé Zigbee)

Pour piloter des objets, il vous faut une antenne. Le protocole roi est le Zigbee (utilisé par Philips, IKEA, Xiaomi). Vous aurez besoin d'une clé USB (type Sonoff Dongle-P ou ConBee II).

Le problème du nommage USB

Sous Linux, votre clé s'appelle souvent /dev/ttyUSB0. Mais si vous branchez une autre clé, au redémarrage, elle peut devenir /dev/ttyUSB1. Si cela arrive, toute votre domotique plante.

La solution SysAdmin : Utilisez le chemin persistant "By-ID".
Tapez : ls -l /dev/serial/by-id/
Vous obtiendrez un chemin unique du type :
/dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0...-if00-port0
C'est ce chemin que nous utiliserons dans Docker.

2. L'Architecture BDD (Recorder)

Par défaut, Home Assistant utilise SQLite. C'est bien pour tester, mais dès que vous aurez 20 capteurs enregistrant la température toutes les minutes, la base va gonfler et ralentir le système (voire tuer la carte SD d'un Raspberry Pi).

Nous allons connecter Home Assistant à une base MariaDB externe (dans un autre conteneur).


3. Le Docker Compose

Créez un dossier hass et votre fichier docker-compose.yml. Nous supposons ici que vous avez déjà un réseau proxy (Traefik) et une base MariaDB (voir tutos précédents).

version: '3.8'

services:
  homeassistant:
    container_name: homeassistant
    image: "ghcr.io/home-assistant/home-assistant:stable"
    restart: unless-stopped
    privileged: true # Nécessaire pour accéder au hardware USB
    volumes:
      - ./config:/config
      - /etc/localtime:/etc/localtime:ro
    devices:
      # Mappage de la clé Zigbee (Hôte : Conteneur)
      - /dev/serial/by-id/usb-ITead_Sonoff_Zigbee...:/dev/ttyUSB0
    environment:
      - TZ=Europe/Paris
    networks:
      - default
      - proxy
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.hass.rule=Host(`domotique.mondomaine.fr`)"
      - "traefik.http.routers.hass.entrypoints=websecure"
      - "traefik.http.routers.hass.tls.certresolver=myresolver"
      - "traefik.http.services.hass.loadbalancer.server.port=8123"

networks:
  proxy:
    external: true

4. Configuration Post-Installation

Une fois lancé (docker compose up -d), créez votre compte administrateur.

A. Connecter la Base de Données

Pour quitter SQLite, éditez le fichier config/configuration.yaml qui a été créé dans votre dossier :

# Connexion à MariaDB
recorder:
  db_url: mysql://user:password@mariadb_host/homeassistant_db
  purge_keep_days: 30 # Garder 30 jours d'historique

Redémarrez Home Assistant (Outils de développement > Redémarrer).

B. Reverse Proxy et Websockets

Si vous passez par Traefik, vous devez autoriser les proxies dans la configuration de Home Assistant, sinon vous aurez une erreur "400 Bad Request". Ajoutez ceci à configuration.yaml :

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 172.0.0.0/8 # Plage IP Docker

5. L'automatisation (Le cœur du système)

C'est ici que le SysAdmin s'amuse. Home Assistant utilise le YAML pour ses scénarios. Exemple : "Si le soleil se couche ET que je suis à la maison, allumer le salon."

alias: "Allumage Salon Soir"
trigger:
  - platform: sun
    event: sunset
    offset: "-00:30:00" # 30 min avant le coucher
condition:
  - condition: state
    entity_id: device_tracker.mon_iphone
    state: "home"
action:
  - service: light.turn_on
    target:
      entity_id: light.salon_principal
    data:
      brightness_pct: 50
      transition: 5 # Allumage progressif sur 5 secondes

Conclusion

Home Assistant sous Docker est la méthode la plus robuste. Vous perdez la facilité des "Add-ons" (réservés à la version Home Assistant OS), mais vous gagnez un contrôle total sur votre infrastructure, vos sauvegardes et vos ressources système.

← Retour à la bibliothèque