@Tobias:
Das Reading "playing" wird bei einem Remote-Aufruf gesetzt.
Da es keine Rückmeldung vom entfernten Gerät gibt, wird das Reading nicht zurückgesetzt.
Ich schlage folgende Änderung vor: Verschieben des "readingsSingleUpdate" in den Block DIRECT.
vorher:
Zitat426 readingsSingleUpdate($hash, "playing", "1", 1);
427 if($hash->{MODE} eq "DIRECT") {
428 Text2Speech_PrepareSpeech($hash, join(" ", @a));
nachher
Zitat426 if($hash->{MODE} eq "DIRECT") {
427 Text2Speech_PrepareSpeech($hash, join(" ", @a));
428 readingsSingleUpdate($hash, "playing", "1", 1);
Ausserdem müsste das Reading "playing" in der "Text2Speech_AbortFn" auf 0 gesetzt werden, sonst bleibt es nach einem Abbruch auf 1.
Das ist unabhängig von der vorhergehenden Änderung.
Zitat#####################################
sub Text2Speech_AbortFn($) {
my ($hash) = @_;
delete($hash->{helper}{RUNNING_PID});
Log3 $hash->{NAME}, 2, "Text2Speech: BlockingCall for ".$hash->{NAME}." was aborted";
readingsSingleUpdate($hash, "playing", "0", 1);
}
Vielleicht könntest Du das auch ins Modul übernehmen.
Vielen Dank
Ellert