Un problème est récemment apparu depuis mon implémentation de Duck DNS et l’ouverture à l’extérieur.
J’avais une petite routine message vers Sonos pour informer mes enfants de se préparer pour l’école.
La config
# Text to speech
tts:
- platform: google_translate
language: "fr-fr"
Pour le script et l’automation j’ai récupéré ce qui était fait dans la doc HA ici
Mon automation
alias: Préparer pour l'école
description: ''
trigger:
- platform: time
at: '07:40:00'
condition: []
action:
- service: script.sonos_say
data:
sonos_entity: media_player.salon
volume: 0.2
message: Arthur, Olivia, il est l'heure d'aller a lécole
mode: single
Rien de bien transcendant et tout marchait bien.
Depuis mon installation de Duck DNS et la MAJ de HA, la routine ne fonctionne plus.
Après moultes recherches, je trouve qu’il y a un problème de lecture de fichier Sonos depuis un site avec un certificat perso et je suis arrivé sur ce post très intéressant
J’ai donc modifié ma configuration générale pour définir les External URL et Internal URL. J’ai rajouté le module NGINX Home Assistant SSL proxy mais cela ne fonctionnait toujours pas. Le seul progrès que j’arrive à faire c’est en modifiant la config de mon TTS avec le base_url vers mon nom de domaine public (en mettant mon IP locale, cela ne fonctionne pas du tout)
Une autre méthode, est de mettre cette url dans le champ Url Externe et Url Interne maintenant que tu es en SSL et ne pas ajouter base_url à l’intégration Text-to-Speech.
Ca c’est bizarre…
Si tu veux tester en parallèle de la diffusion, il suffit simplement de tester l’adresse suivant :
T’es un boss !!! Mais je ne comprends pas pourquoi avant cela fonctionnait sans avoir besoin de delay. Donc si je comprends, le delay permet au processus de ne pas se cut et permet d’attendre la fin du message !?
Pour info, ce qui a permis de résoudre mon problème
Configuration (ajout de la whitelist + base_url externe malgré que la doc dise qu’on puisse s’en passer depuis les Internal URL et External URL qui sont configurés de mon côté)
L’automatisation :
Je la déclenche, il y a bien un fichier mp3 lisible de créé dans /config/tts, l’ampli se met sous tension mais le message n’est pas lu.
Dans l’idée, la nuit si il y a une fuite d’eau et que je suis là je souhaite avoir une alerte via l’ampli.
alias: Text
description: ''
trigger:
- platform: device
type: turned_on
device_id: acdc114488f304753324b40cf7dc0b05
entity_id: light.lampe_salon
domain: light
condition: []
action:
- service: tts.google_say
data:
entity_id: media_player.denon_avc_x3700h
message: Ce que tu vas me dire
- delay:
hours: 0
minutes: 0
seconds: 10
milliseconds: 0
mode: single
Malheureusement, depuis une mise à jour de cet été, y a pas mal de problèmes de TTS avec Sonos. Perso, ça ne fonctionne plus depuis cet été. J’ai vérifié et ne comprend pas le problème.
Mon TTS fonctionne sur mon pc ou n’importe quel autre device, ma card Multimédia pour contrôler ma Sonos fonctionne aussi pour la lecture de musique Spotify ou quoi mais dès que je lance du TTS sur la Sonos, je vois bien que la Sonos veut le lire mais aucun son ne sort de l’enceinte.
J’ai réussi à refaire fonctionner mon TTS sur Sonos
Depuis ma dernière config, j’ai basculé sur Nabu Casa et rajoutant mon adresse Nabu Casa dans le base URL, cela fonctionne de nouveau
Donc ma config TTS est la suivante
Pour ton problème @Bob, ça vient peut être du language car depuis une certaine mise à jour plus tôt, je me souviens que j’avais dû passer de ‹ fr-fr › à ‹ fr ›
Bonsoir,
J’ai mis dans le même ordre que toi, avec des simples quotes et le ‹ fr › (j’avais déjà essayé sans succès) , j’ai aussi mis à jour vers la dernière version et ça fonctionne, mon ampli me parle
# Text to speech
tts:
- platform: google_translate
language: 'fr'
cache: true
cache_dir: /config/tts
time_memory: 300
service_name: google_say
base_url: 'https://domaine.fr'