Ich habe mir jetzt einen Workaround gebastelt und würde mein Problem als gelöst bezeichnen wollen. Auch wenn ich dadurch den Eindruck habe, dass ich unter Linux Probleme genauso mit der Holzhammermethode lösen kann, wie unter Windows ...
Gedanke: Die Datei liegt ja auf einem Webserver ... holdmybeer
Linux-Terminal:
wget -qO /opt/iobroker/cache/sayit.mp3 IP:8082/state/sayit.0.tts.mp3
sudo chown iobroker:iobroker /opt/iobroker/cache/sayit.mp3
Dann angepasster Hardlink:
sudo ln /opt/iobroker/cache/sayit.0.say.mp3 /home/user/node-sonos-http-api-master/static/clips/sayit.mp3
Und dann zum Schluss im eigentlichen ioBroker-Script folgende Veränderung:
function AusgabeAnrufer(){
//setState("sayit.0.tts.text", "Anruf von. " + getState(Anrufer).val);
var vol ="sayit.0.tts.volume";
setState (vol,70);
setState("sayit.0.tts.text", "Anruf von. " + rufnummer2name(getState(Anrufer).val));
/* Ubuntu Datei verlinken:
ln /opt/iobroker/cache/sayit.0.say.mp3
/home/user/node-sonos-http-api-master/static/clips/sayit.mp3
*/
// wget: Download der Datei über Terminal
exec ("wget -qO /opt/iobroker/cache/sayit.mp3 IP:8082/state/sayit.0.tts.mp3")
// exec ("curl 'http://192.168.66.111:5005/flur/clip/sayit.mp3/30'");
// Verzögerte Auführung der Wiedergabe für Kopierbefehl, Delay 300 ms
setTimeout(function() {
exec ("curl 'http://192.168.66.111:5005/Office/clip/sayit.mp3/30'");
}, 600);
}
Damit klappt alles wie gewünscht. Die 300 ms 600 msVerzögerung reichen bei mir. 300 ms klappt nicht immer.