Bonjour, sujet plus très actif ces temps ci ...
Je suis avec le plug in en beta (version du 24 avril) que je ne mets pas à jour car toujours fonctionnel sur un jeedom non beta en version 3.3.32.
Tout fonctionnait sur sonos 1, 3, 5, beam ... mais sur un sonos one, le TTS restait bloqué à répéter le message envoyé 21 fois ... un peu lassant. (Ce sonos me sert de réveil, alors le matin, me réveiller avec 21 fois la météo avant de lancer la radio ...)
En fouillant, j'ai trouvé dans le fichier :
../Html/plugins/sonos3/core/class/sonos3.class.php
A la fin du fichier, dans le dernier elseif, dans la boucle while, j'ai remplacé $loop > 20 par $loop > 1 …
Ce qui donne :
Code : Tout sélectionner
} elseif ($this->getLogicalId() == 'tts') {
$_options['message'] = str_replace(array('[', ']', '#', '{', '}'), '', $_options['message']);
$path = explode('/', trim(config::byKey('tts_path', 'sonos3'), '/'));
$server = new Server(config::byKey('tts_host', 'sonos3'), config::byKey('tts_username', 'sonos3'), config::byKey('tts_password', 'sonos3'));
$share = $server->getShare($path[0]);
$adapter = new SmbAdapter($share);
$filesystem = new Filesystem($adapter);
$folder = array_pop($path);
$directory = new Directory($filesystem, config::byKey('tts_host', 'sonos3') . '/' . implode('/', $path), $folder);
$track = new TextToSpeech(trim($_options['message']), $directory, new JeedomProvider(network::getNetworkAccess('internal') . '/core/api/tts.php?apikey=' . config::byKey('api', 'core')));
$loop = 1;
while (true) {
try {
if ($_options['title'] != '' && is_numeric($_options['title'])) {
$controller->interrupt($track, $_options['title']);
} else {
$controller->interrupt($track);
}
break;
} catch (Exception $e) {
log::add('sonos3', 'debug', $e->getMessage());
}
if ($loop > 1) {
break;
}
usleep(500000);
$loop++;
}
}
J'ai pas bien compris pourquoi il devait boucler 20 x ...
Ca fait 4 jours que je l'emploi ... ca n'a pas buggué, les tts fonctionnent toujours sur les autres sonos, mais plus de répétition sur le sonos One !
Evidemment indispensable de faire un back up avant changement et de prendre toutes les précautions nécessaires, mais pour moi ça à l'air de fonctionner ...
Donc si ça peut aider qqn ...