Bon, j’ai un peu de mal à faire fonctionner, et surtout je dirais je n’ai plus de cast qui se fait.
Il y a peut être un mélange entre les différentes options, mais j’ai active le GeminiTTS;
Ca génère bien un wav (pas mp3 cette fois) mais ca échoue à envoyer sur mon enceinte de test.
J’ai rien changé sur mon réseau, à moins d’une mise à jour chelou sur mon UDM pro Unifi mais je pense plutôt que c’est la dernière beta.
Voici le log en débug pour le daemon (ips anonymisées) :
[2026-05-20 20:26:18] DEBUG : [Mini bureau([IP-MINI-BUREAU]):8009] Received: Message urn:x-cast:com.google.cast.tp.heartbeat from Tr@n$p0rt-0 to Tr@n$p0rt-0: {'type': 'PING'}
[2026-05-20 20:26:18] DEBUG : [Mini bureau([IP-MINI-BUREAU]):8009] Sending: Message urn:x-cast:com.google.cast.tp.heartbeat from sender-0 to receiver-0: {'type': 'PONG'}
[2026-05-20 20:26:22] DEBUG : [DAEMON][HANDLER] Client connected to [127.0.0.1:33132]
[2026-05-20 20:26:22] DEBUG : [DAEMON][HANDLER] Message read from socket :: b'{"cmd": "action", "cmd_action": "tts", "ttsLang": "fr-FR", "ttsEngine": "gcloudtts", "ttsSpeed": "0.9", "ttsOptions": "\\"volume\\": 20, \\"ding\\": true, \\"wait\\": 1, \\"style\\": \\"Dans un contexte \\u00e9pique de d\\u00e9marrage d\'une session de jeu video, avec un ton humoristique mais t\\u00e9n\\u00e9breux tout en restant amical et pas effrayant pour un enfant. fin en envol\\u00e9e lyrique !\\", \\"engine\\": \\"geminitts\\"", "ttsText": "test de synth\\u00e8se vocale, allons y les amis, on d\\u00e9marre la session !!", "ttsGoogleUUID": "39854d13-ba25-cfb1-be39-e0f7d047f8ee", "ttsVoiceName": "fr-FR-Studio-A", "ttsRSSVoiceName": "fr-fr-Bette", "ttsRSSSpeed": "0", "ttsGeminiVoiceName": "Iapetus", "cmdNotificationId": 0, "apikey": "***"}'
[2026-05-20 20:26:22] DEBUG : [DAEMON][HANDLER] Client disconnected from [127.0.0.1:33132]
[2026-05-20 20:26:22] DEBUG : [DAEMON][SOCKET] Message received in socket JEEDOM_SOCKET_MESSAGE
[2026-05-20 20:26:22] DEBUG : [DAEMON][SOCKET] Action
[2026-05-20 20:26:22] DEBUG : [DAEMON][SOCKET] Generate And Play TTS
[2026-05-20 20:26:22] DEBUG : [DAEMON][SOCKET] TTS :: {'cmd': 'action', 'cmd_action': 'tts', 'ttsLang': 'fr-FR', 'ttsEngine': 'gcloudtts', 'ttsSpeed': '0.9', 'ttsOptions': '"volume": 20, "ding": true, "wait": 1, "style": "Dans un contexte épique de démarrage d\'une session de jeu video, avec un ton humoristique mais ténébreux tout en restant amical et pas effrayant pour un enfant. fin en envolée lyrique !", "engine": "geminitts"', 'ttsText': 'test de synthèse vocale, allons y les amis, on démarre la session !!', 'ttsGoogleUUID': '39854d13-ba25-cfb1-be39-e0f7d047f8ee', 'ttsVoiceName': 'fr-FR-Studio-A', 'ttsRSSVoiceName': 'fr-fr-Bette', 'ttsRSSSpeed': '0', 'ttsGeminiVoiceName': 'Iapetus', 'cmdNotificationId': 0, 'apikey': '***'}
[2026-05-20 20:26:22] DEBUG : [DAEMON][TTS] Check des répertoires
[2026-05-20 20:26:22] DEBUG : [DAEMON][TTS] Options :: {'volume': 20, 'ding': True, 'wait': 1, 'style': "Dans un contexte épique de démarrage d'une session de jeu video, avec un ton humoristique mais ténébreux tout en restant amical et pas effrayant pour un enfant. fin en envolée lyrique !", 'engine': 'geminitts'}
[2026-05-20 20:26:22] DEBUG : [DAEMON][COM] Send to jeedom : {'ttsLastMessage': {'39854d13-ba25-cfb1-be39-e0f7d047f8ee': 'test de synthèse vocale, allons y les amis, on démarre la session !!'}}
[2026-05-20 20:26:22] DEBUG : [DAEMON][TTS] ttsLastMessage envoyé :: UUID=39854d13-ba25-cfb1-be39-e0f7d047f8ee
[2026-05-20 20:26:22] DEBUG : [DAEMON][TTS] TTSEngine = geminitts
[2026-05-20 20:26:22] DEBUG : [DAEMON][TTS] Nom du fichier à générer :: /tmp/jeedom/ttscast_cache/bd3e25e645533ad14c87ce63786f84fa.wav
[2026-05-20 20:26:22] DEBUG : Starting new HTTP connection (1): 127.0.0.1:80
[2026-05-20 20:26:22] DEBUG : [DAEMON][GeminiTTS] Chargement des credentials OAuth2 :: [MON-COMPTE-SERVICE].json
[2026-05-20 20:26:22] DEBUG : http://127.0.0.1:80 "POST /plugins/ttscast/core/php/jeettscast.php?apikey=*** HTTP/1.1" 200 0
[2026-05-20 20:26:22] DEBUG : [DAEMON][GeminiTTS] Modèle :: gemini-3.1-flash-tts-preview | Voix :: Iapetus | Style :: Dans un contexte épique de démarrage d'une session de jeu video, avec un ton humoristique mais ténébreux tout en restant amical et pas effrayant pour un enfant. fin en envolée lyrique !
[2026-05-20 20:26:22] INFO : AFC is enabled with max remote calls: 10.
[2026-05-20 20:26:22] DEBUG : Starting new HTTPS connection (1): oauth2.googleapis.com:443
[2026-05-20 20:26:22] DEBUG : https://oauth2.googleapis.com:443 "POST /token HTTP/1.1" 200 None
[2026-05-20 20:26:22] DEBUG : connect_tcp.started host='aiplatform.googleapis.com' port=443 local_address=None timeout=None socket_options=None
[2026-05-20 20:26:23] DEBUG : connect_tcp.complete return_value=<httpcore._backends.sync.SyncStream object at 0x726a743e90a0>
[2026-05-20 20:26:23] DEBUG : start_tls.started ssl_context=<ssl.SSLContext object at 0x726a77d66f50> server_hostname='aiplatform.googleapis.com' timeout=None
[2026-05-20 20:26:23] DEBUG : start_tls.complete return_value=<httpcore._backends.sync.SyncStream object at 0x726a743e8170>
[2026-05-20 20:26:23] DEBUG : send_request_headers.started request=<Request [b'POST']>
[2026-05-20 20:26:23] DEBUG : send_request_headers.complete
[2026-05-20 20:26:23] DEBUG : send_request_body.started request=<Request [b'POST']>
[2026-05-20 20:26:23] DEBUG : send_request_body.complete
[2026-05-20 20:26:23] DEBUG : receive_response_headers.started request=<Request [b'POST']>
[2026-05-20 20:26:23] DEBUG : [Mini bureau([IP-MINI-BUREAU]):8009] Sending: Message urn:x-cast:com.google.cast.tp.heartbeat from sender-0 to receiver-0: {'type': 'PING', 'requestId': 18}
[2026-05-20 20:26:23] DEBUG : [Mini bureau([IP-MINI-BUREAU]):8009] Received: Message urn:x-cast:com.google.cast.tp.heartbeat from receiver-0 to sender-0: {'type': 'PONG'}
[2026-05-20 20:26:24] DEBUG : [Chromecast Ultra rdc([IP-CC-RDC]):8009] Sending: Message urn:x-cast:com.google.cast.tp.heartbeat from sender-0 to receiver-0: {'type': 'PING', 'requestId': 16}
[2026-05-20 20:26:24] DEBUG : [Chromecast Ultra rdc([IP-CC-RDC]):8009] Received: Message urn:x-cast:com.google.cast.tp.heartbeat from receiver-0 to sender-0: {'type': 'PONG'}
[2026-05-20 20:26:25] DEBUG : [Barre chambre([IP-BARRE-CHAMBRE]):8009] Sending: Message urn:x-cast:com.google.cast.tp.heartbeat from sender-0 to receiver-0: {'type': 'PING', 'requestId': 16}
[2026-05-20 20:26:25] DEBUG : [Barre chambre([IP-BARRE-CHAMBRE]):8009] Received: Message urn:x-cast:com.google.cast.tp.heartbeat from receiver-0 to sender-0: {'type': 'PONG'}
[2026-05-20 20:26:25] DEBUG : [Home max([IP-HOME-MAX]):8009] Sending: Message urn:x-cast:com.google.cast.tp.heartbeat from sender-0 to receiver-0: {'type': 'PING', 'requestId': 16}
[2026-05-20 20:26:25] DEBUG : [Home max([IP-HOME-MAX]):8009] Received: Message urn:x-cast:com.google.cast.tp.heartbeat from receiver-0 to sender-0: {'type': 'PONG'}
[2026-05-20 20:26:25] DEBUG : [Ampli salon([IP-AMPLI-SALON]):8009] Sending: Message urn:x-cast:com.google.cast.tp.heartbeat from sender-0 to receiver-0: {'type': 'PING', 'requestId': 16}
[2026-05-20 20:26:25] DEBUG : [Ampli salon([IP-AMPLI-SALON]):8009] Received: Message urn:x-cast:com.google.cast.tp.heartbeat from receiver-0 to sender-0: {'type': 'PONG'}
[2026-05-20 20:26:25] DEBUG : [Maison plus([IP-AMPLI-SALON]):32043] Sending: Message urn:x-cast:com.google.cast.tp.heartbeat from sender-0 to receiver-0: {'type': 'PING', 'requestId': 17}
[2026-05-20 20:26:25] DEBUG : [Maison plus([IP-AMPLI-SALON]):32043] Received: Message urn:x-cast:com.google.cast.tp.heartbeat from receiver-0 to sender-0: {'type': 'PONG'}
[2026-05-20 20:26:25] DEBUG : [Rez de chaussée([IP-AMPLI-SALON]):32131] Sending: Message urn:x-cast:com.google.cast.tp.heartbeat from sender-0 to receiver-0: {'type': 'PING', 'requestId': 17}
[2026-05-20 20:26:25] DEBUG : [Rez de chaussée([IP-AMPLI-SALON]):32131] Received: Message urn:x-cast:com.google.cast.tp.heartbeat from receiver-0 to sender-0: {'type': 'PONG'}
[2026-05-20 20:26:26] DEBUG : [Maison([IP-AMPLI-SALON]):32245] Sending: Message urn:x-cast:com.google.cast.tp.heartbeat from sender-0 to receiver-0: {'type': 'PING', 'requestId': 17}
[2026-05-20 20:26:26] DEBUG : [Maison([IP-AMPLI-SALON]):32245] Received: Message urn:x-cast:com.google.cast.tp.heartbeat from receiver-0 to sender-0: {'type': 'PONG'}
[2026-05-20 20:26:26] DEBUG : [Salon([IP-AMPLI-SALON]):32107] Sending: Message urn:x-cast:com.google.cast.tp.heartbeat from sender-0 to receiver-0: {'type': 'PING', 'requestId': 17}
[2026-05-20 20:26:26] DEBUG : [Notifications([IP-NEST-HUB]):32141] Sending: Message urn:x-cast:com.google.cast.tp.heartbeat from sender-0 to receiver-0: {'type': 'PING', 'requestId': 17}
[2026-05-20 20:26:26] DEBUG : [Nest hub([IP-NEST-HUB]):8009] Sending: Message urn:x-cast:com.google.cast.tp.heartbeat from sender-0 to receiver-0: {'type': 'PING', 'requestId': 16}
[2026-05-20 20:26:26] DEBUG : [Notifications([IP-NEST-HUB]):32141] Received: Message urn:x-cast:com.google.cast.tp.heartbeat from receiver-0 to sender-0: {'type': 'PONG'}
[2026-05-20 20:26:26] DEBUG : [Nest hub([IP-NEST-HUB]):8009] Received: Message urn:x-cast:com.google.cast.tp.heartbeat from receiver-0 to sender-0: {'type': 'PONG'}
[2026-05-20 20:26:26] DEBUG : [Salon([IP-AMPLI-SALON]):32107] Received: Message urn:x-cast:com.google.cast.tp.heartbeat from receiver-0 to sender-0: {'type': 'PONG'}
[2026-05-20 20:26:26] DEBUG : [Pc bureau([IP-PC-BUREAU]):8009] Sending: Message urn:x-cast:com.google.cast.tp.heartbeat from sender-0 to receiver-0: {'type': 'PING', 'requestId': 16}
[2026-05-20 20:26:26] DEBUG : [Pc bureau([IP-PC-BUREAU]):8009] Received: Message urn:x-cast:com.google.cast.tp.heartbeat from receiver-0 to sender-0: {'type': 'PONG'}
[2026-05-20 20:26:26] DEBUG : [Réveil([IP-REVEIL]):8009] Sending: Message urn:x-cast:com.google.cast.tp.heartbeat from sender-0 to receiver-0: {'type': 'PING', 'requestId': 16}
[2026-05-20 20:26:26] DEBUG : [Réveil([IP-REVEIL]):8009] Received: Message urn:x-cast:com.google.cast.tp.heartbeat from receiver-0 to sender-0: {'type': 'PONG'}
[2026-05-20 20:26:26] DEBUG : [Chambre Alya([IP-CHAMBRE-ALYA]):8009] Sending: Message urn:x-cast:com.google.cast.tp.heartbeat from sender-0 to receiver-0: {'type': 'PING', 'requestId': 16}
[2026-05-20 20:26:26] DEBUG : [Chambre Alya([IP-CHAMBRE-ALYA]):8009] Received: Message urn:x-cast:com.google.cast.tp.heartbeat from receiver-0 to sender-0: {'type': 'PONG'}
[2026-05-20 20:26:26] DEBUG : [Garage([IP-GARAGE]):8009] Sending: Message urn:x-cast:com.google.cast.tp.heartbeat from sender-0 to receiver-0: {'type': 'PING', 'requestId': 16}
[2026-05-20 20:26:26] DEBUG : [Garage([IP-GARAGE]):8009] Received: Message urn:x-cast:com.google.cast.tp.heartbeat from receiver-0 to sender-0: {'type': 'PONG'}
[2026-05-20 20:26:26] DEBUG : receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'Content-Type', b'application/json; charset=UTF-8'), (b'Vary', b'Origin'), (b'Vary', b'X-Origin'), (b'Vary', b'Referer'), (b'Content-Encoding', b'gzip'), (b'Date', b'Wed, 20 May 2026 20:26:26 GMT'), (b'Server', b'scaffolding on HTTPServer2'), (b'X-XSS-Protection', b'0'), (b'X-Frame-Options', b'SAMEORIGIN'), (b'X-Content-Type-Options', b'nosniff'), (b'Alt-Svc', b'h3=":443"; ma=2592000,h3-29=":443"; ma=2592000'), (b'Transfer-Encoding', b'chunked')])
[2026-05-20 20:26:26] INFO : HTTP Request: POST https://aiplatform.googleapis.com/v1beta1/projects/[MON-PROJET-GCP]/locations/global/publishers/google/models/gemini-3.1-flash-tts-preview:generateContent "HTTP/1.1 200 OK"
[2026-05-20 20:26:26] DEBUG : receive_response_body.started request=<Request [b'POST']>
[2026-05-20 20:26:26] DEBUG : receive_response_body.complete
[2026-05-20 20:26:26] DEBUG : response_closed.started
[2026-05-20 20:26:26] DEBUG : response_closed.complete
[2026-05-20 20:26:26] INFO : [DAEMON][GeminiTTS][TOKENS] Model: gemini-3.1-flash-tts-preview | Input: 68 | Output: 162 | Total: 230
[2026-05-20 20:26:26] DEBUG : [DAEMON][GeminiTTS] Audio généré :: 311040 bytes | mime_type :: audio/l16; rate=24000; channels=1
[2026-05-20 20:26:26] DEBUG : [DAEMON][GeminiTTS] PCM encapsulé en WAV :: 311084 bytes | rate :: 24000 Hz | channels :: 1
[2026-05-20 20:26:26] DEBUG : close.started
[2026-05-20 20:26:26] DEBUG : close.complete
[2026-05-20 20:26:26] DEBUG : [DAEMON][TTS] Fichier TTS Gemini généré :: /tmp/jeedom/ttscast_cache/bd3e25e645533ad14c87ce63786f84fa.wav
[2026-05-20 20:26:26] DEBUG : [DAEMON][TTS] URL du fichier TTS à diffuser :: https://jeedom.mondomaine.tld/plugins/ttscast/core/php/ttscast.audio.proxy.php?type=tts&file=bd3e25e645533ad14c87ce63786f84fa.wav
[2026-05-20 20:26:26] DEBUG : [DAEMON][Cast] Diffusion sur le Google Home :: 39854d13-ba25-cfb1-be39-e0f7d047f8ee
[2026-05-20 20:26:26] DEBUG : [DAEMON][Cast] Chromecast trouvé, tentative de lecture TTS
[2026-05-20 20:26:26] DEBUG : [DAEMON][WaitQueue][Cast] Reset requested for 39854d13-ba25-cfb1-be39-e0f7d047f8ee
[2026-05-20 20:26:26] DEBUG : [DAEMON][WaitQueue][Cast] Start Waiting 1 for 39854d13-ba25-cfb1-be39-e0f7d047f8ee (Queue: 2)
[2026-05-20 20:26:26] DEBUG : [DAEMON][WaitQueue][Cast] End Waiting 1 for 39854d13-ba25-cfb1-be39-e0f7d047f8ee
[2026-05-20 20:26:26] DEBUG : [DAEMON][GroupSnapshot] Start for cast: Mini bureau (39854d13-ba25-cfb1-be39-e0f7d047f8ee)
[2026-05-20 20:26:26] DEBUG : [DAEMON][GroupSnapshot] Cast Mini bureau (39854d13-ba25-cfb1-be39-e0f7d047f8ee) not in NETCAST_GROUPS
[2026-05-20 20:26:26] DEBUG : [DAEMON][GroupSnapshot] Final snapshot: {}
[2026-05-20 20:26:26] DEBUG : [DAEMON][Cast] isGroup : False :: Mini bureau
[2026-05-20 20:26:26] DEBUG : [DAEMON][Cast] Volume [avant / pendant] lecture :: [0.20000000298023224 / 20]
[2026-05-20 20:26:26] INFO : Receiver:setting volume to 0.20
[2026-05-20 20:26:26] DEBUG : [Mini bureau([IP-MINI-BUREAU]):8009] Sending: Message urn:x-cast:com.google.cast.receiver from sender-0 to receiver-0: {'type': 'SET_VOLUME', 'volume': {'level': 0.2}, 'requestId': 19}
[2026-05-20 20:26:26] DEBUG : [Salle de bain([IP-SALLE-DE-BAIN]):8009] Sending: Message urn:x-cast:com.google.cast.tp.heartbeat from sender-0 to receiver-0: {'type': 'PING', 'requestId': 16}
[2026-05-20 20:26:26] DEBUG : [Salle de bain([IP-SALLE-DE-BAIN]):8009] Received: Message urn:x-cast:com.google.cast.tp.heartbeat from receiver-0 to sender-0: {'type': 'PONG'}
[2026-05-20 20:26:27] DEBUG : [Mini bureau([IP-MINI-BUREAU]):8009] Received: Message urn:x-cast:com.google.cast.receiver from receiver-0 to sender-0: {'requestId': 19, 'status': {'applications': [{'appId': 'CC1AD845', 'appType': 'WEB', 'displayName': 'Default Media Receiver', 'iconUrl': '', 'isIdleScreen': False, 'launchedFromCloud': False, 'namespaces': [{'name': 'urn:x-cast:com.google.cast.debugoverlay'}, {'name': 'urn:x-cast:com.google.cast.cac'}, {'name': 'urn:x-cast:com.google.cast.media'}], 'senderConnected': True, 'sessionId': '7c277d39-0223-4c6c-9ad2-2f45a017d948', 'statusText': 'Default Media Receiver', 'transportId': '7c277d39-0223-4c6c-9ad2-2f45a017d948', 'universalAppId': 'CC1AD845'}], 'userEq': {'high_shelf': {'frequency': 4500.0, 'gain_db': 0.0, 'quality': 0.707}, 'low_shelf': {'frequency': 150.0, 'gain_db': 0.0, 'quality': 0.707}, 'max_peaking_eqs': 0, 'peaking_eqs': []}, 'version': 2, 'volume': {'controlType': 'master', 'level': 0.20000000298023224, 'muted': False, 'stepInterval': 0.019999999552965164}}, 'type': 'RECEIVER_STATUS'}
[2026-05-20 20:26:27] DEBUG : Received status: CastStatus(is_active_input=None, is_stand_by=None, volume_level=0.20000000298023224, volume_muted=False, app_id='CC1AD845', display_name='Default Media Receiver', namespaces=['urn:x-cast:com.google.cast.debugoverlay', 'urn:x-cast:com.google.cast.cac', 'urn:x-cast:com.google.cast.media'], session_id='7c277d39-0223-4c6c-9ad2-2f45a017d948', transport_id='7c277d39-0223-4c6c-9ad2-2f45a017d948', status_text='Default Media Receiver', icon_url='', volume_control_type='master')
[2026-05-20 20:26:27] DEBUG : [DAEMON][NETCAST][New_Cast_Status] Mini bureau :: STATUS Chromecast change :: CastStatus(is_active_input=None, is_stand_by=None, volume_level=0.20000000298023224, volume_muted=False, app_id='CC1AD845', display_name='Default Media Receiver', namespaces=['urn:x-cast:com.google.cast.debugoverlay', 'urn:x-cast:com.google.cast.cac', 'urn:x-cast:com.google.cast.media'], session_id='7c277d39-0223-4c6c-9ad2-2f45a017d948', transport_id='7c277d39-0223-4c6c-9ad2-2f45a017d948', status_text='Default Media Receiver', icon_url='', volume_control_type='master')
[2026-05-20 20:26:27] DEBUG : [DAEMON][Cast] Thumb path :: https://jeedom.mondomaine.tld/plugins/ttscast/data/images/tts.png
[2026-05-20 20:26:27] DEBUG : [Mini bureau([IP-MINI-BUREAU]):8009] Sending: Message urn:x-cast:com.google.cast.media from sender-0 to 7c277d39-0223-4c6c-9ad2-2f45a017d948: {'media': {'contentId': 'https://jeedom.mondomaine.tld/plugins/ttscast/core/php/ttscast.audio.proxy.php?type=tts&file=bd3e25e645533ad14c87ce63786f84fa.wav', 'streamType': 'BUFFERED', 'contentType': 'audio/wav', 'metadata': {'title': 'TTSCast', 'subtitle': 'Jeedom', 'images': [{'url': 'https://jeedom.mondomaine.tld/plugins/ttscast/data/images/tts.png'}, {'url': 'https://jeedom.mondomaine.tld/plugins/ttscast/data/images/tts.png'}], 'thumb': 'https://jeedom.mondomaine.tld/plugins/ttscast/data/images/tts.png', 'metadataType': 0}}, 'type': 'LOAD', 'autoplay': True, 'customData': {}, 'requestId': 20, 'sessionId': '7c277d39-0223-4c6c-9ad2-2f45a017d948'}
[2026-05-20 20:26:27] DEBUG : [Mini bureau([IP-MINI-BUREAU]):8009] Received: Message urn:x-cast:com.google.cast.media from 7c277d39-0223-4c6c-9ad2-2f45a017d948 to *: {'type': 'MEDIA_STATUS', 'status': [{'mediaSessionId': 4, 'playbackRate': 1, 'playerState': 'IDLE', 'currentTime': 0, 'supportedMediaCommands': 274447, 'volume': {'level': 1, 'muted': False}, 'media': {'contentId': 'https://jeedom.mondomaine.tld/plugins/ttscast/core/php/ttscast.audio.proxy.php?type=tts&file=bd3e25e645533ad14c87ce63786f84fa.wav', 'streamType': 'BUFFERED', 'contentType': 'audio/wav', 'metadata': {'title': 'TTSCast', 'subtitle': 'Jeedom', 'images': [{'url': 'https://jeedom.mondomaine.tld/plugins/ttscast/data/images/tts.png'}, {'url': 'https://jeedom.mondomaine.tld/plugins/ttscast/data/images/tts.png'}], 'thumb': 'https://jeedom.mondomaine.tld/plugins/ttscast/data/images/tts.png', 'metadataType': 0}, 'mediaCategory': 'AUDIO'}, 'currentItemId': 1, 'extendedStatus': {'playerState': 'LOADING', 'media': {'contentId': 'https://jeedom.mondomaine.tld/plugins/ttscast/core/php/ttscast.audio.proxy.php?type=tts&file=bd3e25e645533ad14c87ce63786f84fa.wav', 'streamType': 'BUFFERED', 'contentType': 'audio/wav', 'metadata': {'title': 'TTSCast', 'subtitle': 'Jeedom', 'images': [{'url': 'https://jeedom.mondomaine.tld/plugins/ttscast/data/images/tts.png'}, {'url': 'https://jeedom.mondomaine.tld/plugins/ttscast/data/images/tts.png'}], 'thumb': 'https://jeedom.mondomaine.tld/plugins/ttscast/data/images/tts.png', 'metadataType': 0}, 'mediaCategory': 'AUDIO'}, 'mediaSessionId': 4}, 'repeatMode': 'REPEAT_OFF'}], 'requestId': 20}
[2026-05-20 20:26:27] DEBUG : Media:Updated status <MediaStatus {'metadata_type': 0, 'title': 'TTSCast', 'series_title': None, 'season': None, 'episode': None, 'artist': None, 'album_name': None, 'album_artist': None, 'track': None, 'subtitle_tracks': {}, 'images': [MediaImage(url='https://jeedom.mondomaine.tld/plugins/ttscast/data/images/tts.png', height=None, width=None), MediaImage(url='https://jeedom.mondomaine.tld/plugins/ttscast/data/images/tts.png', height=None, width=None)], 'supports_pause': True, 'supports_seek': True, 'supports_stream_volume': True, 'supports_stream_mute': True, 'supports_skip_forward': False, 'supports_skip_backward': False, 'current_time': 0, 'content_id': 'https://jeedom.mondomaine.tld/plugins/ttscast/core/php/ttscast.audio.proxy.php?type=tts&file=bd3e25e645533ad14c87ce63786f84fa.wav', 'content_type': 'audio/wav', 'duration': None, 'stream_type': 'BUFFERED', 'idle_reason': None, 'media_session_id': 4, 'playback_rate': 1, 'player_state': 'IDLE', 'supported_media_commands': 274447, 'volume_level': 1, 'volume_muted': False, 'media_custom_data': {}, 'media_metadata': {'title': 'TTSCast', 'subtitle': 'Jeedom', 'images': [{'url': 'https://jeedom.mondomaine.tld/plugins/ttscast/data/images/tts.png'}, {'url': 'https://jeedom.mondomaine.tld/plugins/ttscast/data/images/tts.png'}], 'thumb': 'https://jeedom.mondomaine.tld/plugins/ttscast/data/images/tts.png', 'metadataType': 0}, 'current_subtitle_tracks': [], 'last_updated': datetime.datetime(2026, 5, 20, 20, 26, 27, 862550, tzinfo=datetime.timezone.utc)}>
[2026-05-20 20:26:27] DEBUG : [DAEMON][NETCAST][New_Media_Status] Mini bureau :: STATUS Media change :: <MediaStatus {'metadata_type': 0, 'title': 'TTSCast', ... 'content_id': 'https://jeedom.mondomaine.tld/plugins/ttscast/core/php/ttscast.audio.proxy.php?type=tts&file=bd3e25e645533ad14c87ce63786f84fa.wav', 'content_type': 'audio/wav', 'duration': None, 'stream_type': 'BUFFERED', 'idle_reason': None, 'media_session_id': 4, 'playback_rate': 1, 'player_state': 'IDLE', ...}>
[2026-05-20 20:26:27] DEBUG : [DAEMON][Cast] Diffusion lancée :: <MediaStatus player_state='IDLE' idle_reason=None content_id='https://jeedom.mondomaine.tld/plugins/ttscast/core/php/ttscast.audio.proxy.php?type=tts&file=bd3e25e645533ad14c87ce63786f84fa.wav' content_type='audio/wav'>
[2026-05-20 20:26:27] DEBUG : [Mini bureau([IP-MINI-BUREAU]):8009] Received: Message urn:x-cast:com.google.cast.receiver from receiver-0 to *: {'requestId': 0, 'status': {'applications': [{'appId': 'CC1AD845', ..., 'statusText': 'Casting: TTSCast', ...}], 'volume': {'level': 0.20000000298023224, ...}}, 'type': 'RECEIVER_STATUS'}
[2026-05-20 20:26:27] DEBUG : [DAEMON][COM] Send to jeedom : {'castsRT': {'39854d13-ba25-cfb1-be39-e0f7d047f8ee': {'uuid': '39854d13-ba25-cfb1-be39-e0f7d047f8ee', 'is_stand_by': '0', 'volume_level': 20, 'volume_muted': False, 'display_name': 'Default Media Receiver', 'app_id': 'CC1AD845', 'session_id': '7c277d39-0223-4c6c-9ad2-2f45a017d948', 'status_text': 'Casting: TTSCast', 'realtime': 1, 'status_type': 'cast', 'player_state': 'IDLE', 'is_idle': '1', 'is_busy': '0', 'title': 'TTSCast', 'artist': 'N/A', 'duration': None, 'current_time': 0, 'image': 'https://jeedom.mondomaine.tld/plugins/ttscast/data/images/tts.png', 'album_name': 'N/A', 'content_type': 'audio/wav', 'stream_type': 'BUFFERED', 'last_updated': '20/05/2026 - 20:26:27'}}}
[2026-05-20 20:26:27] DEBUG : Starting new HTTP connection (1): 127.0.0.1:80
[2026-05-20 20:26:27] DEBUG : [Mini bureau([IP-MINI-BUREAU]):8009] Received: Message urn:x-cast:com.google.cast.media from 7c277d39-0223-4c6c-9ad2-2f45a017d948 to sender-0: {'type': 'LOAD_FAILED', 'requestId': 20, 'itemId': 1}
[2026-05-20 20:26:27] DEBUG : Media:Load failed with code None(unknown code) for queue item id 1
[2026-05-20 20:26:27] DEBUG : Media:Not firing load failed
[2026-05-20 20:26:27] DEBUG : [Mini bureau([IP-MINI-BUREAU]):8009] Received: Message urn:x-cast:com.google.cast.media from 7c277d39-0223-4c6c-9ad2-2f45a017d948 to *: {'type': 'MEDIA_STATUS', 'status': [{'mediaSessionId': 4, 'playbackRate': 1, 'playerState': 'IDLE', 'currentTime': 0, 'supportedMediaCommands': 274447, 'volume': {'level': 1, 'muted': False}, 'currentItemId': 1, 'idleReason': 'ERROR'}], 'requestId': 0}
[2026-05-20 20:26:27] DEBUG : Media:Updated status <MediaStatus {'metadata_type': 0, 'title': 'TTSCast', ... 'content_id': 'https://jeedom.mondomaine.tld/plugins/ttscast/core/php/ttscast.audio.proxy.php?type=tts&file=bd3e25e645533ad14c87ce63786f84fa.wav', 'content_type': 'audio/wav', 'idle_reason': 'ERROR', 'player_state': 'IDLE', ...}>
[2026-05-20 20:26:27] DEBUG : [DAEMON][NETCAST][New_Media_Status] Mini bureau :: STATUS Media change :: <MediaStatus ... 'idle_reason': 'ERROR', 'player_state': 'IDLE' ...>
[2026-05-20 20:26:28] DEBUG : [Mini bureau([IP-MINI-BUREAU]):8009] Received: Message urn:x-cast:com.google.cast.receiver from receiver-0 to *: {'requestId': 0, 'status': {'applications': [{'appId': 'CC1AD845', ..., 'statusText': 'Default Media Receiver', ...}], 'volume': {'level': 0.20000000298023224, ...}}, 'type': 'RECEIVER_STATUS'}
[2026-05-20 20:26:28] DEBUG : http://127.0.0.1:80 "POST /plugins/ttscast/core/php/jeettscast.php?apikey=*** HTTP/1.1" 200 0
[2026-05-20 20:26:28] DEBUG : [DAEMON][COM] Send to jeedom: {'castsRT': {'39854d13-ba25-cfb1-be39-e0f7d047f8ee': { ... 'player_state': 'IDLE', 'is_idle': '1', 'is_busy': '0', 'content_type': 'audio/wav', 'stream_type': 'BUFFERED', 'last_updated': '20/05/2026 - 20:26:27', ... 'status_text': 'Default Media Receiver'}}}
[2026-05-20 20:26:32] DEBUG : [Mini bureau([IP-MINI-BUREAU]):8009] Received: Message urn:x-cast:com.google.cast.tp.heartbeat from Tr@n$p0rt-0 to Tr@n$p0rt-0: {'type': 'PING'}
[2026-05-20 20:26:32] DEBUG : [Mini bureau([IP-MINI-BUREAU]):8009] Sending: Message urn:x-cast:com.google.cast.tp.heartbeat from sender-0 to receiver-0: {'type': 'PONG'}
[2026-05-20 20:26:34] DEBUG : Resolved service HostServiceInfo(host='[IP-HOME-MAX]', port=8009) to [IP-HOME-MAX]
[2026-05-20 20:26:34] DEBUG : Resolved service HostServiceInfo(host='[IP-HOME-MAX]', port=8009) to [IP-HOME-MAX]
[2026-05-20 20:26:34] DEBUG : [Chromecast Ultra rdc([IP-CC-RDC]):8009] Sending: Message urn:x-cast:com.google.cast.tp.heartbeat from sender-0 to receiver-0: {'type': 'PING', 'requestId': 17}
[2026-05-20 20:26:34] DEBUG : [Chromecast Ultra rdc([IP-CC-RDC]):8009] Received: Message urn:x-cast:com.google.cast.tp.heartbeat from receiver-0 to sender-0: {'type': 'PONG'}
[2026-05-20 20:26:34] DEBUG : Resolved service HostServiceInfo(host='[IP-AMPLI-SALON]', port=8009) to [IP-AMPLI-SALON]
et côté log TTS CAST:
[2026-05-20 22:26:22] DEBUG [CMD] LogicalId :: tts
[2026-05-20 22:26:22] DEBUG [CMD] tts :: {"background":"0","title":"\"volume\": 20, \"ding\": true, \"wait\": 1, \"style\": \"Dans un contexte \u00e9pique de d\u00e9marrage d'une session de jeu video, avec un ton humoristique mais t\u00e9n\u00e9breux tout en restant amical et pas effrayant pour un enfant. fin en envol\u00e9e lyrique !\", \"engine\": \"geminitts\"","message":"test de synth\u00e8se vocale, allons y les amis, on d\u00e9marre la session !!","cmdNotification":""}
[2026-05-20 22:26:22] DEBUG [CMD] tts (Message / GoogleUUID / CmdNotification) :: test de synthèse vocale, allons y les amis, on démarre la session !! / 39854d13-ba25-cfb1-be39-e0f7d047f8ee / 0
[2026-05-20 22:26:22] DEBUG [PlayTTS] ttsOptions After Array :: "volume": 20, "ding": true, "wait": 1, "style": "Dans un contexte épique de démarrage d'une session de jeu video, avec un ton humoristique mais ténébreux tout en restant amical et pas effrayant pour un enfant. fin en envolée lyrique !", "engine": "geminitts"
[2026-05-20 22:26:22] DEBUG [CALLBACK] TTSCast TTS Last Message
[2026-05-20 22:26:22] DEBUG [CALLBACK] TTS Last Message [Mini bureau] :: "test de synthèse vocale, allons y les amis, on démarre la session !!" (UUID=39854d13-ba25-cfb1-be39-e0f7d047f8ee)
[2026-05-20 22:26:27] DEBUG [CALLBACK] TTSCast RealTime
[2026-05-20 22:26:27] DEBUG [CALLBACK] TTSCast RealTime :: 39854d13-ba25-cfb1-be39-e0f7d047f8ee
[2026-05-20 22:26:27] DEBUG [REALTIME][CAST] Status Type :: cast
[2026-05-20 22:26:27] DEBUG [REALTIME][CAST] Cast cmd NON EXIST :: online
[2026-05-20 22:26:27] DEBUG [REALTIME][CAST] Cast cmd event :: is_idle = 1
[2026-05-20 22:26:27] DEBUG [REALTIME][CAST] Cast cmd event :: is_busy = 0
[2026-05-20 22:26:27] DEBUG [REALTIME][CAST] Cast cmd event :: volume_level = 20
[2026-05-20 22:26:27] DEBUG [REALTIME][CAST] Cast cmd event :: volume_muted =
[2026-05-20 22:26:27] DEBUG [REALTIME][CAST] Cast cmd NON EXIST :: lastschedule
[2026-05-20 22:26:27] DEBUG [REALTIME][CAST] Cast cmd NON EXIST :: lastschedulets
[2026-05-20 22:26:27] DEBUG [REALTIME][CAST] Cast cmd event :: player_state = IDLE
[2026-05-20 22:26:27] DEBUG [REALTIME][CAST] Cast cmd event :: display_name = Default Media Receiver
[2026-05-20 22:26:27] DEBUG [REALTIME][CAST] Cast cmd event :: app_id = CC1AD845
[2026-05-20 22:26:27] DEBUG [REALTIME][CAST] Cast cmd event :: session_id = 7c277d39-0223-4c6c-9ad2-2f45a017d948
[2026-05-20 22:26:27] DEBUG [REALTIME][CAST] Cast cmd event :: status_text = Casting: TTSCast
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd NON EXIST :: tts_last_message
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: title = TTSCast
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: artist = N/A
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: album_name = N/A
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: duration =
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: current_time = 0
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: content_type = audio/wav
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: stream_type = BUFFERED
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: last_updated = 20/05/2026 - 20:26:27
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: image = https://jeedom.mondomaine.tld/plugins/ttscast/data/images/tts.png
[2026-05-20 22:26:28] DEBUG [CALLBACK] TTSCast RealTime
[2026-05-20 22:26:28] DEBUG [CALLBACK] TTSCast RealTime :: 39854d13-ba25-cfb1-be39-e0f7d047f8ee
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Status Type :: cast
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd NON EXIST :: online
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: is_idle = 1
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: is_busy = 0
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: volume_level = 20
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: volume_muted =
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd NON EXIST :: lastschedule
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd NON EXIST :: lastschedulets
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: player_state = IDLE
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: display_name = Default Media Receiver
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: app_id = CC1AD845
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: session_id = 7c277d39-0223-4c6c-9ad2-2f45a017d948
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: status_text = Default Media Receiver
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd NON EXIST :: tts_last_message
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: title = TTSCast
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: artist = N/A
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: album_name = N/A
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: duration =
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: current_time = 0
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: content_type = audio/wav
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: stream_type = BUFFERED
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: last_updated = 20/05/2026 - 20:26:27
[2026-05-20 22:26:28] DEBUG [REALTIME][CAST] Cast cmd event :: image = https://jeedom.mondomaine.tld/plugins/ttscast/data/images/tts.png