Sonos: Erweiterung von Speak

Begonnen von Reinerlein, 28 Februar 2015, 20:11:08

Vorheriges Thema - Nächstes Thema

Reinerlein

Hallo zusammen,

ich habe gerade eine neue Version eingecheckt, mit der die Speak-Anweisung erweitert wurde.
Man kann dort jetzt in den Text Verweise auf MP3-Dateien einbetten:

set Sonos_Wohnzimmer Speak 15 de |/path/to/gong.mp3| Hier die Durchsage.
Es ist nur darauf zu achten, dass vor/hinter dem "|" ein Leerzeichen steht...

Man kann am Sonos-Device noch ein Attribut für einen Standardpfad definieren, sowie die Angabe von .mp3 weglassen. Damit kann man kurz und elegant folgendes schreiben:

set Sonos_Wohnzimmer Speak 15 de |gong| Hier die Durchsage


Es können natürlich auch mehrere MP3-Dateien an verschiedenen Stellen angegeben werden:

set Sonos_Wohnzimmer Speak 15 |gong| Hier der erste Teil der Durchsage. |tada| Und hier noch eine Nachmeldung.


Im Wiki sind noch ein paar weitere Hinweise und Tipps angegeben...

Alle Änderungen auf einen Blick:

  • Der Speak-Befehl kann jetzt auch eingeschobene MP3-Datei-Verweise verarbeiten. Diese werden im Text mit "|" eingeschlossen, und mit Leerzeichen abgetrennt. z.B.: "Dies ist ein |/path/to/tada.mp3| Test.". Funktioniert nur bei "Speak" (und nicht bei eigenen Programmaufrufen wie "Speak1")
  • Es gibt für die einfachere Handhabung der neuen Speakmöglichkeiten zwei neue Attribute "targetSpeakMP3FileDir" und "targetSpeakMP3FileConverter". Mit "targetSpeakMP3FileDir" kann ein Standardverzeichnis für die eingschobenen MP3-Dateien angegeben werden, und mit "targetSpeakMP3FileConverter" kann ein MP3-Konverter definiert werden, der am Ende die zusammengebaute Durchsage-MP3-Datei nochmal sauber durchkodiert (um z.B. Restzeitanzeigeprobleme zu beheben).
  • Beim internen Entfernen der Player-Objekte (wenn z.B. die Subscription nicht erneuert werden konnte), werden nun alle Referenzen entfernt. Teilweise wurden Subscription-Referenzen noch aufbewahrt.

Wie immer ab sofort im SVN oder ab Morgen im Update...

Grüße
Reinerlein

Loredo

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

jehu

Danke. Klasse Funktion.  :)

Grüße
Jens
FHEM on RPi 2,
HM-CFG-USB - HM-CC-RT-DN - HM-ES-PMSw1-Pl - HM-LC-Bl1PBU-FM - HM-LC-SW1-FM - HM-LC-Sw1PBU-FM - HM-SEC-SCo - MiLight - SONOS - Lacrosse Jeelink
FTUI auf ODYS GATE

rretsiem

Hallo,

wäre es möglich diese Funktion zu erweitern, so dass auch MP4/AAC Dateien wiedergegeben werden können?

Reinerlein

Hallo rretsiem,

du kannst es einfach versuchen, ich glaube aber nicht wirklich, dass es geht.

Ich verbinde die aus der Anweisung entstehenden MP3-Dateien einfach durch hintereinanderschreiben in eine Datei. Ich bin mir nicht sicher, ob man das mit einer MP4-Datei (oder auch AAC-Datei) auch so machen kann.
Des Weiteren muss Sonos diese Datei natürlich auch abspielen können, aber das kannst du ja noch einfacher Testen.

Grüße
Reinerlein

SlvrStrko4

Hallo zusammen,

an alle die vielleicht das gleiche "Problem" haben wie ich es gerade hatte:
Nach dem Setzen von dem Attribut "targetSpeakMP3FileDir" sollte man einmal ein shutdown restart machen.
Vorher klappt es nämlich nicht ;-)

dantist

Zitat von: SlvrStrko4 am 14 Juli 2015, 13:23:00
Nach dem Setzen von dem Attribut "targetSpeakMP3FileDir" sollte man einmal ein shutdown restart machen.
Vorher klappt es nämlich nicht ;-)

Danke, das hat mir grade tatsächlich geholfen  :)

willib

Könntest du das Attribut targetSpeakMP3FileConverter
bitte nochmal näher erläutern? Mir wird das aus dem Wiki nicht klar.
Wie muss ich unter raspbian intallieren und wie lautet dann das ganze Attribut?
Muss ich infile und outfile selber definieren oder macht das das Modul?
Vielen Dank
FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD

Reinerlein

Hi willib,

einfaches Beispiel für das freie Tool avconv...

Installieren

sudo apt-get install ffmpeg


Attribute am Sonos-Device komfigurieren:

attr Sonos targetSpeakMP3FileConverter /usr/bin/avconv -i %infile% %outfile%


SubProzess neustarten nicht vergessen (disable=1 am Sonos-Device ... etwas warten ... disable wieder entfernen).

Wenn du ein anderes Programm verwendest, kann es sein, dass die Parameterübergabe für die Ein- und Ausgabe anders gemacht werden muss. Deshalb die Platzhalter, die natürlich vom Modul beim Aufruf durch korrekte Dateinamen befüllt werden.

Fiktives Beispiel

attr Sonos targetSpeakMP3FileConverter /path/to/bin --andererParameter=1 --inputfilename=%infile% --outputfilename=%outfile% --nocheinandererParameter=2


Ist es etwas klarer geworden?

Grüße
Reinerlein

willib

Vielen Dank für die schnelle Antwort.
Also genau wie im Wiki. Mich hatte verwirrt, dass ich ffmpeg installieren muss aber avconv im Attribut setzen muss.
FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD

willib

Geht leider nicht.
beim Installieren kommt
Package ffmpeg is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source
Daher habe ich ein anderes Package genommen welches angeblich avconv enthält
sudo apt-get install libav-tools
Ich erhalte nach setzen des Attributes, Neustart und Speak Befehl folgendes im Logfile:
Can't exec "/usr/bin/avconv": No such file or directory at ./FHEM/00_SONOS.pm line 4861.
Hast du bitte noch einen Tipp?
FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD

Reinerlein

Hi willib,

du müsstest mal schauen, wo avconv abgelegt wurde.
Also auf der Konsole mal testen:

which avconv


Und überhaupt testen, ob es auf der Konsole aufrufbar ist...

Grüße
Reinerlein

willib

#12
Bei which avconv passiert nichts. Genauso bei which ffmpeg

Wie man auf der Konsole ein Programm aufruft habe ich leider auch nicht rausfinden können.

Edit:
Hab im Anfängerbereich einen neuen Thread aufgemacht.
https://forum.fhem.de/index.php/topic,96163.0.html
FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD