par Anne-Laure DELPECH | 11 Août 2026 | Linux & Sécurité
Tu veux migrer un compte Dropbox vers Google Drive avec rclone, et le transfert stagne à quelques centaines de kilo-octets par seconde alors que ta connexion tient des centaines de mégabits. Voici ce qu’on a découvert en cherchant pourquoi, et la méthode qui a fini par fonctionner.
Précision : migration réalisée avec l’aide de Claude.ai et parfois Gemini aussi. Cet article a été préparé par Claude.ai sur la base des essais que j’ai réalisé et de ce qui a fonctionné.
Le symptôme
J’ai d’abord essayé sur un dossier Dropbox Pilote, appelé « A-TRANSFERER ». L’idée c’était d’identifier la meilleure façon de faire avec un « petit » dossier avant de transférer l’ensemble de ma Dropbox (quelques centaines de giga-octets). Et tout de suite l’essai s’est heurté à des difficultés.
le problème : un dossier Dropbox de plus de 50 000 fichiers à transférer vers Google Drive, pour une taille totale de quelques dizaines de giga-octets. La commande de départ, sur un petit serveur Linux (un mini PC sous Ubuntu) :
rclone copy dropbox:"A-TRANSFERER" gdrive:/ANCIEN-DROPBOX --progress --transfers 4 --checkers 8 --tpslimit 10 --fast-list --log-file=/home/user/rclone-migration.log
Résultat : un débit de 263 Ko/s (kilo-octets par seconde), et une estimation de temps restant (ETA, « estimated time of arrival ») de plusieurs heures pour quelques giga-octets. Un test de débit de la connexion (speedtest-cli) confirmait pourtant 397 Mbit/s en envoi (upload), soit environ 47 Mo/s. Le débit réel était donc mille fois inférieur à ce que la connexion permettait.
Les fausses pistes (et pourquoi elles n’ont pas suffi)
Augmenter le parallélisme. Première réaction logique : monter --transfers et --checkers, et supprimer la limite --tpslimit. Le débit a un peu progressé (jusqu’à 1,5 Mio/s par moments), mais restait très instable, avec des chutes à quelques kilo-octets par seconde et des ETA remontant parfois à plusieurs semaines.
--drive-chunk-size. Ce paramètre découpe les fichiers volumineux en blocs pour accélérer leur envoi vers Google Drive. Sur le papier, ça semble pertinent. En pratique, il ne s’applique qu’aux fichiers dépassant --drive-upload-cutoff (8 Mo par défaut) : en dessous, rclone envoie le fichier en un seul appel. Pour un lot de dizaines de milliers de petits fichiers (quelques centaines de kilo-octets en moyenne), ce réglage n’a strictement aucun effet.
Changer de machine pour plus de bande passante. L’hypothèse suivante : et si le goulot d’étranglement venait de la connexion du mini PC ? Un test sur Google Cloud Shell (un terminal Linux temporaire fourni gratuitement par Google, accessible depuis un navigateur) a permis de vérifier. Sur un fichier unique volumineux, le débit obtenu (1,5 Mio/s) n’était pas meilleur que ce qu’on avait déjà. La bande passante n’était donc pas non plus en cause.
Le vrai diagnostic
rclone copy entre deux services cloud distincts n’est pas un transfert serveur à serveur : chaque fichier est téléchargé depuis la source puis envoyé vers la destination, en passant par la machine qui exécute la commande. Avec des dizaines de milliers de petits fichiers, chaque aller-retour compte, et l’API de Dropbox s’est révélée nettement plus sensible à la concurrence que celle de Google Drive. Les recommandations généralement admises pour Dropbox vont d’ailleurs à l’inverse de ce qu’on avait tenté : réduire la concurrence (2 à 3 transferts, 4 vérificateurs), pas l’augmenter.
Un signal confirmait cette hypothèse : des erreurs sporadiques du type suivant, dans le journal (log) de transfert :
ERROR : chemin/vers/un/fichier: Failed to copy: failed to open source object: invalid character '<' looking for beginning of value
Cette erreur signifie que Dropbox a renvoyé une page HTML d’erreur au lieu de la réponse JSON attendue, un signe classique de sursollicitation de l’API.
La méthode qui a fonctionné : passer par un disque local
Plutôt que de faire transiter chaque fichier directement entre les deux services cloud, la solution a été de synchroniser d’abord Dropbox sur un disque dur externe (via le client Dropbox classique, sur un PC Windows ou macOS), puis de transférer ce disque vers Google Drive avec rclone, sans repasser par l’API Dropbox.
Étape 1 : synchroniser Dropbox sur un disque local
Rien de spécifique à rclone ici : il s’agit d’utiliser le client Dropbox habituel (application de bureau) pour synchroniser sélectivement les dossiers voulus sur un disque, idéalement externe pour ne pas saturer le disque principal.
Point de vigilance avant de désactiver ensuite la synchronisation Dropbox : le client Dropbox traite le contenu synchronisé comme un simple reflet du cloud. Décocher un dossier dans la synchronisation sélective supprime les fichiers correspondants en local, sans avertissement particulier. Il faut donc s’assurer que la copie de sécurité (le disque externe, dans ce cas) est bien complète et vérifiée avant de toucher à quoi que ce soit côté Dropbox.
Étape 2 : monter le disque sur le serveur Linux
Cette commande liste les périphériques de stockage connectés, pour repérer le nouveau disque (généralement /dev/sdX, où X est une lettre).
Vérifie le système de fichiers du disque. Pour un disque formaté sous Windows, ce sera le plus souvent ntfs.
sudo apt install ntfs-3g
sudo mkdir -p /mnt/disque-externe
sudo mount /dev/sda1 /mnt/disque-externe
Si le disque n’a pas été démonté proprement avant d’être débranché (ça arrive), un message de ce type peut apparaître au montage :
The disk contains an unclean file system (0, 0).
The file system wasn't safely closed on Windows. Fixing.
Pas d’inquiétude : c’est le mécanisme de correction automatique de ntfs-3g, qui répare les petites incohérences avant de monter le disque.
Étape 3 : exclure ce qui ne doit pas partir vers le cloud
Avant de tout copier, il vaut mieux vérifier le contenu à la racine du disque. Il n’est pas rare d’y trouver des fichiers isolés qui n’ont rien à faire dans une migration cloud : mots de passe en clair, clés privées, bases de données de gestionnaire de mots de passe. Un fichier de filtre permet d’exclure ce type d’éléments proprement :
cat > /home/user/exclude-disque-externe.txt << 'EOF'
/$RECYCLE.BIN/**
/System Volume Information/**
/.dropbox
/.dropbox.cache/**
/.dropbox.device
/desktop.ini
/cle-ssh-ancienne.pem
/mots-de-passe.kdbx
EOF
Chaque ligne commençant par / cible un élément à la racine du dossier source, ** couvrant tout le contenu d’un dossier.
Étape 4 : transférer vers Google Drive
nohup rclone copy /mnt/disque-externe gdrive:/NOUVEAU-DOSSIER --exclude-from /home/user/exclude-disque-externe.txt --transfers 12 --checkers 16 --fast-list --log-file=/home/user/rclone-disque-externe.log &
Différence notable avec la tentative initiale : la concurrence est ici volontairement élevée (12 transferts, 16 vérificateurs), parce que la destination est Google Drive, qui tolère bien mieux ce type de charge que Dropbox. Le débit obtenu avec cette méthode a dépassé 2 Mio/s en continu, contre 79 à 143 KiB/s lors des essais directs Dropbox vers Google Drive, soit un facteur supérieur à 15.
Le nohup ... & en début de commande permet de fermer la session SSH ou d’éteindre le poste depuis lequel elle a été lancée, sans interrompre le transfert sur le serveur.
Étape 5 : vérifier l’intégrité du transfert
rclone check /mnt/disque-externe gdrive:/NOUVEAU-DOSSIER --exclude-from /home/user/exclude-disque-externe.txt --one-way --fast-list
--fast-list réduit fortement le nombre de requêtes nécessaires pour parcourir l’arborescence de destination, un point important : sans cette option, la vérification d’un grand nombre de dossiers peut elle-même déclencher une limitation de l’API Google (erreur 403 Quota exceeded, avec la mention RATE_LIMIT_EXCEEDED). Ce paramètre fonctionne côté Google Drive, mais pas côté Dropbox, qui ne le prend pas en charge (rclone l’ignore silencieusement s’il est utilisé sur un remote Dropbox).
Résultat attendu en cas de succès :
NOTICE: Google drive root 'NOUVEAU-DOSSIER': 0 differences found
NOTICE: Google drive root 'NOUVEAU-DOSSIER': 55653 matching files
Deux pièges annexes, utiles à connaître
Un dossier de destination qui n’est pas à la racine attendue. Si le remote gdrive: a été configuré pour un autre usage au préalable (une sauvegarde automatisée, par exemple), il peut pointer vers un sous-dossier précis plutôt que vers la racine réelle du Drive, via un paramètre caché nommé root_folder_id. Un dossier créé avec gdrive:/MonDossier peut alors atterrir plusieurs niveaux plus bas que prévu, invisible à première vue dans l’interface web. Pour vérifier :
rclone config show gdrive
La présence d’une ligne root_folder_id confirme ce comportement.
Deux configurations rclone distinctes, deux dossiers distincts. Autoriser rclone sur deux machines différentes (un serveur et Cloud Shell, par exemple) crée deux configurations indépendantes. Si elles ne pointent pas vers le même compte Google, ou si l’une a un root_folder_id différent de l’autre, un même nom de dossier de destination peut désigner deux emplacements complètement différents. Google Drive autorisant les doublons de noms, l’interface web peut alors sembler afficher un contenu incohérent selon le moment où elle est consultée. En cas de doute, mieux vaut vérifier directement avec rclone lsd et rclone size plutôt que de se fier au rendu de l’interface, qui peut aussi simplement mettre du temps à se rafraîchir.
Ce qu’on ferait différemment en repartant de zéro
- Mesurer la structure du contenu avant de choisir une méthode (
rclone size, rclone lsd) : beaucoup de petits fichiers oriente d’emblée vers un passage par disque local, peu de fichiers volumineux se prête bien à un transfert direct.
- Vérifier le
root_folder_id du remote gdrive: avant le premier transfert.
- Protéger systématiquement toute commande longue avec
nohup dès le premier lancement, pas après une mauvaise surprise.
- Exclure les fichiers sensibles ou indésirables avant de copier, pas après avoir découvert le mélange.
- Toujours vérifier avec
rclone check --fast-list en fin de transfert, jamais se contenter d’une comparaison de volumes ou de comptage de fichiers.
Pour aller plus loin
Cet article fait partie de la série projets Ubuntu, qui documente les projets techniques menés sur mon infrastructure Linux personnelle.
par Anne-Laure DELPECH | 3 Août 2026 | Domotique & Maison connectée
Tu veux recevoir une alerte si une porte s’ouvre chez toi pendant ton absence, avec une photo prise automatiquement par ta caméra ? Voici comment mettre en place ce système avec Home Assistant, des capteurs Zigbee et l’application Companion sur Android.
Cet article fait partie de la série Domotique avec Home Assistant.
Prérequis : Home Assistant installé et accessible depuis l’extérieur via une URL sécurisée (https), Zigbee2MQTT opérationnel, application Home Assistant Companion installée sur ton téléphone Android, service d’envoi d’email déjà configuré dans HA (voir Détecter une coupure de courant avec Home Assistant).
Les capteurs d’ouverture de porte
Les capteurs d’ouverture Zigbee doivent être appairés et visibles dans Home Assistant avant de commencer. Si ce n’est pas encore fait, consulte l’article Étendre son réseau Zigbee dans Home Assistant qui couvre l’appairage et le maillage Zigbee.
Une fois appairés, chaque capteur expose une entité de type binary_sensor dans HA. Pour retrouver leurs identifiants exacts, va dans Paramètres > Appareils et services > Entités et filtre sur « contact ». Tu obtiendras des identifiants de la forme :
binary_sensor.ouverture_porte_a_garage_cote_nord_contact
binary_sensor.ouverture_porte_b_garage_cote_sud_contact
binary_sensor.ouverture_porte_c_entree_nord_contact
binary_sensor.ouverture_porte_d_vers_garage_contact
Note : certains capteurs bon marché (comme les MOES ZG-1027L utilisés ici) mesurent aussi la luminosité en plus de l’ouverture. Les deux fonctions coexistent sans se gêner – l’entité contact reste bien celle qui détecte l’ouverture.
Créer le groupe de capteurs
Plutôt que de surveiller chaque capteur individuellement dans l’automatisation, on les regroupe dans un seul capteur virtuel. Ce groupe passe à « activé » dès qu’une seule porte s’ouvre, et revient à « désactivé » quand toutes sont fermées. Ajouter une nouvelle porte plus tard se résume à ajouter une ligne dans ce groupe.
Va dans Paramètres > Appareils et services > Entrées, clique sur + Créer une entrée, puis choisis Groupe > Groupe binaire.
- Nom :
Groupe ouvertures surveillées
- Membres : ajoute tes capteurs d’ouverture
- Option « Toutes les entités » : désactivée (logique « au moins un »)
Enregistre. HA crée automatiquement l’entité binary_sensor.groupe_ouvertures_surveillees.
Détecter la présence par téléphone
Créer l’entité Personne
Dans HA, va dans Paramètres > Personnes, crée une entrée pour chaque personne à suivre et associe-lui le téléphone correspondant. HA crée automatiquement une entité person.personne_1 qui passe à home ou not_home selon la position du téléphone.
Configurer l’application Companion
La détection de présence ne fonctionne correctement que si l’application est bien configurée. Deux points sont critiques.
L’URL du serveur : l’app doit pouvoir joindre HA aussi bien depuis le réseau local que depuis l’extérieur. Dans l’app, va dans ≡ > Paramètres > Companion app > Serveur et configure :
- URL de Home Assistant :
https://ha.ton-domaine.com (ton URL externe)
- URL de connexion interne :
http://192.168.x.x:8123 (l’IP locale de ton mini PC)
Si seule l’IP locale est renseignée, le téléphone perd le contact avec HA dès qu’il quitte le Wi-Fi maison et ne remonte plus aucune donnée – y compris sa position.
Les capteurs de localisation : dans ≡ > Paramètres > Companion app > Capteurs > Capteurs de localisation, active :
- Localisation en arrière-plan
- Zone de localisation
Sans ces deux options, HA ne reçoit aucune information de position.
Dans les paramètres Android, vérifie aussi que l’app Home Assistant dispose de la permission de localisation réglée sur « Toujours autoriser », et que l’optimisation de batterie est désactivée pour cette app.
Le capteur Wi-Fi comme filet de sécurité
La détection GPS peut être lente ou imprécise selon les conditions. On ajoute donc un deuxième critère : si le téléphone n’est plus connecté au Wi-Fi maison, on considère la personne comme absente.
L’entité à utiliser est sensor.telephone1_wi_fi_connection (remplace par l’identifiant correspondant à ton téléphone). Sa valeur est le nom du réseau Wi-Fi connecté (par exemple MON_RESEAU_WIFI) quand tu es à la maison, et <not connected> quand tu es dehors.
Pour activer ce capteur, va dans Paramètres > Appareils et services > Entités, recherche ton téléphone et active l’entité « Wi-Fi connection » si elle est désactivée.
L’automatisation
L’automatisation se déclenche quand le groupe de capteurs passe à « ouvert », à condition qu’au moins l’une des deux conditions suivantes soit vraie : person.personne_1 est not_home, ou le Wi-Fi du téléphone n’est pas le réseau maison.
Elle prend alors un snapshot de la caméra avec un nom horodaté, puis envoie un email avec la photo en pièce jointe.
Note sur la caméra : cette configuration fonctionne avec une caméra intégrée dans HA via l’intégration Tuya. Cette intégration cloud est limitée – elle ne permet pas l’enregistrement local continu ni la gestion avancée des flux vidéo. Le snapshot (photo statique au moment du déclenchement) est la seule action fiable disponible depuis HA avec ce type de caméra.
Le snapshot est sauvegardé dans le dossier /media du container Home Assistant. Ce dossier doit être mappé explicitement dans le docker-compose.yml de Portainer :
volumes:
- /home/USER/docker/home-assistant/config:/config
- /home/USER/docker/home-assistant/media:/media
- /etc/localtime:/etc/localtime:ro
- /run/dbus:/run/dbus:ro
Crée le dossier sur le mini PC avant de redémarrer le container :
mkdir /home/USER/docker/home-assistant/media
Va dans Paramètres > Automatisations, clique sur + Créer une automatisation, choisis Créer une automatisation vide, puis passe en mode YAML et colle le code suivant :
alias: "[home AL] Alerte ouverture en absence"
description: >-
Alerte si une porte s'ouvre alors qu'aucune personne autorisée n'est à la
maison. Automatisation : alerte_ouverture_absence_v2
triggers:
- entity_id: binary_sensor.groupe_ouvertures_surveillees
to: "on"
trigger: state
conditions:
- condition: or
conditions:
- condition: state
entity_id: person.personne_1
state: "not_home"
- condition: not
conditions:
- condition: state
entity_id: sensor.telephone1_wi_fi_connection
state: "MON_RESEAU_WIFI"
actions:
- variables:
snapshot_file: >
/media/alerte_ouverture_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg
- action: camera.snapshot
data:
filename: "{{ snapshot_file }}"
target:
entity_id: camera.ma_camera
- action: notify.email_alertes
data:
title: "[home AL] Ouverture détectée en absence"
message: >
Une porte ou fenêtre surveillée vient de s'ouvrir alors qu'aucune
personne autorisée n'est détectée à la maison.
Heure : {{ now().strftime('%d/%m/%Y à %H:%M:%S') }}.
(Automatisation : alerte_ouverture_absence_v2)
data:
images:
- "{{ snapshot_file }}"
mode: single
Adapte les identifiants suivants à ta configuration :
binary_sensor.groupe_ouvertures_surveillees : l’identifiant de ton groupe de capteurs
person.personne_1 : l’entité Personne de ton téléphone
sensor.telephone1_wi_fi_connection : le capteur Wi-Fi de ton téléphone
- MON_RESEAU_WIFI : le nom de ton réseau Wi-Fi maison
camera.ma_camera : l’identifiant de ta caméra
notify.email_alertes : le nom de ton service d’email
Tester
Pour tester sans sortir de chez toi, désactive le Wi-Fi de ton téléphone. L’entité sensor.telephone1_wi_fi_connection passe alors à <not connected>, ce qui satisfait la condition d’absence.
Ouvre ensuite une porte surveillée. Tu dois recevoir un email avec la photo en pièce jointe dans les secondes qui suivent, et un fichier horodaté doit apparaître dans /home/USER/docker/home-assistant/media/.
Pour vérifier le détail d’une exécution, va dans Paramètres > Automatisations > [home AL] Alerte ouverture en absence > Historique des exécutions.
Ajouter un deuxième téléphone
Pour surveiller un deuxième téléphone, ajoute son entité Personne et son capteur Wi-Fi dans les conditions. L’alerte ne se déclenche que si les deux personnes sont absentes :
conditions:
- condition: or
conditions:
- condition: and
conditions:
- condition: state
entity_id: person.personne_1
state: "not_home"
- condition: state
entity_id: person.personne_2
state: "not_home"
- condition: and
conditions:
- condition: not
conditions:
- condition: state
entity_id: sensor.telephone1_wi_fi_connection
state: "MON_RESEAU_WIFI"
- condition: not
conditions:
- condition: state
entity_id: sensor.telephone2_wi_fi_connection
state: "MON_RESEAU_WIFI"
Pour aller plus loin
Retrouve tous les articles de la série Domotique avec Home Assistant et de la série Projets Ubuntu.
par Anne-Laure DELPECH | 16 Juil 2026 | Domotique & Maison connectée
Tu veux savoir si une coupure de courant a eu lieu chez toi pendant ton absence, sans investir dans du matériel dédié ? Voici comment détecter une panne secteur avec des prises connectées Zigbee et Home Assistant, et recevoir une alerte par e-mail à chaque coupure et à chaque retour du courant.
Cet article s’inscrit dans la série Domotique avec Home Assistant et réutilise l’infrastructure mise en place dans la série Projets Ubuntu (Docker, Portainer, Zigbee2MQTT).
Le matériel utilisé
- Un mini PC Ubuntu, protégé par un onduleur, faisant tourner Home Assistant, Mosquitto et Zigbee2MQTT en containers Docker
- Un dongle Zigbee (Sonoff MG21)
- Cinq prises connectées Zigbee Nous A7Z, chacune alimentant un appareil différent de la maison (dont le réfrigérateur et le congélateur, dont la charge constante en fait de bons indicateurs)
- Un Chromecast Audio, connecté en Wi-Fi
L’idée : si tous ces appareils disparaissent du réseau en même temps, c’est qu’il n’y a plus de courant dans la maison. Le mini PC et sa box internet, eux, restent en ligne grâce à l’onduleur.
Demander à Zigbee2MQTT de vérifier activement le réseau
Sans réglage supplémentaire, une prise Zigbee débranchée, ou sans courant, ne passe jamais à indisponible : Zigbee2MQTT ne vérifie pas activement, par défaut, si un appareil alimenté sur secteur répond encore. Il se contente d’afficher la dernière valeur reçue, indéfiniment, tant qu’aucun nouveau message n’arrive. Pour une prise débranchée, ça veut dire un blocage permanent sur son dernier état connu.
Il faut donc activer la fonctionnalité de vérification de disponibilité de Zigbee2MQTT, qui va interroger (ping) les prises à intervalles réguliers pour confirmer qu’elles répondent encore.
Piège à éviter : ce réglage ne doit jamais être fait en éditant directement le fichier configuration.yaml de Zigbee2MQTT à la main. Zigbee2MQTT garde sa configuration active en mémoire et la réécrit sur le fichier physique à chaque redémarrage du container, ce qui efface silencieusement toute modification manuelle qui n’a pas été prise en compte par le service lui-même.
Le bon réglage passe par l’interface Web de Zigbee2MQTT :
- Va dans Paramètres > Disponibilité
- Active la case « Activer les vérifications de disponibilité »
- Dans la section Active, renseigne un
timeout (en minutes). Trois minutes est un bon compromis entre rapidité de détection et charge sur le dongle Zigbee
- Enregistre
Ce réglage global s’applique à tous les appareils Zigbee alimentés sur secteur (comme les prises), sans qu’il soit nécessaire d’activer quoi que ce soit individuellement pour chacune.
Une fois activé, débranche une prise et observe sa fiche dans le frontend de Zigbee2MQTT : après le délai configuré, elle passe à « Disponibilité : Désactivé ». Côté Home Assistant, l’entité switch correspondante passe à indisponible au même moment, ce qui fait automatiquement basculer le capteur de groupe.
Sécuriser l’envoi d’e-mail
Avant de configurer l’envoi d’alertes, un point de sécurité important : n’utilise jamais un compte e-mail personnel ou professionnel pour ce genre d’automatisation. Si ce compte est compromis un jour, l’impact reste limité à cette seule automatisation.
La bonne pratique consiste à créer un compte Gmail secondaire, dédié uniquement à l’envoi de ces alertes, avec un mot de passe d’application (pas le mot de passe du compte lui-même). Tout le détail de cette mise en place, avec l’activation de la double authentification (mais pas la création du mot de passe d’application), fait l’objet d’un article séparé : Sécuriser son compte Gmail avec la double authentification et Aegis Authenticator.
Une fois le mot de passe d’application créé, tous les identifiants (mot de passe, adresse expéditrice, adresse destinataire) sont stockés dans secrets.yaml, jamais directement dans configuration.yaml, pour ne jamais les exposer si tu partages ta configuration.
Dans /home/USER/docker/home-assistant/config/secrets.yaml :
notify_email_password: "le_mot_de_passe_application_16_caracteres"
notify_email_recipient: "adresse_destinataire@exemple.com"
notify_email_sender: "adresse_gmail_secondaire@exemple.com"
Dans /home/USER/docker/home-assistant/config/configuration.yaml, à la suite du contenu existant :
notify:
- name: email_alertes
platform: smtp
server: smtp.gmail.com
port: 587
timeout: 15
sender: !secret notify_email_sender
encryption: starttls
username: !secret notify_email_sender
password: !secret notify_email_password
recipient:
- !secret notify_email_recipient
Après modification, redémarre complètement le container Home Assistant : ce type de service (notify) n’est pas pris en compte par un simple rechargement de configuration.
Pour tester, va dans Outils de développement > Actions, cherche notify.email_alertes, renseigne un message, et lance l’action. Vérifie ta boîte de réception, y compris le dossier spam : un premier envoi automatisé depuis une adresse encore peu utilisée y atterrit parfois. Marquer le message comme « non spam » et ajouter l’adresse aux contacts résout le problème pour la suite.
Créer les capteurs template et le groupe
Le Chromecast Audio se comporte différemment des prises Zigbee : c’est un appareil Wi-Fi, dont Home Assistant détecte lui-même la perte de connexion en quelques secondes, sans configuration particulière à ajouter côté réseau. Son entité media_player passe directement à indisponible en cas de coupure.
Les prises Zigbee, elles, ont besoin d’un réglage supplémentaire détaillé dans la section suivante avant de se comporter de la même façon. On va surveiller la présence de chaque appareil sur le réseau Zigbee, pas sa consommation. Home Assistant expose pour chaque prise Zigbee une entité switch, qui représente son état de connexion. Tant que la prise répond, cette entité a une valeur (on ou off, selon que la prise est allumée ou éteinte manuellement). Si la prise ne répond plus, l’entité passe à indisponible.
On crée d’abord un capteur « template » par appareil : des capteurs virtuels qui traduisent l’état de chaque appareil en on ou off, selon qu’il est présent ou non sur le réseau. Puis on les regroupe en un seul capteur, qui résume l’état du secteur pour toute la maison.
À ajouter dans configuration.yaml :
template:
- binary_sensor:
- name: "Courant Prise A Bureau"
unique_id: courant_prise_a_bureau
device_class: power
state: >
{{ states('switch.prise_a_bureau_entree') != 'unavailable' }}
- name: "Courant Prise B Salon"
unique_id: courant_prise_b_salon
device_class: power
state: >
{{ states('switch.prise_b_salon_tel') != 'unavailable' }}
- name: "Courant Prise C Garage"
unique_id: courant_prise_c_garage
device_class: power
state: >
{{ states('switch.prise_c_garage_machine_a_laver') != 'unavailable' }}
- name: "Courant Chromecast Salon"
unique_id: courant_chromecast_salon
device_class: power
state: >
{{ states('media_player.salon') != 'unavailable' }}
- name: "Courant Prise D Frigo"
unique_id: courant_prise_d_frigo
device_class: power
state: >
{{ states('switch.prise_d_frigo') != 'unavailable' }}
- name: "Courant Prise E Congélateur"
unique_id: courant_prise_e_congelateur
device_class: power
state: >
{{ states('switch.prise_e_congelateur') != 'unavailable' }}
binary_sensor:
- platform: group
name: "Courant Secteur Maison"
unique_id: courant_secteur_maison
entities:
- binary_sensor.courant_prise_a_bureau
- binary_sensor.courant_prise_b_salon
- binary_sensor.courant_prise_c_garage
- binary_sensor.courant_chromecast_salon
- binary_sensor.courant_prise_d_frigo
- binary_sensor.courant_prise_e_congelateur
Remplace switch.prise_a_bureau_entree et les autres par les identifiants exacts de tes propres prises. Tu les trouves dans Outils de développement > États, en filtrant sur switch..
Le groupe fonctionne en logique « au moins un » : il reste à on tant qu’un seul des appareils listés est présent sur le réseau, et ne passe à off que si tous sont indisponible en même temps. C’est ce qui permet de distinguer une vraie coupure générale d’un simple appareil débranché ou en panne.
Pour ajouter une prise supplémentaire plus tard, il suffit de dupliquer un bloc de capteur template avec le bon identifiant, et d’ajouter la ligne correspondante dans entities: du groupe. Rien d’autre à modifier : ni le service notify, ni les automatisations, qui s’appuient uniquement sur le capteur de groupe.
Activer le ping de disponibilité sur Zigbee2MQTT
Sans réglage supplémentaire, une prise Zigbee débranchée ne passe jamais à indisponible : Zigbee2MQTT ne vérifie pas activement, par défaut, si un appareil alimenté sur secteur répond encore. Il se contente d’afficher la dernière valeur reçue, indéfiniment, tant qu’aucun nouveau message n’arrive. Pour une prise débranchée, ça veut dire un blocage permanent sur son dernier état connu.
Il faut donc activer la fonctionnalité de vérification de disponibilité de Zigbee2MQTT, qui va interroger (ping) les prises à intervalles réguliers pour confirmer qu’elles répondent encore.
Piège à éviter : ce réglage ne doit jamais être fait en éditant directement le fichier configuration.yaml de Zigbee2MQTT à la main. Zigbee2MQTT garde sa configuration active en mémoire et la réécrit sur le fichier physique à chaque redémarrage du container, ce qui efface silencieusement toute modification manuelle qui n’a pas été prise en compte par le service lui-même.
Le bon réglage passe par l’interface Web de Zigbee2MQTT :
- Va dans Paramètres > Disponibilité
- Active la case « Activer les vérifications de disponibilité »
- Dans la section Active, renseigne un
timeout (en minutes). Trois minutes est un bon compromis entre rapidité de détection et charge sur le dongle Zigbee
- Enregistre
Ce réglage global s’applique à tous les appareils Zigbee alimentés sur secteur (comme les prises), sans qu’il soit nécessaire d’activer quoi que ce soit individuellement pour chacune.
Une fois activé, débranche une prise et observe sa fiche dans le frontend de Zigbee2MQTT : après le délai configuré, elle passe à « Disponibilité : Désactivé ». Côté Home Assistant, l’entité switch correspondante passe à indisponible au même moment, ce qui fait automatiquement basculer le capteur de groupe.
Les automatisations
Deux automatisations : une pour signaler le début d’une coupure, une pour signaler le retour du courant. Toutes deux intègrent un délai de 30 secondes avant de se déclencher, pour éviter une alerte sur une micro-coupure sans conséquence.
À ajouter dans /home/USER/docker/home-assistant/config/automations.yaml :
- id: alerte_debut_panne_courant
alias: "Alerte début de panne de courant"
trigger:
- platform: state
entity_id: binary_sensor.courant_secteur_maison
to: "off"
for:
seconds: 30
action:
- service: notify.email_alertes
data:
title: "[home ALD] Coupure de courant détectée"
message: >
Une coupure de courant a été détectée à {{ now().strftime('%H:%M:%S') }}.
Ce mail a été généré automatiquement par Home Assistant d'Anne-Laure, suite à l'automatisation id: alerte_debut_panne_courant.
- id: alerte_fin_panne_courant
alias: "Alerte fin de panne de courant"
trigger:
- platform: state
entity_id: binary_sensor.courant_secteur_maison
to: "on"
for:
seconds: 30
action:
- service: notify.email_alertes
data:
title: "[home ALD] Retour du courant"
message: >
Le courant est revenu à {{ now().strftime('%H:%M:%S') }}.
Ce mail a été généré automatiquement par Home Assistant d'Anne-Laure, suite à l'automatisation id: alerte_fin_panne_courant.
Deux détails utiles à reproduire, indépendamment du sujet de l’automatisation :
- Un préfixe cohérent dans le titre (ici
[home ALD]) permet de créer facilement un filtre ou une étiquette dans ta messagerie pour regrouper toutes les alertes de ta maison connectée
- Une ligne de traçabilité dans le corps du message, citant l’identifiant de l’automatisation à l’origine de l’envoi, facilite le diagnostic si tu dois un jour retrouver quelle automatisation a déclenché quel e-mail
Après modification, recharge les automatisations (Outils de développement > YAML > Recharger les automatisations), ou redémarre complètement Home Assistant si tu préfères.
Bilan des tests réels
Le test décisif consiste à débrancher réellement les appareils concernés, plutôt que de forcer un état depuis l’interface, pour valider le comportement de bout en bout.
En débranchant une seule prise, rien ne se passe : le groupe reste alimenté grâce aux autres appareils encore présents sur le réseau, exactement le comportement attendu. En débranchant tous les appareils, le capteur de groupe passe à indisponible, et l’e-mail de coupure arrive environ 30 secondes après la détection effective par Zigbee2MQTT, conformément au délai configuré dans l’automatisation.
Au rebranchement, le Chromecast est détecté quasiment tout de suite (c’est un appareil Wi-Fi). Les prises Zigbee, elles, réapparaissent en quelques minutes au maximum, le temps que Zigbee2MQTT confirme leur présence lors de son prochain cycle de vérification.
Pour aller plus loin
Retrouve tous les articles de la série Domotique avec Home Assistant et de la série Projets Ubuntu.
par Anne-Laure DELPECH | 16 Juil 2026 | Linux & Sécurité
J’ai récemment entrepris de sécuriser l’ensemble de mes comptes en ligne – Google, stockage cloud, messagerie. Ce que j’ai découvert en chemin m’a surprise : ma configuration de départ, que je croyais raisonnable, était en réalité fragile à plusieurs endroits. Cet article retrace la démarche et les principes qui m’ont guidée. Je ne peux pas en détailler toutes les étapes comme je le fais habituellement – la nature même du sujet impose de ne pas trop exposer ses choix techniques. Mais les principes, eux, sont utiles à partager.
Mon point de départ – et ses problèmes
Mon point de départ : un compte Google professionnel et un compte Google personnel, chacun configuré avec un mot de passe plutôt solide et l’adresse de l’autre pour une éventuelle récupération.
Le seul point positif : les mots de passe étaient stockés dans un gestionnaire de mots de passe.
Ce système posait plusieurs problèmes :
- Circularité des deux comptes : si quelqu’un prend le contrôle de l’un des deux comptes, il accède immédiatement à l’autre via la récupération. Les deux comptes tombent ensemble.
- Absence de second verrou : si quelqu’un accédait à mon mot de passe, il pouvait accéder à mon compte puis à l’autre. La solution : mettre en place la double authentification avec une application indépendante de toute plateforme, qui fonctionne sans connexion réseau.
- un ordinateur portable avec des disques durs non chiffrés, que n’importe qui aurait pu lire.
- si je n’avais plus accès à mon téléphone, je me retrouvais dépourvue de toute information pour agir.
Voici les solutions adoptées pour résoudre successivement ces problèmes.
Limiter le « blast radius »
Il faut tout faire pour que la compromission d’un seul compte n’ait pas d’impact sur les autres. C’est le principe de limitation du « blast radius » – le rayon de l’explosion.
On évite donc les adresses de récupération croisées : si l’adresse A est l’adresse de récupération de l’adresse B, alors l’adresse de récupération de l’adresse A doit être une adresse C indépendante – pas l’adresse B. Sinon, si quelqu’un prend le contrôle de l’un des deux comptes, il accède immédiatement à l’autre. Les deux tombent ensemble.
Pour les mêmes raisons, les mots de passe des différentes adresses doivent être différents, et on ne stocke pas de données sensibles dans un compte secondaire – les mots de passe d’autres comptes, par exemple.
La double authentification : choisir une application indépendante
Le guide complet pour activer la 2FA sur un compte Google avec Aegis Authenticator est disponible ici : Sécuriser un compte Gmail avec la double authentification et Aegis Authenticator.
Mais cette solution crée une nouvelle dépendance : si je perdais l’accès à mon téléphone (perte, vol, casse), je perdais l’accès à tous les comptes protégés par l’application d’authentification. Les codes de secours sont la réponse à ce problème.
Les codes de secours : prévoir la perte du téléphone
Les codes de secours donnent accès aux comptes protégés même si le téléphone ne peut plus servir : des codes à usage unique, générés par chaque service au moment de l’activation de la 2FA, qui te permettent de te connecter sans téléphone. Chaque code ne peut être utilisé qu’une seule fois.
Quelques principes pour les stocker correctement :
Les copies doivent être indépendantes les unes des autres. Si tous tes codes de secours sont sur Google Drive et que tu perds l’accès à ton compte Google, tu perds aussi les codes qui auraient pu te permettre de le récupérer. Utilise au moins un service de stockage indépendant de Google pour cette copie.
Les copies doivent être géographiquement séparées. Une copie à domicile et une copie ailleurs – chez une personne de confiance, dans un coffre, sur un service cloud accessible depuis n’importe où. Un incendie ou un cambriolage ne doit pas effacer toutes tes copies en même temps.
Une copie papier reste utile. Dans un scénario où tu n’as plus accès à aucun appareil ni à aucun service en ligne, un bout de papier chez une personne de confiance peut être ce qui te permet de tout récupérer.
Note que tous les services ne proposent pas de codes de secours. C’est un critère à prendre en compte : un service qui gère des données importantes et ne propose pas de codes de secours t’expose à une perte d’accès définitive si tu perds ton téléphone.
Chiffrer son ordinateur portable
Un portable volé, c’est potentiellement toutes tes données exposées – y compris les sessions ouvertes, les mots de passe en cache dans les navigateurs, les fichiers temporaires. Le chiffrement du disque rend ces données illisibles sans le bon mot de passe, même si quelqu’un retire le disque et le branche ailleurs.
Sur Windows, BitLocker remplit ce rôle. Le guide complet est disponible ici : Chiffrer les disques de son ordinateur portable avec BitLocker.
Un point souvent négligé : si ton ordinateur a deux disques, chiffre les deux – en commençant par le disque qui contient Windows. Le disque système contient bien plus de données sensibles qu’il n’y paraît, même si tous tes fichiers personnels sont sur le second disque.
La personne de confiance et la procédure d’urgence
Tous les systèmes de récupération décrits jusqu’ici supposent que tu peux accéder à quelque chose : un service cloud, un gestionnaire de mots de passe, un appareil. Mais dans un scénario extrême – perte simultanée du téléphone, de l’ordinateur et de l’accès à internet – il faut un dernier filet.
Ce filet, c’est une personne de confiance à qui tu as remis les informations minimales pour t’aider à récupérer l’accès à tes comptes essentiels : codes de secours imprimés, procédure claire expliquant quoi faire et dans quel ordre.
Cette procédure doit être rédigée pour quelqu’un qui n’est pas technicien – elle doit être compréhensible et actionnable sans contexte. Elle doit aussi prévoir un moyen de vérifier l’identité de la personne qui appelle, pour éviter qu’un attaquant ne se fasse passer pour toi.
Les informations les plus sensibles – mots de passe, clés de récupération, informations bancaires – méritent d’être séparées du reste, dans une enveloppe scellée distincte, avec une recommandation de la conserver dans un coffre.
Ce que cette démarche ne couvre pas
Cette démarche se concentre sur les comptes en ligne et l’ordinateur portable. Elle ne couvre pas :
- La sécurisation des appareils mobiles (code PIN, chiffrement Android ou iOS)
- La gestion des mots de passe eux-mêmes – un gestionnaire de mots de passe (1Password, Bitwarden, Dashlane ou KeePass) est un prérequis implicite à tout ce qui est décrit ici
- La sécurité du réseau domestique (routeur, Wi-Fi)
- Les sauvegardes de données – un sujet distinct, tout aussi important
Ces sujets ont chacun leur propre complexité et mériteraient des articles dédiés.
Pour aller plus loin
par Anne-Laure DELPECH | 16 Juil 2026 | Linux & Sécurité
Un ordinateur portable volé, c’est d’abord des données personnelles exposées. BitLocker, intégré à Windows, chiffre le contenu de tes disques pour les rendre illisibles sans le bon mot de passe – même si quelqu’un retire le disque dur et le branche sur un autre ordinateur.
Ce que BitLocker protège – et ce qu’il ne protège pas
BitLocker protège les données au repos : quand l’ordinateur est éteint ou verrouillé, le contenu des disques est illisible sans la clé de déchiffrement. Un voleur qui récupère ton portable éteint ne peut rien faire des données.
En revanche, BitLocker ne protège pas un ordinateur allumé et déverrouillé. Si quelqu’un accède à ta session Windows ouverte, il accède aussi à tes fichiers. Le chiffrement du disque ne remplace pas un mot de passe de session solide et l’habitude de verrouiller son écran quand on s’éloigne.
Prérequis
BitLocker est disponible sur Windows 10 et Windows 11 en versions Pro, Entreprise et Éducation. Il n’est pas disponible sur les versions Home.
Pour vérifier ta version de Windows : clique droit sur le menu Démarrer > « Système » > regarde la ligne « Édition Windows ».
Il te faut aussi les droits administrateur sur l’ordinateur pour activer BitLocker.
Pourquoi commencer par le disque qui contient Windows (C:)
Même si tu ranges tous tes fichiers personnels sur un second disque, ton disque C: contient bien plus de données sensibles qu’il n’y paraît :
- Les mots de passe enregistrés dans les navigateurs (Chrome, Firefox, Edge) sont stockés sur C:
- Les sessions de messagerie et leurs jetons de connexion sont sur C: – un accès à ce disque peut suffire à ouvrir tes boîtes mail sans connaître tes mots de passe
- Tout ce qui passe par le dossier Téléchargements atterrit par défaut sur C:
- Windows utilise C: comme mémoire temporaire : si tu ouvres un document confidentiel depuis D:, Windows peut en copier des fragments sur C:
Il faut donc toujours commencer par chiffrer C:, et ensuite seulement s’occuper des autres disques.
Chiffrer le disque principal (C:)
Ouvrir le gestionnaire BitLocker
Dans le menu Démarrer, tape « BitLocker » et clique sur « Gérer BitLocker ». Tu arrives sur une page qui liste tous les disques de ton ordinateur.
Activer BitLocker sur C:
Clique sur « Activer BitLocker » à côté du lecteur C:. Windows lance un assistant en plusieurs étapes.
Sauvegarder la clé de récupération
C’est l’étape la plus importante. Windows te propose plusieurs options pour sauvegarder la clé de récupération – un code à 48 chiffres qui te permet de déverrouiller le disque si quelque chose se passe mal au démarrage.
Si ton ordinateur est lié à un compte Microsoft, tu peux choisir « Enregistrer sur mon compte Microsoft » : la clé sera accessible depuis account.microsoft.com > Appareils > Clés de récupération BitLocker.
Si ton ordinateur n’est pas lié à un compte Microsoft (ce qui est tout à fait possible et même recommandé pour des raisons de confidentialité), cette option n’est pas disponible. Dans ce cas :
- Choisis « Enregistrer dans un fichier » et sauvegarde ce fichier sur un emplacement extérieur au disque C: en cours de chiffrement – une clé USB, un autre disque, ou un dossier cloud accessible depuis un autre appareil
- Tu peux aussi choisir « Imprimer la clé de récupération » pour en avoir une copie papier
Note l’identifiant de clé affiché (une suite de caractères du type 85CDA21F-...) : il te permettra de retrouver la bonne clé si tu en as plusieurs. Conserve cette clé précieusement dans un endroit sûr, séparé de l’ordinateur – idéalement chez une personne de confiance ou dans un gestionnaire de mots de passe accessible hors ligne.
Choisir quoi chiffrer
Windows te demande si tu veux chiffrer uniquement l’espace utilisé ou tout le disque. Choisis « Chiffrer tout le lecteur » si l’ordinateur est utilisé depuis un moment – c’est plus long mais plus complet.
Choisir le mode de chiffrement
Choisis « Nouveau mode de chiffrement » si ton ordinateur tourne sous Windows 10 ou 11 – c’est le mode le plus récent et le plus solide.
Lancer le chiffrement
Clique sur « Démarrer le chiffrement ». Le processus se lance immédiatement en arrière-plan – tu peux continuer à utiliser l’ordinateur pendant ce temps. La durée dépend de la taille du disque et peut aller de quelques minutes à plusieurs heures.
Windows te demandera peut-être de redémarrer pour terminer le chiffrement.
Chiffrer un second disque (D:)
Une fois le disque C: chiffré, retourne dans le gestionnaire BitLocker et clique sur « Activer BitLocker » à côté de ton second disque.
Cette fois, Windows te demande de définir un mot de passe pour déverrouiller ce disque. Choisis un mot de passe solide et note-le dans ton gestionnaire de mots de passe.
Sauvegarde la clé de récupération de ce second disque – elle est différente de celle du disque C:. Conserve-la avec le même soin, en indiquant clairement de quel disque elle provient.
Déverrouillage automatique
À la fin de la procédure, BitLocker peut te proposer d’activer le déverrouillage automatique de ce disque quand tu ouvres une session Windows. Si cette option est disponible, coche-la : le disque D: s’ouvrira automatiquement à chaque démarrage, sans que tu aies à saisir son mot de passe.
Si cette option n’est pas proposée, tu devras saisir le mot de passe du disque D: à chaque démarrage, ou l’activer manuellement plus tard depuis le gestionnaire BitLocker.
Un point important : si le disque D: est un disque amovible ou s’il est séparé physiquement du disque C: (par exemple après un remplacement de disque), le déverrouillage automatique ne fonctionnera plus. Dans ce cas, tu auras besoin du mot de passe ou de la clé de récupération spécifique à ce disque pour y accéder.
Vérifier que tout fonctionne
Redémarre l’ordinateur. Si le démarrage se passe normalement et que tu accèdes à ta session Windows comme d’habitude, le chiffrement est en place et fonctionne correctement.
Pour confirmer : ouvre le gestionnaire BitLocker. Chaque disque chiffré doit afficher « BitLocker activé ».
Pour aller plus loin
BitLocker protège tes données en cas de vol physique de l’ordinateur. C’est une brique importante, mais elle s’inscrit dans une démarche de sécurisation plus large : mots de passe solides, double authentification sur tes comptes en ligne, sauvegardes régulières.
La double authentification est abordée en détail dans l’article Sécuriser un compte Gmail avec la double authentification et Aegis Authenticator.
Ces deux sujets font partie d’une démarche d’ensemble abordée dans l’article Sécuriser ses comptes en ligne : démarche d’ensemble.
Commentaires récents