En bref
| Prérequis | Home Assistant opérationnel · WOL (Wake-on-LAN) activé dans le BIOS/UEFI de la machine cible · SSH configuré sur la machine cible · Accès à distance à Home Assistant (Nabu Casa ou VPN) |
| Résultat | Allumer, éteindre et exécuter des commandes SSH sur ses machines depuis Home Assistant, depuis n’importe où dans le monde |
| Ressources | Vidéo originale WOL 2023 · Intégration Wake-on-LAN HA · SSH/Shell Command HA |
Le guide complet
Contexte
J’ai déjà fait une vidéo sur ce sujet il y a 3 ans. La situation a changé : je suis maintenant intégralement sur Home Assistant, et j’ai revu l’implémentation avec quelques améliorations. Principalement : un onglet dédié dans le dashboard pour surveiller l’état de mes machines et les piloter, et quelques commandes SSH utiles accessibles en un clic.
Le cas d’usage est simple : mon NAS tourne la plupart du temps, mais mon PC de montage peut rester éteint des heures. Plutôt que de garder des machines allumées pour rien, je veux pouvoir les démarrer à distance exactement quand j’en ai besoin — même depuis l’autre bout du monde en 5G.
Architecture
La solution repose sur trois briques :
- Wake-on-LAN (WOL) — pour allumer une machine éteinte via le réseau
- Ping — pour détecter si la machine est disponible sur le réseau
- SSH / Shell Command — pour éteindre proprement la machine ou exécuter des actions
Tout ça est configuré dans Home Assistant via configuration.yaml.
Prérequis matériels
Activer WOL sur la machine cible :
- Entrer dans le BIOS/UEFI au démarrage
- Chercher l’option “Wake-on-LAN”, “WOL” ou “Power On By PCI-E” selon les fabricants
- L’activer
Sous Windows, il faut aussi aller dans le Gestionnaire de périphériques → votre carte réseau → Propriétés → Gestion de l’alimentation → cocher “Autoriser ce périphérique à sortir l’ordinateur du mode veille”.
Note importante : Le WOL fonctionne sur Ethernet. Sur une carte réseau 10 GbE (comme celle de mon PC de montage), il peut être nécessaire d’avoir une seconde carte en Gigabit pour faire du WOL proprement. C’est pour ça que j’explore en parallèle un relais physique qui simule l’appui sur le bouton power — plus fiable dans certains cas.
SSH sur la machine cible :
- Sous Windows : activer OpenSSH Server dans Paramètres → Applications → Fonctionnalités optionnelles
- Sous Linux :
sudo apt install openssh-server(généralement déjà présent)
Vous aurez besoin d’une clé SSH (paire publique/privée) pour que Home Assistant se connecte sans mot de passe.
Récupérer l’adresse MAC
L’adresse MAC est indispensable pour le WOL. Plusieurs façons de la récupérer :
Depuis votre machine (Windows) :
ipconfig /all
Cherchez “Adresse physique” sur la carte réseau Ethernet.
Depuis Home Assistant / AdGuard Home : Si vous avez AdGuard Home ou Pi-hole, la machine apparaît dans la liste avec son adresse MAC associée à l’IP.
Depuis un routeur/switch géré : La table ARP donne le couple IP/MAC de toutes les machines actives.
Configuration Home Assistant
1. Déclarer le switch WOL dans configuration.yaml
switch:
- platform: wake_on_lan
name: "NAS OpenMediaVault"
mac: "AA:BB:CC:DD:EE:FF"
host: 192.168.1.100
broadcast_address: 192.168.1.255
turn_off:
service: shell_command.shutdown_nas
- platform: wake_on_lan
name: "PC Montage"
mac: "11:22:33:44:55:66"
host: 192.168.1.101
broadcast_address: 192.168.1.255
Pourquoi platform: wake_on_lan plutôt que l’intégration directe ? Parce que ça me permet d’associer à la fois le turn_on (WOL) et le turn_off (commande SSH) dans le même switch. C’est plus propre.
2. Déclarer les commandes SSH dans configuration.yaml
shell_command:
shutdown_nas: >
ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no
user@192.168.1.100 "sudo shutdown -h now"
fail2ban_unban: >
ssh -i /config/.ssh/id_rsa -o StrictHostKeyChecking=no
user@192.168.1.100 "sudo fail2ban-client unban <IP>"
Important : La clé privée doit être dans le dossier /config/.ssh/ de Home Assistant (ou le chemin équivalent selon votre installation). Copiez-la là avec les bons droits (chmod 600).
Commencez par tester avec un simple echo avant de mettre un vrai shutdown — vous éviterez les mauvaises surprises.
3. Copier la clé SSH dans Home Assistant
Via l’éditeur de fichiers de Home Assistant (add-on File Editor ou SSH add-on) :
mkdir /config/.ssh
# Copiez votre clé privée id_rsa dans ce dossier
chmod 600 /config/.ssh/id_rsa
Sur la machine cible, ajoutez la clé publique dans ~/.ssh/authorized_keys.
4. Redémarrer Home Assistant
Après modification de configuration.yaml, rechargez la configuration (Outils développeur → Redémarrer ou juste “Recharger YAML”).
Dashboard
Dans mon tableau de bord, j’ai un onglet “Réseau/Serveurs” avec :
- Une carte par machine, avec son état (allumé/éteint), la consommation sur les 15 dernières minutes
- Un bouton “Allumer” (déclenche le WOL)
- Un bouton “Éteindre” (déclenche la commande SSH shutdown)
- Des boutons pour les actions SSH ponctuelles (fail2ban, etc.)
Conseil : Ajoutez une confirmation avant l’action d’allumage/extinction pour éviter les faux clics. Dans Home Assistant, vous pouvez configurer ça via tap_action: action: call-service avec confirmation: true.
Résultat
Depuis mon smartphone en 5G, j’allume mon NAS en un tap. La machine devient disponible en quelques secondes (temps de démarrage), et je peux l’éteindre proprement depuis n’importe où.
C’est le genre de fonctionnalité qui paraît gadget jusqu’au jour où vous êtes à l’extérieur et que vous réalisez que votre NAS tourne pour rien depuis 3 jours, ou que vous avez besoin de le démarrer d’urgence pour récupérer un fichier.
Note sur la fiabilité
La supervision via ping est suffisante pour détecter si la machine est en ligne. Si vous voulez quelque chose de plus robuste — notamment pour les machines qui peuvent se bloquer — un relais physique qui simule l’appui bouton power est une meilleure option que le WOL seul. Je teste ça en parallèle et je ferai une mise à jour si c’est concluant.