Protect enregistre; Home Assistant donne du contexte
Une surveillance résidentielle fiable ne devrait pas dépendre d’un nuage pour enregistrer ce qui se passe à la porte. UniFi Protect conserve les vidéos sur la console locale et exécute aussi localement les fonctions de détection prises en charge. Home Assistant ajoute la logique : croiser un événement avec l’état de l’alarme, allumer une lumière, afficher une caméra ou envoyer une notification utile.
Cette séparation des rôles évite de transformer Home Assistant en enregistreur vidéo improvisé. Protect demeure responsable des flux, de la rétention et de la consultation des événements; Home Assistant consomme l’API et les flux RTSPS nécessaires aux tableaux de bord et automatisations. Une panne de Home Assistant ne doit donc pas arrêter l’enregistrement, et une panne Internet ne doit pas empêcher Protect de filmer localement.
L’objectif de ce guide est une architecture locale d’abord, segmentée et récupérable. Aucun port entrant n’est ouvert vers les caméras ou la console Protect. L’accès à distance passe par un service conçu pour ce rôle, et les notifications utilisent les points d’accès authentifiés de Home Assistant plutôt qu’un répertoire public.
Caméras UniFi ──> Console Protect / NVR ──> Enregistrements locaux
│
├── API locale + RTSPS ──> Home Assistant
│ ├── Tableaux de bord
│ ├── Automatisations
│ └── Notifications mobiles
│
Internet ──> Aucun accès entrant direct aux caméras ou au NVRDimensionner l’enregistrement avant les automatisations
Commencez par les besoins de preuve : quelles zones filmer, pendant combien de jours et avec quel niveau de détail? Le nombre de caméras, leur résolution, le débit, le mode d’enregistrement et la capacité des disques déterminent la rétention réelle. L’estimation du contrôleur est un point de départ; un essai avec les réglages de production permet de confirmer la croissance quotidienne.
Protect permet d’appliquer des périodes de rétention et, sur les versions compatibles, de conserver les images récentes en haute qualité puis de réduire la qualité des plus anciennes. Une vidéo rétrogradée ne retrouve pas ensuite sa qualité initiale. Les séquences importantes doivent donc être exportées avant l’expiration ou la réduction de qualité.
Prévoyez aussi l’alimentation. Une console, un commutateur PoE et Home Assistant soutenus par un onduleur peuvent continuer pendant une brève panne. Testez toutefois l’arrêt propre, le redémarrage et le retour des flux; une autonomie théorique ne remplace pas un exercice.
| Décision | Question à trancher | Validation pratique |
|---|---|---|
| Couverture | Entrées, garage, cour et zones privées à exclure | Vérifier le cadrage de jour, de nuit et sous la pluie |
| Rétention | Nombre de jours utile pour constater un incident | Mesurer la consommation réelle sur une semaine représentative |
| Mode | Continu, détections ou horaire | Simuler une journée occupée et une panne réseau |
| Qualité | Résolution, images/s et débit | Confirmer que visages et détails requis restent lisibles |
| Énergie | Console, stockage, réseau et Home Assistant sur UPS | Couper l’alimentation et chronométrer la reprise |
Séparer caméras, gestion et appareils personnels
Placez les caméras dans un VLAN dédié et gardez les interfaces de gestion sur un réseau d’administration. Le serveur Home Assistant peut vivre dans un VLAN de services : il initie les connexions nécessaires vers Protect, mais le VLAN des caméras ne reçoit pas pour autant un accès général vers les postes, le NAS ou les sauvegardes.
Pour l’adoption, Ubiquiti recommande le même VLAN entre les appareils Protect et la console. Une adoption inter-VLAN est possible dans certains scénarios, mais elle exige les ports et l’adresse de console appropriés. Le choix le plus simple consiste à adopter dans le segment prévu, puis à appliquer des règles explicites basées sur la référence de ports de la version déployée.
Évitez une liste copiée sans observation. Autorisez les flux par source et destination, activez les journaux de refus pendant le pilote et confirmez les connexions réelles. Les ports Protect évoluent avec les fonctions; une règle « caméras vers tous les réseaux privés » masque les dépendances au lieu de les documenter.
| Source | Destination | Politique de départ | But |
|---|---|---|---|
| Caméras | Console Protect | Autoriser seulement les flux Protect requis | Adoption, vidéo et état des appareils |
| Home Assistant | Console Protect | Autoriser HTTPS/API locale et RTSPS requis | Entités, événements, vignettes et vidéo |
| Poste d’administration | Protect et Home Assistant | Autoriser la gestion HTTPS | Configuration et dépannage |
| Caméras | DNS, NTP et mises à jour approuvés | Autoriser au besoin | Heure, résolution et cycle de vie |
| Caméras | Autres VLAN privés | Refuser et journaliser | Limiter les mouvements latéraux |
| Internet | Caméras et console | Refuser tout accès entrant | Éliminer l’exposition directe |
Créer une identité locale dédiée à Home Assistant
L’intégration n’utilise pas le compte Ubiquiti infonuagique. Dans la console UniFi OS accessible par son adresse locale, créez un utilisateur local réservé à Home Assistant et limitez-le à l’accès local. Ne réutilisez pas le compte d’administration quotidien ni son mot de passe.
Les permissions Protect déterminent les entités et les actions visibles dans Home Assistant. Le rôle Full Management donne la fonctionnalité complète, mais il accorde aussi des capacités sensibles. Si le besoin se limite à lire les caméras, les capteurs et les événements, commencez avec les droits minimaux compatibles, puis ajoutez une permission seulement lorsqu’une fonction précise l’exige.
Créez ensuite une clé API dans les paramètres d’intégration du plan de contrôle. La création de la clé demande actuellement un administrateur, mais la clé devrait appartenir à l’identité de service prévue. Conservez-la comme un secret, ne l’insérez pas dans un dépôt et révoquez-la lors d’un changement de serveur ou d’un incident. L’intégration exige UniFi Protect 7.1.0 ou une version plus récente et ne prend pas en charge les versions Early Access.
- Nommer clairement le compte, par exemple ha-protect, et documenter son propriétaire.
- Interdire l’accès infonuagique à ce compte local.
- Accorder seulement les caméras, événements et actions nécessaires.
- Créer une clé API distincte et enregistrer sa procédure de révocation.
- Garder un compte d’administration séparé pour les changements de configuration.
Ajouter l’intégration et valider les flux un par un
Dans Home Assistant, ajoutez UniFi Protect depuis Paramètres, Appareils et services. Indiquez l’adresse IP locale de la console, le compte local et la clé API. Utilisez une adresse stable réservée par DHCP ou configurée selon les recommandations de la plateforme; un nom DNS interne fonctionne aussi si sa résolution demeure disponible pendant une panne Internet.
Validez d’abord une caméra, un capteur de mouvement et un événement avant de créer des automatisations. Home Assistant consomme les flux RTSPS activés par l’API publique de Protect et choisit la qualité la plus élevée par défaut. Les flux moyen et faible existent comme entités désactivées : activez-les seulement si un tableau de bord ou un appareil à faible bande passante en a besoin.
Si un flux n’est pas disponible, l’intégration peut retomber sur des instantanés répétés, ce qui augmente la charge de la console. Un tableau de bord affichant plusieurs caméras en direct peut aussi consommer beaucoup de décodage et de réseau. Commencez avec une vue principale, utilisez des vignettes pour les autres caméras et ouvrez le direct à la demande.
| Contrôle | Résultat attendu | Si le test échoue |
|---|---|---|
| Connexion | Intégration chargée sans nouvelle authentification | Vérifier compte local, clé API, DNS et heure |
| Caméra | Entité disponible et image récente | Vérifier permission de la caméra et flux activé |
| Direct | RTSPS stable pendant plusieurs minutes | Vérifier pare-feu, MTU, qualité et charge du NVR |
| Événement | Mouvement ou détection remonte une seule fois | Vérifier type d’entité, attributs et disponibilité |
| Reprise | Entités reviennent après redémarrage du NVR | Examiner les journaux et l’ordre de démarrage |
Envoyer une notification avec une vignette protégée
Une notification utile dit quelle caméra a réagi et montre l’événement. L’intégration fournit des points d’accès mandataires pour les vignettes, vidéos et instantanés. Home Assistant signe les URL utilisées par les automatisations; la console Protect n’a donc pas besoin d’être exposée à Internet.
L’exemple suivant attend deux secondes pour laisser l’image d’événement se produire, puis transmet la vignette. Remplacez l’entité et le service mobile. Testez sur le téléphone verrouillé, en Wi-Fi et en réseau cellulaire. Si les notifications sont nombreuses, ajoutez ensuite une condition d’occupation, un horaire ou une temporisation plutôt que de désactiver les événements à la source.
Pour une pièce jointe conservée par Home Assistant, préférez la source média authentifiée. Le répertoire /www est servi publiquement sous /local et convient mal aux images de surveillance. Évitez aussi de recopier chaque événement sur le disque de Home Assistant : conservez seulement ce qui répond à une politique explicite.
alias: Mouvement à la porte avec image
description: Envoie la vignette Protect lorsqu’un mouvement commence
triggers:
- trigger: state
entity_id: binary_sensor.g4_instant_motion
from: "off"
to: "on"
actions:
- delay:
seconds: 2
- action: notify.mobile_app_votre_telephone
data:
title: "Mouvement à la porte"
message: "UniFi Protect a détecté un mouvement."
data:
image: >-
/api/unifiprotect/thumbnail/{{ config_entry_id(trigger.entity_id) }}/{{ trigger.to_state.attributes.event_id }}
mode: singleTransformer les détections en contexte, pas en décisions irréversibles
Les événements de personne, véhicule, colis ou plaque peuvent réduire le bruit, mais ils demeurent des observations probabilistes. Utilisez-les pour choisir un message, allumer une zone ou demander une confirmation. Ne déverrouillez jamais une porte ou un portail uniquement à partir d’une plaque, d’un visage ou d’un numéro NFC : une image, une plaque imprimée ou un identifiant copié peut tromper le mécanisme.
Une automatisation sensible devrait combiner plusieurs signaux indépendants et garder une action humaine. Par exemple : personne détectée à la porte, téléphone du résident présent, alarme désarmée et confirmation dans une notification actionnable. Même dans ce cas, l’ouverture doit expirer rapidement et produire un journal.
Préparez aussi les états indisponibles. Après un redémarrage, certains événements peuvent être rejoués ou changer d’état. Utilisez un délai maximal, vérifiez l’horodatage de l’événement et rendez les actions idempotentes : une deuxième exécution ne devrait jamais ouvrir deux fois, prolonger une minuterie sans limite ou envoyer une rafale de messages.
- Notification et éclairage : risque faible, automatisation directe raisonnable.
- Sirène ou appel : exiger plusieurs signaux et une fenêtre temporelle courte.
- Déverrouillage : confirmation humaine et second facteur de contexte.
- Suppression d’une vidéo : ne jamais automatiser à partir d’une détection.
- Mode vie privée : protéger le changement par des droits et un journal.
Accéder à distance sans publier les caméras
Ne transférez pas les ports des caméras, de Protect ou de Home Assistant directement sur le routeur. Pour Home Assistant, le service Home Assistant Cloud est l’option la plus simple pour la majorité des foyers; un VPN comme Tailscale ou un VPN sur le routeur convient aussi. Un mandataire inverse peut fonctionner, mais il exige TLS, une configuration correcte des mandataires de confiance, des mises à jour et une surveillance continue.
UniFi Site Manager établit la gestion à distance à l’aide de connexions sortantes, sans exiger de port entrant. Ubiquiti indique que les enregistrements demeurent sur la console locale et que les connexions distantes sont chiffrées de bout en bout. Cela ne remplace pas le contrôle des comptes : activez l’authentification multifacteur sur les comptes interactifs, retirez les anciens appareils et examinez les sessions.
Dans Home Assistant, activez aussi la MFA, utilisez un mot de passe unique et révoquez les jetons qui ne sont plus nécessaires depuis la page de sécurité du profil. La clé API Protect appartient au serveur, pas au téléphone; elle ne devrait jamais être utilisée comme raccourci d’accès distant.
| Méthode | Avantage | Responsabilité |
|---|---|---|
| Home Assistant Cloud | Aucun port de routeur à ouvrir | Protéger le compte et tester les notifications |
| VPN | Accès privé à plusieurs services | Maintenir les clés, routes et clients |
| Mandataire inverse | Contrôle fin du domaine et du TLS | Durcissement, mises à jour, en-têtes et journaux |
| UniFi Site Manager | Accès Protect sans port entrant | MFA, rôles et retrait des sessions |
Sauvegarder la configuration et archiver les preuves séparément
Une sauvegarde de configuration Protect accélère la reconstruction de la console, mais elle ne transporte pas les enregistrements vers une nouvelle console. Ubiquiti précise que les vidéos restent sur l’hôte d’origine et que la réutilisation des disques peut les reformater. Exportez donc les séquences importantes vers un emplacement protégé avant une migration, une intervention sur les disques ou l’expiration de la rétention.
Pour Home Assistant, configurez des sauvegardes automatiques vers au moins un emplacement indépendant et téléchargez la trousse d’urgence contenant la clé de chiffrement. Une copie chiffrée sur un NAS, un support hors ligne ou un espace infonuagique réduit le risque qu’une panne du même serveur emporte à la fois le système et sa sauvegarde.
Documentez deux procédures distinctes : restaurer l’automatisation et préserver une preuve vidéo. La première vise les tableaux de bord, secrets, appareils et scénarios; la seconde vise la chaîne de possession, l’horodatage et un fichier exporté lisible. Testez les deux sans effacer la production.
| Élément | Protection | Test |
|---|---|---|
| Configuration Protect | Sauvegarde automatique et copie hors console | Restaurer sur une plateforme de laboratoire compatible |
| Enregistrements courants | Rétention locale dimensionnée et état des disques | Retrouver un événement ancien et lire le clip |
| Séquences critiques | Export immédiat vers stockage protégé | Lire le fichier sur un autre appareil |
| Home Assistant | Sauvegardes chiffrées sur emplacement indépendant | Restaurer une sauvegarde récente en laboratoire |
| Clé de sauvegarde HA | Trousse d’urgence hors ligne | Confirmer qu’elle est accessible au propriétaire autorisé |
Recette de mise en service
Mettez le système en production par scénarios, pas seulement parce que toutes les entités sont vertes. Marchez devant chaque caméra de jour et de nuit, coupez Internet, redémarrez Home Assistant, redémarrez la console, simulez un téléphone absent et vérifiez la récupération d’un ancien événement. Une notification doit arriver au bon destinataire sans exposer une image à une URL publique.
Le bon résultat est simple à expliquer : Protect continue d’enregistrer localement; Home Assistant ajoute des réactions utiles; les caméras ne peuvent pas parcourir le réseau; l’accès distant n’ouvre pas le NVR; une panne ou un faux positif ne déclenche pas une action dangereuse. Conservez la matrice de flux, les comptes de service, la rétention et les tests avec la documentation de la maison.
- Confirmer l’heure, le DNS et les mises à jour sur Protect, Home Assistant et les caméras.
- Tester chaque zone de jour, de nuit et avec un mouvement réel.
- Valider le direct, la vignette, le clip et la fin d’un événement.
- Couper Internet et confirmer l’enregistrement local.
- Redémarrer Protect puis Home Assistant et surveiller la reprise.
- Tester les règles de pare-feu depuis un appareil du VLAN caméra.
- Révoquer un jeton de test et confirmer que l’accès cesse.
- Restaurer une sauvegarde et lire un clip exporté sur un autre appareil.
- Réviser les permissions, la rétention et les destinataires après tout changement majeur.