Éteindre sa box internet la nuit, c’est le genre de truc que tout le monde sait qu’il faudrait faire, mais que personne ne fait vraiment. Le réveil à 3h du matin pour débrancher la prise ? Pas hyper réaliste. Heureusement, si tu tournes OpenWrt sur ton routeur, tu peux automatiser tout ça proprement avec un simple script cron, sans prise programmable ni gadget supplémentaire.
À retenir
- Un routeur consomme 5-15W en continu : sur 8h de veille nocturne, ça représente une consommation massive à l’année
- OpenWrt permet de désactiver les radios Wi-Fi sans couper le routeur physiquement, préservant l’accès SSH et les appareils filaires
- Un simple script cron peut basculer le Wi-Fi automatiquement avec des horaires différents en semaine et week-end
Pourquoi s’embêter avec ça ?
Un routeur Wi-Fi consomme en moyenne entre 5 et 15 watts en continu, selon son modèle et sa charge. Ça paraît anodin, mais sur une année complète de veille nocturne inutile (disons 8 heures par nuit pendant lesquelles personne ne streame, ne joue, ne télécharge), l’addition commence à ressembler à quelque chose. Et au-delà de la facture, il y a la question des ondes radio permanentes dans l’appartement, un sujet qui préoccupe pas mal de gens même si les niveaux réglementaires restent largement respectés.
L’astuce avec OpenWrt, c’est qu’on ne va pas couper le routeur physiquement, ce serait contre-productif, puisqu’on perdrait la main dessus. On va plutôt désactiver les interfaces Wi-Fi (les radios 2,4 GHz et 5 GHz) selon un planning, tout en laissant le routeur actif pour les équipements filaires et la gestion à distance si besoin. Un peu comme mettre le Wi-Fi en mode nuit sans décrocher le téléphone fixe.
Prérequis et connexion SSH
Pour suivre ce guide, il te faut un routeur sous OpenWrt avec accès SSH activé. Si tu n’as jamais ouvert de terminal et que tu te demandes ce que SSH veut dire, c’est le moment d’apprendre : c’est simplement une connexion sécurisée en ligne de commande à ta box, depuis ton PC ou Mac. Sur Linux et macOS, le client SSH est natif. Sur Windows, PowerShell moderne ou WSL font l’affaire.
Connecte-toi avec la commande classique :
ssh root@192.168.1.1
Remplace l’IP par celle de ton routeur si tu l’as changée (et si tu ne l’as pas changée, c’est aussi l’occasion d’y penser). Une fois connecté, tu arrives sur le shell BusyBox d’OpenWrt, minimaliste mais très efficace.
Avant d’écrire quoi que ce soit, vérifie que cron est bien actif sur ton système :
service cron status
Si le retour indique que le service tourne, parfait. Sinon, active-le avec service cron enable && service cron start.
Le script qui coupe et rallume le Wi-Fi
OpenWrt utilise la commande wifi pour gérer les interfaces radio, et uci pour modifier la configuration. La combinaison des deux permet de désactiver proprement les radios sans rebooter la machine.
Créons d’abord un petit script dédié, histoire d’avoir quelque chose de propre à appeler depuis cron. Dans le terminal :
vi /usr/local/bin/wifi-off.sh
Et à l’intérieur, colle ce contenu :
#!/bin/sh
wifi down
Pareil pour la remise en route, dans un fichier /usr/local/bin/wifi-on.sh :
#!/bin/sh
wifi up
Rends ces deux fichiers exécutables :
chmod +x /usr/local/bin/wifi-off.sh
chmod +x /usr/local/bin/wifi-on.sh
La commande wifi down désactive toutes les radios définies dans ta config OpenWrt. Elle est propre, documentée, et ne touche pas aux interfaces filaires. C’est exactement ce qu’on veut.
Automatiser avec cron
Le fichier crontab d’OpenWrt se gère avec crontab -e. La syntaxe cron fait peur au premier regard, mais elle est en réalité très logique : cinq colonnes représentent respectivement les minutes, les heures, le jour du mois, le mois, et le jour de la semaine. Une étoile signifie « tous ».
Voici ce qu’on va ajouter pour couper le Wi-Fi à 23h30 chaque soir et le rallumer à 7h00 chaque matin :
30 23 * * * /usr/local/bin/wifi-off.sh
0 7 * * * /usr/local/bin/wifi-on.sh
Sauvegarde, quitte l’éditeur, et vérifie que cron relit bien sa config :
service cron restart
Tu peux tester tes scripts manuellement avant d’attendre minuit, rien de plus frustrant que de découvrir une coquille dans la syntaxe le lendemain matin avec un Wi-Fi qui ne revient pas. Lance /usr/local/bin/wifi-off.sh depuis le terminal, observe que les réseaux Wi-Fi disparaissent de tes appareils, puis relance /usr/local/bin/wifi-on.sh pour confirmer que tout remonte bien.
Une variante utile : tu veux peut-être des horaires différents le week-end. La syntaxe cron gère ça via la cinquième colonne. Pour une extinction à minuit uniquement du lundi au vendredi (jours 1 à 5 dans la convention cron) :
0 0 * * 1-5 /usr/local/bin/wifi-off.sh
0 7 * * 1-5 /usr/local/bin/wifi-on.sh
Et pour le week-end, horaire décalé :
0 1 * * 6,0 /usr/local/bin/wifi-off.sh
0 9 * * 6,0 /usr/local/bin/wifi-on.sh
Propre, modulaire, et entièrement dans le terminal.
Ce qu’on gagne vraiment, et les limites à connaître
Le gain énergétique réel dépend énormément de ton matériel. Les routeurs récents avec Wi-Fi 6 ou 6E ont des composants radio qui consomment une part significative de l’enveloppe totale, désactiver les radios réduit concrètement la consommation, même si le CPU et la mémoire restent actifs. Sur des appareils plus anciens, l’écart sera moins marqué.
La limite principale de cette approche : si quelqu’un dans le foyer a besoin du Wi-Fi en dehors des plages configurées, il doit soit se connecter en filaire, soit te demander de réactiver à la main (via SSH, donc depuis le réseau filaire ou depuis l’interface LuCI si tu l’as installée). Prévoir un interrupteur physique ou une page LuCI accessible en local peut éviter les conflits familiaux à 2h du matin quand quelqu’un veut regarder une série.
L’autre angle à garder en tête : certains équipements de domotique ou d’alarme tournent sur Wi-Fi. Vérifier que rien de critique ne dépend uniquement du réseau sans fil avant de déployer ce genre d’automatisation, c’est le genre de détail qu’on oublie jusqu’au moment où l’alarme ne répond plus. Une cartographie rapide de ce qui tourne sur le Wi-Fi vs le filaire dans ton réseau vaut dix minutes de préparation.
Au fond, ce qui est plaisant avec cette approche, c’est qu’elle transforme un routeur grand public en un outil vraiment maîtrisé. OpenWrt ouvre une quantité de personnalisations de ce genre, et le script cron n’est que la porte d’entrée. Adblock intégré, VPN kill-switch, monitoring de bande passante par appareil… une fois qu’on a goûté à ce niveau de contrôle, difficile de revenir à une interface constructeur verrouillée.