Letzte Nachricht aus myTTS wiedergeben

Begonnen von z0lt1, 30 November 2018, 17:50:25

Vorheriges Thema - Nächstes Thema

z0lt1

Hallo Zusammen,

ich grüble gerade an einem wahrscheinlich einfachen Problem. Ich möchte gerne die letzte von myTTS abgespielte File nochmal wiedergeben. Der Pfad ist ja als reading unter "lastFilename" gespeichert. Wenn ich jedoch
set myTTS tts :cache/ccaf3d648f9ac2e2c505b41ac1c52f38.mp3:
eingebe, dann wird nur der Pfad mit "templates" davor aufgesagt. Ist eigentlich klar, weil FHEM die Datei im templates-Ordner erwartet und dort diese nicht finden kann. Aber mit welchem Befehl sage kann ich ihm denn den Pfad in Form des Readings "lastFilename" mitteilen?

Hintergrund: Ich lasse mich über myTTS warnen wenn irgendwo irgendwelche Temperaturen zu niedrig / zu hoch sind, und manchmal verpasst man den Anfang und würde die Nachricht gerne nochmal hören. Den Button für das Wiederholen des Befehls würde ich auf meinem TabletUI realisieren.

z0lt1

Keiner eine Idee? Im Endeffekt müsste ich nur den Befehl wissen, wie ich myTTS den Pfad der mp3 mitteilen kann der er abspielen soll.

schwatter

#2
Hier steht es  :)

https://forum.fhem.de/index.php?topic=38143.0

Daher würde ich empfehlen, mpg321 oder ähnliches verwenden.

z0lt1

Hallo, danke für deine Antwort. Das habe ich schon gelesen, aber ich bin der Meinung dass es mir nicht hilft, denn wenn ich da einen Pfad angebe, dann wird ja der unter opt/fhem/cache/... angelegt. Und meine Dateien liegen aber im cache-Verzeichnis... das heißt ich kann gar nicht auf das Verzeichnis verweisen wo meine Dateien liegen!

Otto123

Du könntest einfach den Pfad komplett ergänzen (/opt/fhem/...) und mplay ohne das TTS Modul aufrufen. So in der Art:
"/usr/bin/mplayer /opt/fhem/cache/fc59dce9972d9e6d3dd5e5b451879832.mp3"
Natürlich mit ReadingsVal("NameDesTTS","lastFilename","") und einem qx() Aufruf

Nur so als Idee

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

z0lt1

Das klingt genau nach dem was ich bräuchte.

Jetzt kommt wieder die Anfängerfrage: Wie gebe ich diesen qx() Aufruf/Befehl in welches Fenster ein? Hast du ein Anfängerbeispiel zum Nachvollziehen und Verstehen?

Otto123

#6
Moin,

schnell zum nachlesen: Meine Notiz

Ich baue Dir noch was...  ;D
Edit: Schnelles Beispiel - Edit: Allerdings keine gute Idee, das arbeitet blockierend!
{my $mp3file= ReadingsVal("MyTTS","lastFilename","");;qx "/usr/bin/mplayer /opt/fhem/$mp3file"}


Edit zweites Beispiel, nicht blockierend und keine Ausgabe im Log
{my $cmd = "/usr/bin/mplayer /opt/fhem/".ReadingsVal("MyTTS","lastFilename","");; system ("$cmd >/dev/null &")}

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

z0lt1

Hallo Otto,

vielen Dank für deine ausführliche Hilfe und den Link zu deiner Seite wo das sehr schön erklärt wird. Ich denke da muss ich mich mal ein wenig reinfuchsen um das alles zu verstehen.

Besten Dank!