NEWS
Bitte um Hilfe - SayIt ohne und mit Chromecast-Audio
-
Ich versuche schon seit Wochen meine Probleme mit der Tonausgabe des Sayit-Adapters zu lösen und komme zu keinem Ergebnis. Daher wäre es schön, wenn sich Jemand finden würde und mit mir notfalls klein in klein unterschiedliche Lösungsansätze versucht.
Folgend mein aktuelles Haupt-System, auf welchem ioBroker läuft:
Platform: linux
Betriebssystem: linux
Architektur: x64
CPUs: 8
Geschwindigkeit: 1748 MHz
Modell: Intel(R) Core(TM) i7-3630QM CPU @ 2.40GHz
RAM: 7.67 GB
Node.js: v12.19.0
NPM: 6.14.8
Festplatte Größe: 456.96 GB
Festplatte frei: 426.83 GBAnzahl der Adapter: 369
Aktive Instanzen: 29Nun zu meine Problemen, die zuletzt auch schon auf einem Vorgängersystem mit ähnlicher Ausstattung vorhanden waren:
Im Zusammenhang mit dem sayit-Adapter hatte ich nach Erstinstallation und Einrichtung von einem Master (jeweils Linux Mint 18/19/20 inkl Cinnamon) und und mehreren Slave-Systemen (Raspberry Pi OS auf Buster-Basis 3 ohne gui und einer mit gui) keine Probleme mit dem sayit-Adapter. Die Ausgabe lief jeweils über den installierten mpg321 und das Leben war schön. Am den jeweiligen RaspBerry PI 3b+ und dem Master mit Mint war jeweils ein Lautsprecher am Klingeneingang angeschlossen.
Im Laufe von Aktualisierung des OS und auch ioBrokers kam es dazu, dass ein Host nach dem Anderen in Sachen sayit nicht mehr zu Ausgaben zu bewegen war. Ich muss gestehen, dass ich auch nicht penibel festgehalten und getestet habe, ab welchem Update welches Systems die Probleme entstanden sind.
Mittlerweile habe ich oben genanntes Hauptsystem als alleinigen Host installiert und die alten Hosts vom Netz genommen, um alles neu aufzubauen. Hier ist auch mpg321 installiert, ioBroker mit der Einstellung "latest" läuft soweit stabil und stabiler, als auf dem alten System.
Nutzung des mpg auf Kommandoebene funktioniert auch. Nur SayIt mag ihn nicht zum Reden bringen. Ich habe also den MPlayer installiert und über den ist eine Ausgabe möglich, allerdings werden jeweils die Erste Silbe der Sprachausgabe verschluckt.
Ich dachte mir, versuche doch dein Glück mit einem Chromecast Audio, an welchem ein Lautsprecher angeschlossen ist und dieser ist soweit im System integriert, es lässt sich aus ioBroker über die URL-Eingabe aus der Objekteliste (url2play) auch eine Ausgabe auf dem Chromecast generieren. Soweit so schön. Nur finde ich im SayIt-Adapter keine Möglichkeit den Chromecast als Ausgabegerät einzustellen.
In den OS habe ich alle Gruppen, die Ansatzweise nach Audio-Ausgabe aussahen den User ioBroker als Mitglied eingetragen.
ioBroker ist aktuell.
Das OS ist aktuell.
Der ioBroker-Fixer der Entwickler ist mehrfach aufgerufen worden.Wenn ich mpg321 als Ausgabe für den SayIt auswähle erhalte ich z.B. folgende Meldung:
2020-10-11 11:35:52.552 - silly: sayit.0 (848180) States user redis pmessage sayit.0.*/sayit.0.tts.text:{"val":"Achtung","ack":false,"ts":1602408952550,"q":0,"from":"system.adapter.javascript.0","user":"system.user.admin","lc":1602408952550} 2020-10-11 11:35:52.553 - info: sayit.0 (848180) saying: Achtung 2020-10-11 11:35:52.553 - debug: sayit.0 (848180) Cache File /opt/iobroker/cache/58f8e99df3aec0bd2180b245dd7c89b7.mp3 for "de;Achtung" not found 2020-10-11 11:35:52.644 - debug: sayit.0 (848180) Caching File /opt/iobroker/cache/58f8e99df3aec0bd2180b245dd7c89b7.mp3 for "de;Achtung" now 2020-10-11 11:35:52.645 - info: sayit.0 (848180) Copied file "/opt/iobroker/iobroker-data/sayit/sayit.0.say.mp3" to "/opt/iobroker/cache/58f8e99df3aec0bd2180b245dd7c89b7.mp3" 2020-10-11 11:35:52.650 - debug: sayit.0 (848180) Duration "Achtung": 3 2020-10-11 11:35:52.653 - silly: sayit.0 (848180) States user redis pmessage sayit.0.*/sayit.0.tts.playing:{"val":true,"ack":false,"ts":1602408952652,"q":0,"from":"system.adapter.sayit.0","user":"system.user.admin","lc":1602408952652} 2020-10-11 11:35:52.657 - error: sayit.0 (848180) Cannot play:Error: Command failed: mpg321 -g 20 /opt/iobroker/iobroker-data/sayit/sayit.0.say.mp3 High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2, and 3. Version 0.3.2-1 (2012/03/25). Written and copyrights by Joe Drew, now maintained by Nanakos Chrysostomos and others. Uses code from various people. See 'README' for more! THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK! tcgetattr(): Inappropriate ioctl for device Directory: /opt/iobroker/iobroker-data/sayit Playing MPEG stream from sayit.0.say.mp3 ... MPEG 2.0 layer III, 32 kbit/s, 24000 Hz mono Error opening unknown libao pulse driver. (Is device in use?) 2020-10-11 11:35:52.659 - silly: sayit.0 (848180) States user redis pmessage sayit.0.*/sayit.0.tts.playing:{"val":false,"ack":false,"ts":1602408952657,"q":0,"from":"system.adapter.sayit.0","user":"system.user.admin","lc":1602408952657}
Aber von der Kommandoeben lässt sich diese generierte mp3-Datei aus dem Cache von ioBroker ohne Probleme aufrufen und ich erhalte auch eine Soundausgabe. Es muss sich also um irgend ein Rechteproblem handeln. Ich jedoch komme nicht mehr weiter.
Es wäre wirklich schön, wenn sich einer meiner erbarmt und mir aus meiner Blindheit heraushilft
Sowohl was die Soundausgabe mittels des mpg321 angeht, als auch die Einbindung der Soundausgabe über den Chromecast-Audio mit Hilfe des SayIt-Adapters. -
@Berchemer In der Beschreibung zum Adapter steht folgendes:
myCustomPlayer --option /opt/iobroker/node_modules/iobroker.sayit/say.mp3
Also was wohl nicht funktioniert ist wenn /opt/iobroker/iobroker-data/sayit/sayit.0.say.mp3 aufgerufen wird.
Sollte vielleicht so aussehen
/opt/iobroker/iobroker-data/sayit/sayit.0/say.mp3
oder
/opt/iobroker/iobroker-data/sayit/say.mp3
Kann auch nicht weiter helfen, da ich den Adapter nicht im Einsatz habe. War mir nur aufgefallen. -
@Berchemer es wäre zu prüfen ob die Rechte für das Sound device passen. Das log meldet
Error opening unknown libao pulse driver. (Is device in use?)
Ausgehend davon das es von der Konsole aus geht muss da was im Argen liegen.
Mit welchem Benutzer testest du das auf der Konsole ?
-
@MCU sagte in Bitte um Hilfe - SayIt ohne und mit Chromecast-Audio:
lso was wohl nicht funktioniert ist wenn /opt/iobroker/iobroker-data/sayit/sayit.0.say.mp3 au
Danke für den Hinweis
Das ist jedoch keine Einstellung von mir sondern wird vom Adapter automatisch so geloggt, wenn ein neuer Text zur Ausgabe gewählt wird und dieser vorher noch nicht im Cache gewesen ist. Die Datei wird nur in den Cache kopiert, woraus sie dann mit dem eingestellten Soundausgabeprogramm (z.B. mplayer oder oben mpg321) ausgegeben werden soll.
Das kopieren in den Cache funktioniert auch wunderbar, da die Datei von manuell der Konsole aufgerufen werden kann und dann auch ausgegeben wird. -
@Asgothian sagte in Bitte um Hilfe - SayIt ohne und mit Chromecast-Audio:
@Berchemer es wäre zu prüfen ob die Rechte für das Sound device passen. Das log meldet
Error opening unknown libao pulse driver. (Is device in use?)
Ausgehend davon das es von der Konsole aus geht muss da was im Argen liegen.
Mit welchem Benutzer testest du das auf der Konsole ?
Danke auch Dir für Deine Hilfe
Getestet wird entweder direkt aus der GUI, von wo ich die Konsole aufrufe und dort somit mit dem Standardnutzer unterwegs bin, der im Linux bei Installation angegeben wurde.
Das Gleiche auch, wenn ich über Putty reingehe. Es ist der Standardnutzer, mit welchem ich mich über Putty einlogge.
Konsolenaufruf funktioniert, aber Aufruf durch den Adapter aus ioBroker, welches auf dem System selbst installiert ist, funktioniert nicht. Dabei wird wohl, wie ich bisher rauslesen konnte der Benutzer iobroker als derjenige benutzt, welcher den mpg321-Aufruf aus ioBroker macht.
Und den User iobroker habe ich auch schon in der Gruppe audio als Gruppenmitglied angelegt.