Notifications Home Assistant
Configuration du Compte
Section intitulée « Configuration du Compte »- Connectez-vous à votre instance Home Assistant et ouvrez votre page Profil.
- Faites défiler tout en bas et cliquez sur Create Token sous Long-Lived Access Tokens.
- Donnez-lui un nom (par exemple Apprise) et copiez le jeton généré : vous ne pourrez plus l’afficher ensuite.
Deux modes de fonctionnement existent selon que vous incluez ou non une cible de service dans l’URL.
Mode Notification Persistante (par Défaut)
Section intitulée « Mode Notification Persistante (par Défaut) »Lorsqu’aucune cible de service n’est fournie, Apprise publie une notification persistante sur le tableau de bord Home Assistant.
hassio://{host}/{access_token}hassios://{host}/{access_token}hassio://{host}:{port}/{access_token}Par défaut, une nouvelle notification unique est créée à chaque envoi.
Pour remplacer la notification précédente à la place (utile pour
des mises à jour d’état), fixez un identifiant via ?nid= :
hassio://{host}/{access_token}?nid=myidMode Notification de Service
Section intitulée « Mode Notification de Service »Ajoutez une ou plusieurs cibles de service après le jeton d’accès pour appeler directement n’importe quel service Home Assistant. Cela prend en charge les notifications push de l’application mobile, le TTS, les lecteurs média et tout autre domaine de service HA.
Chaque segment cible suit cette grammaire :
| Forme | Exemple | Remarques |
|---|---|---|
service | mobile_app_phone | Domaine par défaut : notify |
domain.service | media_player.living_room | Domaine explicite |
service:target | mobile_app_phone:user1 | Sous-cible unique |
service:t1,t2,t3 | notify_group:alice,bob | Sous-cibles séparées par virgule ou espace |
domain.service:t1,t2 | tts.google_say:en-US | Domaine + sous-cibles |
Plusieurs cibles de premier niveau sont séparées par / dans l’URL :
hassio://{host}/{access_token}/{service}hassio://{host}/{access_token}/{domain}.{service}hassio://{host}/{access_token}/{domain}.{service}:{target}hassio://{host}/{access_token}/{domain}.{service}:{t1},{t2}hassio://{host}/{access_token}/{service1}/{domain}.{service2}:{target}Le domaine par défaut est notify lorsqu’aucun domaine n’est précisé ;
ainsi, hassio://host/token/mobile_app_phone est équivalent à
hassio://host/token/notify.mobile_app_phone.
Préfixe de Chemin pour Proxy Inverse
Section intitulée « Préfixe de Chemin pour Proxy Inverse »Si votre instance Home Assistant est servie sous un sous-chemin
(par exemple derrière un reverse proxy sur /ha), fournissez-le avec ?prefix= :
hassio://{host}/{access_token}/{service}?prefix=/haDétail des Paramètres
Section intitulée « Détail des Paramètres »| Variable | Requis | Description |
|---|---|---|
| host | Oui | Le nom d’hôte ou l’adresse IP de votre instance Home Assistant. |
| access_token | Oui | Le Long-Lived Access Token généré depuis votre page de profil. |
| port | Non | Port de connexion. Par défaut : 8123 pour hassio:// et 443 pour hassios://. |
| service | Non | Une ou plusieurs entrées [domain.]service[:target]. Omettez entièrement ce champ pour utiliser le mode Notification Persistante. |
| nid | Non | Un Notification ID fixe, uniquement pour les notifications persistantes. Lorsqu’il est défini, chaque nouveau message remplace le précédent. |
| prefix | Non | Un préfixe de chemin URL ajouté à tous les appels API. Requis lorsque Home Assistant est servi sous un sous-chemin (par exemple ?prefix=/ha). |
| batch | Non | Définissez yes pour regrouper jusqu’à 10 cibles de service dans un seul appel API. La valeur par défaut est no. |
| to | Non | Alias pour les cibles de service. Équivalent à l’ajout de cibles dans le chemin URL. |
Paramètres Globaux
Section intitulée « Paramètres Globaux »| Variable | Description |
|---|---|
| overflow | Ce paramètre peut être défini sur split, truncate ou upstream. Il détermine la manière dont Apprise remet le message que vous lui transmettez. Par défaut, il vaut upstream. 👉 upstream : ne fait aucune modification et transmet le message exactement tel qu’il a été reçu au service.👉 truncate : veille à ce que le message tienne dans la limite amont documentée par le service. Si plus d’informations sont fournies que la limite définie, l’excédent est tronqué.👉 split : similaire à truncate, sauf que si le message dépasse la limite amont documentée par le service, il est découpé en plusieurs morceaux plus petits puis envoyés séquentiellement. |
| format | Ce paramètre peut être défini sur text, html ou markdown. Certains services prennent en charge plusieurs formats de publication du contenu. La valeur par défaut varie selon le service choisi et peut correspondre à l’un de ces trois formats. Vous pouvez facultativement forcer cette option pour vous écarter du comportement par défaut. Si le service ne prend pas en charge plusieurs formats de transmission, ce champ est ignoré. |
| verify | Les requêtes externes vers des emplacements sécurisés, par exemple via https, utilisent des certificats. Par défaut, Apprise vérifie la validité de ces certificats ; si ce n’est pas le cas, aucune notification n’est envoyée à la source. Dans certains cas, un utilisateur ne dispose pas d’une autorité de certification pour valider la clé ou fait simplement confiance à la source ; dans ce cas, vous pouvez définir ce drapeau sur no. Par défaut, il vaut yes. |
| cto | Signifie Socket Connect Timeout. Il s’agit du nombre de secondes pendant lesquelles Requests attend que votre client établisse une connexion avec une machine distante, ce qui correspond à l’appel connect() sur la socket. La valeur par défaut est de 4.0 secondes. |
| rto | Signifie Socket Read Timeout. Il s’agit du nombre de secondes pendant lesquelles le client attend que le serveur envoie une réponse. La valeur par défaut est de 4.0 secondes. |
| emojis | Active la prise en charge des emojis, par exemple :+1: qui sera traduit en 👍. Par défaut, cette option vaut no. Remarque : selon la configuration côté serveur, l’administrateur peut désactiver globalement la prise en charge des emojis ; mais par défaut, ce n’est pas le cas. |
| tz | Identifie le fuseau horaire de la base IANA que vous souhaitez utiliser. Par défaut, celui-ci est détecté à partir de la configuration du serveur qui exécute Apprise. Vous pouvez le définir sur des valeurs comme America/Toronto, ou sur tout autre fuseau correctement formaté correspondant à votre région. |
Exemples
Section intitulée « Exemples »Envoyer une notification persistante (crée une nouvelle entrée dans le tableau de bord HA à chaque appel) :
apprise -vv -t "Alert" -b "Mouvement detecte" \ 'hassio://myserver.local/4b4f2918fd-dk5f-8f91f'Envoyer une notification persistante qui remplace toujours la précédente (utile pour des mises à jour d’état récurrentes) :
apprise -vv -t "Statut" -b "All systems nominal" \ 'hassio://myserver.local/4b4f2918fd-dk5f-8f91f?nid=apprise'Envoyer vers un service de notification de l’application mobile :
apprise -vv -t "Alert" -b "Quelqu'un a sonne a la porte" \ 'hassio://myserver.local/4b4f2918fd-dk5f-8f91f/notify.mobile_app_myphone'Envoyer vers plusieurs services dans une seule URL :
apprise -vv -t "Alert" -b "La porte du garage est restee ouverte" \ 'hassio://myserver.local/4b4f2918fd-dk5f-8f91f/notify.mobile_app_phone1/notify.mobile_app_phone2'Envoyer via une connexion sécurisée (hassios:// → HTTPS sur le port 443) :
apprise -vv -t "Test" -b "Secure message" \ 'hassios://my.secure.server/4b4f2918fd-dk5f-8f91f/notify.mobile_app_myphone'Utiliser ?to= lors de la construction programmatique des URL :
apprise -vv -t "Test" -b "Hello" \ 'hassio://myserver.local/4b4f2918fd-dk5f-8f91f?to=notify.mobile_app_myphone'Dépannage
Section intitulée « Dépannage »- 401 Unauthorized — Votre jeton est invalide ou a expiré. Générez-en un nouveau depuis la page de profil Home Assistant.
- 400 Bad Request — Une cible de service inexistante a été fournie, ou la charge utile contenait des paramètres non pris en charge pour ce domaine de service. Vérifiez le domaine et le nom du service dans votre instance HA.
- Certificat auto-signé — Ajoutez
?verify=nopour ignorer la vérification SSL :hassios://myserver/{token}?verify=no
Questions ou commentaires ?
Documentation
Vous avez repéré une faute de frappe ou une erreur ? Signalez-la ou proposez une correction .
Problèmes Techniques
Vous rencontrez un problème avec le code ? Ouvrez un ticket sur GitHub :