Skip to content
G. G. testé !
🏠Home Assistant 🏠domotique 📱Android 📖guide

Home Assistant 🗯️📱🗨️ mon système de notifications : push, mail, SMS et Do Not Disturb

Dans cette vidéo, je vous explique comment j'ai conçu un système de notifications centralisé dans Home Assistant — un script unique, des niveaux de sévérité clairs, et des notifications qui vont du push discret jusqu'au bypass du mode Ne Pas Déranger avec SMS d'urgence.

4 min de lecture
Home Assistant 🗯️📱🗨️ mon système de notifications : push, mail, SMS et Do Not Disturb
Regarder la vidéo — timecodes, vidéos liées 43min 41s

En bref

PrérequisHome Assistant fonctionnel, application Companion Android installée
RésultatUn script de notification centralisé avec 5 niveaux de sévérité, bypass Do Not Disturb, actions depuis la notification
RessourcesScripts 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 :

NiveauCanalBypass DNDUsage type
Normal pushPush seulNonLumière restée allumée, volets à fermer
Important pushPush seulNonInformation Ă  ne pas rater, mais pas urgente
Important push + mailPush + MailNonTrace long terme, information Ă  conserver
Critique push DNDPush seulOuiMouvement dans l’allée, porte restée ouverte
Critique push + mail + SMSPush + Mail + SMSOuiIntrusion, 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/maison pour 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_stream si critique, general sinon. C’est presque un mot-clĂ© pour Android et surtout Samsung.
  • Media stream — idem, alarm_stream pour 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 :

  1. 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.
  2. Mail Proton — conditionnel sur le niveau de sévérité. Titre avec icône, message avec image si disponible.
  3. 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 :

  1. La doc Home Assistant officielle — couvre les notifications de base, les persistantes, etc.
  2. 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 Android
  • media_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 :

  1. 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.

  2. Les catégories de notification — vous y trouverez tous vos canaux : general, alarm_stream, etc. Configurez un son différent pour alarm_stream par rapport au canal general. 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) :

  1. Le bouton Philips Hue dédié — appui court = réveil, appui long = dodo
  2. Le bouton sur le dashboard HA — avec confirmation avant de basculer
  3. 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.

Signaler une erreur

Pour les questions techniques

Passe par les commentaires YouTube ou le Discord — ta question profite à tout le monde.

Ce formulaire est uniquement pour signaler une erreur dans le contenu.

Retour aux articles
Partager :

Suivre la chaîne

Une vidéo chaque jeudi à 17h30 — abonnez-vous pour ne rien rater.