
💡 Automatiser une alerte météo vocale comme il pleut avec Home Assistant et n8n
Dans ce tutoriel, découvrez comment créer une automatisation qui vous alerte vocalement via Google Home quand la météo annonce de la pluie, en connectant Home Assistant à n8n.
🛠️ Prérequis
- Un serveur Home Assistant fonctionnel qui tourne sur un Raspberry Pi
- Un token d’accès longue durée (long-lived token)
- Une entité météo disponible, par exemple
weather.forecast_maison
- Une enceinte Google Home configurée comme
media_player.nom_de_l_enceinte
- Google Translate TTS activé dans Home Assistant
- Un serveur n8n fonctionnel (installation en contenaire sur mon NAS sur mon reseau local)
🔐 Étape 1 : Générer un token Home Assistant
Dans Home Assistant :
- Allez dans votre profil utilisateur.
- Cliquez sur "Créer un jeton d’accès longue durée".
- Copiez le token généré, il servira pour toutes les requêtes API dans n8n.
🌦️ Étape 2 : Récupérer la météo dans n8n
Ajoutez un nœud HTTP Request dans n8n avec ces paramètres :
- Method : GET
- URL :
http://IP_DE_HOME_ASSISTANT:8123/api/states/weather.forecast_maison
- Headers :
- Key :
Authorization
- Value :
Bearer VOTRE_TOKEN
- Key :
☔ Étape 3 : Tester s’il va pleuvoir
Ajoutez un nœud IF pour détecter les conditions de pluie :
- Champ :
{{$json.state}}
- Condition : Matches Regex
- Valeur :
rainy|pouring|lightning-rainy|snowy-rainy|hail
🔊 Étape 4 : Lire un message vocal via Google TTS
Ajoutez un autre nœud HTTP Request (POST) :
- URL :
http://IP_DE_HOME_ASSISTANT:8123/api/services/tts/google_translate_say
- Headers :
- Authorization: Bearer VOTRE_TOKEN
- Body parameters (mode JSON) :
{
"entity_id": "media_player.nestmini0730",
"message": "Il va pleuvoir aujourd’hui, pensez à rentrer le linge !"
}
⏰ Étape 5 : Planifier le scénario automatiquement
Ajoutez un nœud Schedule (type Cron) si vous souhaitez lancer cette vérification toutes les 30 mins :
*/30 * * * *
---
🎉 Résultat
Vous avez maintenant un assistant vocal météo automatisé avec Home Assistant et n8n. S’il pleut, votre Google Home vous prévient à l’heure définie !
💬 FAQ
Quels états météo déclenchent l'alerte ?
- rainy
- pouring
- lightning-rainy
- snowy-rainy
- hail
Je peux utiliser une autre voix que Google ?
Oui, Home Assistant supporte d'autres TTS comme Amazon Polly, PicoTTS, etc.
En Conclusion :Nous avons vu comment automatiser la voix avec N8N dans Home Assistant. cette automation est faisable directement dans Home Assistant sans passer par N8N mais ca permet de voir comment focntionne les webhooks et les requetes HTTP mais aussi l'utilsation des credentials pour le REST API. Maintenant faudrait voir si on peut faire pareil avec du Control 4 ou du KNX sur un reseau local.
Voici le code au format .Json à rentrer directement dans N8N
{
"nodes": [
{
"parameters": {
"triggerTimes": {
"item": [
{
"mode": "everyX",
"value": 30,
"unit": "minutes"
}
]
}
},
"id": "1",
"name": "Toutes les 30 min",
"type": "n8n-nodes-base.cron",
"typeVersion": 1,
"position": [250, 300]
},
{
"parameters": {
"url": "http://YOUR_HA_URL/api/states/weather.forecast_maison",
"responseFormat": "json",
"authentication": "headerAuth",
"headerParametersUi": {
"parameter": [
{
"name": "Authorization",
"value": "Bearer YOUR_HA_TOKEN"
}
]
}
},
"id": "2",
"name": "Récupère météo HA",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 2,
"position": [500, 300]
},
{
"parameters": {
"conditions": {
"string": [
{
"value1": "={{$json[\"state\"]}}",
"operation": "in",
"value2": "rainy,pouring"
}
]
}
},
"id": "3",
"name": "Va-t-il pleuvoir ?",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [750, 300]
},
{
"parameters": {
"url": "http://YOUR_HA_URL/api/services/tts/google_translate_say",
"method": "POST",
"authentication": "headerAuth",
"headerParametersUi": {
"parameter": [
{
"name": "Authorization",
"value": "Bearer YOUR_HA_TOKEN"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"options": {},
"bodyParametersJson": "={ \"entity_id\": \"media_player.nestmini0730\", \"message\": \"Il va pleuvoir. N'oublie pas de rentrer le linge !\" }"
},
"id": "5",
"name": "Google Home - TTS",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 2,
"position": [1000, 400]
}
],
"connections": {
"Toutes les 30 min": {
"main": [
[
{
"node": "Récupère météo HA",
"type": "main",
"index": 0
}
]
]
},
"Récupère météo HA": {
"main": [
[
{
"node": "Va-t-il pleuvoir ?",
"type": "main",
"index": 0
}
]
]
},
"Va-t-il pleuvoir ?": {
"main": [
[
{
"node": "Google Home - TTS",
"type": "main",
"index": 0
}
],
[]
]
}
},
"active": true,
"settings": {},
"name": "Rappel linge pluie - HA + Google Nest",
"version": 1
}