Créer une notification Home Assistant (avec miniature) depuis UniFi Protect via webhook

Depuis que j’utilise des caméras UniFi Protect, je voulais gérer mes propres alertes directement dans Home Assistant. Je vous propose ici une méthode simple pour créer une notification personnalisée via un webhook, avec une miniature intégrée issue de la caméra.
L’objectif de ce tutoriel est simple : recevoir une notification sur votre smartphone via Home Assistant avec une miniature (snapshot) lorsqu’un mouvement est détecté par une caméra UniFi Protect.
Pour générer la miniature, il y a 2 solutions : soit faire un snapshot directement depuis Home Assistant, soit utilisée celle qui est envoyée par UniFi dans le webhook (en base64). J’ai choisi de mon côté la deuxième solution (même si j’ai pas mal galéré !).
Pré-requis
Avant de démarrer, il vous faut :
- Une installation Home Assistant fonctionnelle
- Une ou plusieurs caméras UniFi Protect reliées à Home Assistant
- L’application mobile Home Assistant configurée avec les notifications push
- L’accès à l’interface UniFi Protect (Settings > Notifications > Webhook)
Étape 1 : créer la commande shell dans Home Assistant
Le principe ici est simple : lorsque UniFi envoie un webhook, Home Assistant va recevoir l’image encodée en base64. On va donc créer une commande shell pour la décoder et la sauvegarder dans un fichier local accessible. Dans votre fichier configuration.yaml, ajoutez ceci.
shell_command:
save_unifi_thumbnail: >
python3 -c 'import base64,sys;
d="{{ data }}";
d=d.split(",",1)[1] if d.startswith("data:image") else d;
open("/config/www/tmp/unifi_last.jpg","wb").write(base64.b64decode(d))'
On va venir créer une image temporaire dans le dossier /config/www/tmp/unifi_last.jpg. On utilise ce dossier pour que l’image soit accessible pour l’inclure dans la notification.
Étape 2 : automatisation webhook vers Home Assistant
Ensuite, on crée une automatisation qui va :
- Récupérer le webhook envoyé par UniFi Protect
- Exécuter la commande shell pour sauvegarder la miniature
- Envoyer la notification sur votre smartphone

Si vous souhaitez le YAML, voici le code. Pensez bien à mettre à jour les URLs pour accéder à votre fichier ainsi que le téléphone pour la notification.
alias: Notification - Personne devant la maison
triggers:
- trigger: webhook
allowed_methods:
- POST
- PUT
local_only: true
#Personnaliser le webhook si besoin
webhook_id: notification-personne-devant-la-maison-DsIKw7WpnVPC4EeACFnXSQQh
actions:
- data:
data: "{{ trigger.json.alarm.thumbnail }}"
action: shell_command.save_unifi_thumbnail
- data:
title: 🚨 Mouvement détecté
message: Devant la maison
data:
tag: personne_devant_maison
persistent: true
#Changer l'URL pour le domaine
image: https://xxxx.domain.com/local/tmp/unifi_last.jpg
attachment:
#Changer l'URL pour le domaine
url: https://xxxx.domain.com/local/tmp/unifi_last.jpg
content-type: jpg
hide-thumbnail: false
#Personnaliser avec votre téléphone
action: notify.mobile_app_iphone_de_antoine
mode: single
Étape 3 : configurer le webhook dans UniFi Protect
Dans UniFi Protect, rendez-vous dans le menu Gestionnaire d’Alarme, puis cliquez sur Créer une alarme (en haut à gauche). Il faut ensuite choisir le déclencheur (cela peut être une personne, un mouvement, etc), la caméra sélectionnée et enfin l’action (webhook dans notre cas).
Voici ma configuration en image.

Pensez bien à cocher la case « Utiliser les miniatures » (ou Use Thumbnails) pour avoir la miniature dans l’appel webhook. L’appel doit être fait en POST également.
Vérification et test en conditions réelles
Tout est configuré maintenant. Il ne vous reste plus qu’à passer devant la caméra pour vérifier que tout fonctionne.
Si la miniature ne s’affiche pas :
- Vérifiez que le fichier /config/www/tmp/unifi_last.jpg est bien créé
- Assurez-vous que l’URL d’accès (/local/tmp/…) est accessible depuis l’extérieur
Aperçu du résultat
Et voilà, tout fonctionne 🎉 ! La notification s’affiche avec l’image du moment, de manière fluide et réactive. C’est une intégration simple mais efficace pour centraliser vos alertes UniFi Protect dans Home Assistant.

Je vais continuer d’explorer le sujet, notamment :
- La création d’une image animée (GIF) pour reproduire l’effet aperçu des caméras Google Nest
- L’ajout d’une IA pour décrire automatiquement l’image
A bientôt pour un prochain tutoriel !