En bref
| Prérequis | Home Assistant fonctionnel, application Companion Android installée |
| Résultat | Un script de notification centralisé avec 5 niveaux de sévérité, bypass Do Not Disturb, actions depuis la notification |
| Ressources | Scripts sur GitHub |
Le guide complet
Le contexte — pourquoi cette vidéo
Mon installation Home Assistant est maintenant quasiment complète. J’ai migré l’intégralité depuis Jeedom, j’ai codé quelques intégrations custom là où ça me manquait, et j’ai maintenant mieux que ce que j’avais avant. Il est temps de partager les grands piliers de cette installation, à commencer par la notification — c’est un des fondamentaux d’une domotique qui fonctionne.
Home Assistant peut faire beaucoup de choses de manière autonome, mais à un moment il a besoin de vous. Pour vous informer, vous demander une confirmation, déclencher une action. Et si vous gérez ça à la volée dans chaque automatisation, vous allez vite avoir un problème de maintenance.
Ce que cette vidéo couvre — et ne couvre pas
Ce qu’on voit :
- Les notifications push Android via l’application Companion (smartphone + montre)
- Le mail (Proton, intégration SMTP)
- Le SMS (Free Mobile)
- Le bypass Do Not Disturb, y compris les subtilités Samsung
- Les actions interactives depuis les notifications
- La navigation vers les dashboards depuis une notification
- Le contrĂ´le du DND depuis Home Assistant
Ce qu’on ne voit PAS :
- Les notifications Apple — je n’ai pas de produits Apple
- Le mode interactif / “ask” — des échanges question-réponse type chatbot via Discord ou autre. C’est hors périmètre.
- Les notifications multi-utilisateurs — dans quel ordre contacter plusieurs personnes, les replis si le premier ne répond pas. C’est à vous de creuser.
- Le HTML5 Push (notifications navigateur) — mentionné mais pas détaillé
Pourquoi centraliser — le problème du hardcodage
Le problème classique : vous hardcodez le nom de votre téléphone dans chaque automatisation. Vous changez de téléphone → vous devez repasser partout. Vous voulez ajouter un canal secondaire → repassez partout. C’est ingérable.
Ma solution : un script central appelé notification_smartphone. Les automatisations l’appellent avec quelques paramètres simples — titre, message, sévérité. Elles ne savent pas comment ça fonctionne derrière. Si je change quelque chose, je le change une seule fois.
Je vous conseille, même dès le départ dans votre installation domotique, de commencer à réfléchir avec des scripts pour vos briques fondamentales. La notification en est une.
Les canaux de communication disponibles
J’utilise plusieurs canaux :
- Notifications push Android via l’application Home Assistant Companion. Le smartphone partage les notifications avec la montre — la montre a les mêmes capacités. J’ai aussi intégré ma montre Android dans Home Assistant directement, donc je pourrais lui envoyer des notifications en direct si besoin.
- Mail via Proton Mail — intégration SMTP, historique. C’est une intégration HA classique mais qui n’a malheureusement toujours pas été portée avec une configuration graphique dans l’interface — c’est dommage, c’est comme ça.
- SMS via Free Mobile — intégration historique, j’en ai fait une vidéo dédiée. Ça permet de se notifier soi-même sur son propre numéro Free. On ne peut pas notifier n’importe quel numéro.
- HTML5 Push si vous voulez notifier un navigateur
Les 5 niveaux de sévérité
C’est le cœur du script. J’ai défini 5 niveaux que j’utilise selon la criticité de l’événement :
| Niveau | Canal | Bypass DND | Usage type |
|---|---|---|---|
| Normal push | Push seul | Non | Lumière restée allumée, volets à fermer |
| Important push | Push seul | Non | Information Ă ne pas rater, mais pas urgente |
| Important push + mail | Push + Mail | Non | Trace long terme, information Ă conserver |
| Critique push DND | Push seul | Oui | Mouvement dans l’allée, porte restée ouverte |
| Critique push + mail + SMS | Push + Mail + SMS | Oui | Intrusion, alarme incendie |
Le dernier niveau — critique push + mail + SMS — c’est l’artillerie lourde. Je ne sais pas dans quelle situation je peux me trouver au moment de l’alerte, mais je peux espérer qu’au moins un de ces trois canaux va m’atteindre. Push pour le temps réel, mail pour la trace, SMS pour le filet de sécurité.
Tous ces niveaux ont un usage concret chez moi. Je les utilise tous.
Les paramètres du script
Le script accepte ces variables :
- title — titre de la notification
- message — le message
- severity — le niveau (normal, important, important_mail, critique, critique_plus)
- click_url — URL de navigation au clic. Par exemple
/lovelace/maisonpour ouvrir le dashboard maison directement. Très pratique sur une alerte mouvement — un clic et on voit les caméras. - image_url — image à afficher dans la notification. Par exemple une capture de la caméra du garage quand il y a un mouvement.
- tag — pour remplacer une notification existante par une mise à jour. Si un mouvement continue, la notification se renouvelle au lieu de s’empiler.
- actions — boutons d’action dans la notification (déclencher la sirène, éteindre une lumière, fermer les volets…)
Une fois ce script en place, dans une automatisation vous n’avez qu’à faire : appelle script notification_smartphone, donne-lui un titre, un message et un niveau de sévérité. C’est tout. Pas besoin de manipuler les data brutes de la notification.
Ce qui se passe dans le script — les variables précalculées
À l’intérieur du script, je précalcule toutes les variables d’exécution :
- Icônes différentes selon le niveau (normal, critique…)
- Couleurs de notification adaptées à la criticité
- Priorité et TTL — c’est critique pour le Do Not Disturb. Le TTL (Time To Live) et la priorité conditionnent le comportement de la notification sur Android.
- Channel —
alarm_streamsi critique,generalsinon. C’est presque un mot-clé pour Android et surtout Samsung. - Media stream — idem,
alarm_streampour les critiques - Click action — l’URL de navigation
- Dictionnaire d’actions — structure YAML pour les boutons d’action
Ensuite, le script a trois gros blocs :
- Push Android — la notification standard ou enrichie (avec channel, media stream, priorité, actions). C’est ici que je hardcode le nom du téléphone — et c’est le seul endroit. Si je change de téléphone, je modifie ici et c’est fini.
- Mail Proton — conditionnel sur le niveau de sévérité. Titre avec icône, message avec image si disponible.
- SMS Free — conditionnel sur le niveau critique uniquement. Juste titre + message.
Même si le bloc push Android est assez complexe (les data, les channels, les media streams…), une fois que c’est testé et fiabilisé, on n’y touche plus. Toutes les automatisations passent par ce script sans avoir à se soucier de ces détails.
La documentation — deux sources à connaître
Attention : il y a deux documentations distinctes pour les notifications HA :
- La doc Home Assistant officielle — couvre les notifications de base, les persistantes, etc.
- La doc Companion App — sur
companion.home-assistant.io. C’est elle qui couvre les capacités spécifiques de l’application mobile : notifications critiques, alarm_stream, actions, TTL/priority, images, navigation, remplacement de notifications, etc.
Si vous cherchez les détails sur channel, alarm_stream, TTL, priority — c’est dans la doc Companion App, pas dans la doc HA principale. Les deux se complètent mais il faut savoir où chercher.
Dans la doc Companion, vous trouverez aussi : les couleurs, les sticky notifications, les patterns de vibration, les couleurs de LED, les notifications persistantes, les timeouts, la visibilité sur le lock screen, le text-to-speech, le live update (très récent), la compatibilité Android Auto, et les notifications critiques iOS vs Android.
Le Do Not Disturb sur Samsung — la partie technique
C’est la partie la plus complexe, surtout avec les téléphones Samsung qui ne fonctionnent pas comme un Android standard (AOSP).
Les deux paramètres critiques du script :
channel: alarm_stream— le canal de notification qui est traité comme une alerte prioritaire par Androidmedia_stream: alarm_stream— en parallèle
Sans ces deux paramètres sur vos notifications critiques, le bypass DND ne fonctionnera pas sur Samsung.
Configuration dans l’app Companion sur Samsung :
Dans les infos de l’application Home Assistant : Paramètres → Notifications. Deux choses à configurer :
-
Le pop-up détaillé — j’ai activé l’affichage en bandeau complet plutôt qu’une petite notification en haut. La plupart des communications HA sont importantes, autant les voir en entier.
-
Les catégories de notification — vous y trouverez tous vos canaux :
general,alarm_stream, etc. Configurez un son différent pouralarm_streampar rapport au canalgeneral. Comme ça, rien qu’au son, vous savez si c’est critique ou pas.
Ce qu’il ne faut PAS faire :
Dans les paramètres Samsung → Ne pas déranger → Notifications d’application, ne mettez PAS Home Assistant dans la liste. Si vous faites ça, toutes les notifications HA passent à travers le DND — y compris les simples notifications info. Vous serez réveillé la nuit pour n’importe quoi.
La bonne approche : laisser HA gérer ça programmatiquement via le canal alarm_stream. Seules les notifications envoyées explicitement via ce canal bypassent le DND. Les autres restent silencieuses en mode Ne pas déranger.
Samsung n’a plus les modes historiques où on pouvait configurer le bypass DND par canal de notification directement dans les paramètres système. C’est maintenant chaque application qui doit définir programmatiquement comment elle se comporte. HA le fait bien via alarm_stream, mais ça nécessite de comprendre ces subtilités.
ContrĂ´ler le Do Not Disturb depuis HA
Au-delà de bypasser le DND, je peux aussi activer et désactiver le mode Ne pas déranger directement depuis une automatisation HA. C’est une notification technique spéciale envoyée via le service notify.mobile_app_*, avec le message command_dnd et la commande souhaitée (priority_only pour activer, off pour désactiver). La syntaxe exacte est documentée dans la documentation de l’application Home Assistant Companion.
J’ai un script dédié mobile_controle_dnd avec un sélecteur : “Mettre en sourdine” ou “Rétablir le son”.
L’automatisation “aller au lit” — DND automatique
C’est mon automatisation dodo. Quand j’appuie sur le bouton (trois moyens possibles) :
- Le bouton Philips Hue dédié — appui court = réveil, appui long = dodo
- Le bouton sur le dashboard HA — avec confirmation avant de basculer
- La commande vocale — “Bonne nuit” à Google Home
Les trois déclenchent la même chose : un interrupteur virtuel bascule, et derrière j’ai deux branches — mode nuit et mode jour.
En mode nuit : vérification verrous fermés, extinction des lumières, passage du téléphone en Ne pas déranger automatiquement.
Au réveil : lumière tamisée, téléphone remis en mode normal.
Vous pouvez généraliser ce principe à d’autres situations : regarder un film (= DND automatique), mode travail, etc.
Les cas d’usage concrets
Mouvement dans l’allée : Critique push avec bypass DND + navigation vers le dashboard maison au clic. Pas de mail ni SMS — c’est important mais pas une urgence absolue.
Mouvement devant le garage : Plus complexe. Le titre et la sévérité varient : si c’est un piéton (humain détecté) → critique push. Si c’est juste un mouvement (un chat qui passe) → important push. J’inclus une capture de la caméra dans la notification pour voir immédiatement ce qui se passe. Un tag pour renouveler la notification si le mouvement continue. Et deux actions : déclencher la sirène ou arrêter la sirène directement depuis la notification.
Volets roulants — ouverture/fermeture : Ma maison distingue deux situations. Si personne n’est dans le logement, elle ferme/ouvre les volets automatiquement — ça fait simulateur de présence en plus. Si quelqu’un est présent, elle ne prend pas l’action automatiquement — elle notifie. “Pensez à fermer les volets.” Notification normale (pas critique, on ne réveille personne), avec un bouton d’action pour fermer directement depuis la notification sans ouvrir l’application.
J’ai aussi rajouté une annonce vocale conditionnelle : un script qui choisit sur quelle enceinte jouer l’annonce en fonction des détections de présence par pièce. Si je ne veux pas d’annonces vocales dans la maison, ça se désactive au global.
Lumière restée allumée : Normal push. Ce n’est pas critique, mais si une lumière est allumée depuis plus de 5 minutes sans raison, autant le savoir. Action pour éteindre directement depuis la notification.
Porte ou verrou non fermé : Critique push avec bypass DND. Là , on ne plaisante pas. Une porte ouverte ou un verrou non verrouillé, c’est une information qui doit m’atteindre quoi qu’il arrive.
Les actions — comment ça fonctionne techniquement
Quand une notification avec action est envoyée, et que l’utilisateur appuie sur un bouton d’action, HA reçoit un événement mobile_app_notification_action avec l’identifiant de l’action.
J’ai une automatisation qui écoute ces événements. Par exemple pour la sirène du garage : si l’événement est trigger_siren_garage → je déclenche la sirène ET je l’arrête automatiquement au bout de 2 minutes (pour éviter qu’elle tourne indéfiniment si j’ai appuyé par erreur). Si c’est stop_siren_garage → j’arrête la sirène.
Pour les volets : même principe, ouvrir_volets et fermer_volets déclenchent les relais correspondants.
L’astuce de l’entity ID dans le trigger — pour des actions génériques
Pour les notifications qui pilotent des équipements spécifiques (éteindre cette lumière, fermer ce verrou), j’utilise une astuce : je passe l’entity ID directement dans le nom du trigger, séparé par une barre verticale.
Exemple : le trigger s’appelle turn_off_light|light.porte_entree.
Dans l’automatisation qui écoute les actions, je fais un split sur la barre verticale : la première partie c’est l’action (turn_off_light), la deuxième c’est l’entity ID (light.porte_entree). J’exécute la commande sur cet entity.
Résultat : une seule automatisation générique au lieu d’une automatisation par équipement. Ça marche pour les lumières, les verrous, et tout ce qui a un entity ID.
J’aurais préféré passer les datas proprement dans l’action, mais j’ai essayé et ça ne marchait pas. La doc n’a pas l’air d’aller dans ce sens non plus. Cette méthode avec la barre verticale est la plus simple et la plus efficace que j’ai trouvée.
Une note sur le YAML dans Home Assistant
Pour conclure — un sujet qui revient régulièrement. On reproche à Home Assistant d’être “trop technique” parce que ça génère du YAML en coulisses.
Dans cette vidéo, je n’ai quasiment pas écrit de code. Tout s’est fait via l’interface graphique. Il y a quelques templates Jinja pour des conditions, mais c’est tout. Pas de YAML à écrire.
Et le fait que tout soit exportable en YAML est un très gros point fort, pas un défaut. Vous pouvez versionner vos automatisations, les partager, les faire relire par une IA, les copier d’une installation à l’autre. Et en un clic vous pouvez rebasculer dans la vue graphique.
Ce que j’ai montré dans cette vidéo, c’est du Home Assistant natif. Pas d’intégration custom, pas d’addon particulier, pas d’application tierce. L’application officielle HA sur mon téléphone et ma montre. Jeedom Connect est remplacé par du natif et j’ai même mieux qu’avant.
Pour adapter Ă votre installation
Le script que je partage ne fonctionnera pas tel quel chez vous. Le nom du téléphone, l’adresse mail Proton et le compte Free Mobile sont les miens — il faudra les remplacer. Mais la structure est là , vous n’aurez qu’à brancher vos propres équipements.