Squeezebox Modul - erste Version

Begonnen von bugster_de, 17 Dezember 2013, 22:12:10

Vorheriges Thema - Nächstes Thema

ChrisD

Hallo,

Es sieht so aus als ob die Ausgabe um 19:11:46 nicht korrekt beendet worden wäre. Das Ereignis 'ttsdone' fehlt nämlich. Merkwürdig ist auch der Zustand 'off' um 21:58:17. Es sieht so aus als wäre hier ein Reset vom TTS erfolgt. Die Lautstärke für TTS scheint um 21:58:17 auch falsch zu sein (25 statt 30).

Hast du beim Player 'debug' im Attribut ttsOptions aktiviert ? Wenn ja, was steht im Log von FHEM ? Wenn nein, setze es bitte.

Welche Version von Squeezelite verwendest du ? Der Bug mit den kurzen Streams sollte bereits seit einiger Zeit behoben sein.

Grüße,

ChrisD

Masiwo

Hallo an den lieben Modul-Ersteller,

erst einmal vielen Dank, dass das Modul überhaupt existiert, und man sich mit Raspi's seine eigene Multiroom Lösung basteln kann, obwohl Logitech die Squeezeboxen ja nicht mehr baut(Und das ganze dann auch in FHEM passt).
Ich würde gerne hiermit mal einen BUG melden, poste ihn auch gerne nochmal auf Github. Beim Laden des Plugins kommen im Log immer folgende 2 Zeilen:
2019.03.08 10:42:10 1: PERL WARNING: Use of uninitialized value $data in split at ./FHEM/98_SB_PLAYER.pm line 4702.
2019.03.08 10:42:10 1: PERL WARNING: Use of uninitialized value $ids in split at ./FHEM/98_SB_PLAYER.pm line 4703.

Ich hoffe ich benutze keine outdated Perl Version, würde aber eher darauf tippen, dass das mit einer neueren Version in PERL als Warning ausgegeben wird.

LG

Daniel

FHEMAN

Zitat von: ChrisD am 27 Januar 2019, 19:09:22
Welche Version von Squeezelite verwendest du ? Der Bug mit den kurzen Streams sollte bereits seit einiger Zeit behoben sein.
Version war ein guter Hinweis. Die aktuelle Squeezelite Version brachte schon bei einigen Raspies Besserung. Erst mit Upgrade der piCorePlayer auf 4.1 sieht es noch besser aus. Das Problem war, dass ein Slave Player tts nicht abspielte, und irgendwann der talk Prozess festhing. Die Ausgabe erfolgte auf dem Master dann trotzdem, aber hakelig.
Übrigens funktioniert das Ganze bei mir nur noch mit Google Voice. Die Stimme nervt mich allerdings. Vom Wort "Post" mal abgesehen :D
Hat sich bei VoiceRSS etwas verändert?
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

FHEMAN

#1938
Zitat von: Morrino am 19 Januar 2017, 20:49:39
Hi,

dann wird das wohl ein unlösabres Problem.
Jedenfalls klappt bei mir es auch mit diesen Einstellungen nicht.

Weder über USB Audio noch über den Klinke (Analog) Anschluss

Ich bin vielleicht ein Stück weiter gekommen. Squeezelite kommt mit dem Stream klar, wenn man ihm den Codec MP3 oder AAC (nicht WAV =default) übergibt:

http://api.voicerss.org/?key=...&src=Hallo+Welt.&hl=de-de&f=44khz_16bit_mono&c=AAC

(der AAC Stream scheint bei mir minimal schneller zu starten)
Allerdings in ttslink eingesetzt funktioniert es trotzdem nicht. Ich vermute, dass es doch noch am Modul liegen könnte?
Muss mich korrigieren, ich hatte neben der URL noch versehentlich die Checkbox bei VoiceRSS gesetzt gehabt. Dann ist der Stream ungültig. Jetzt funktioniert es auf den Squeezelite Playern.
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

Eisix

Hallo,

ich wollte heute alle meine Player(5) in einer syncgroup zusammenfassen, das Kommando wird auch ohne Fehler angenommen, allerdings werden nur die beiden ersten im Reading der Gruppe angezeigt und nur diese zwei werden über die Gruppe angesteuert.

Das anlegen von Gruppen scheint nur mit Playern von max2play zu funktionieren und nicht mit SB_Player (Android). Kann das jemand bestätigen oder hat einen Tip wie es trotzdem geht. Über LMS kann ich die Player alles synchronisieren.

Gruß
Eisix

FHEMAN

Hallo ChrisD,

könnte es evtl. noch einen Bug beim Parsen der Optionen geben?
set Player talk |opt:v=5||opt:replace|057_Sound.mp3| --> funktioniert nicht
set Player talk |opt:v=5||opt:replace| Eine Sprachausgabe| --> funktioniert
set Player talk |opt:v=5|opt:replace|057_Sound.mp3| --> funktioniert
set Player talk |opt:v=5|opt:replace| Eine Sprachausgabe| --> funktioniert nicht

Entweder kommt gar keine Ausgabe oder aber die Optionen wirken nicht. Ich vermute etwas bei der Pipe Verarbeitung. Anscheinend kann man die Pipes auch nicht beliebig doppeln (|a||b|||c|)?
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

trixer

Zitat von: ChrisD am 21 Januar 2017, 11:43:36
Hallo,

@Morrino: Zum Testen habe ich Squeezelite v1.8.6-830 verwendet. An den Default-Einstellungen habe ich nichts geändert, so dass squeezelite mit
/usr/local/bin/squeezelite -n "piCorePlayer" -o sysdefault:CARD=ALSA -a 80:::1:
gestartet wurde.

Weiterhin habe ich versucht die Squeezelite-Version 1.8.6 durch 1.5 zu ersetzen. Mit 1.5 werden sowohl Google als auch VoiceRSS (mit beliebigen Bitraten) korrekt abgespielt. Das Problem liegt bei Squeezelite, seit Version 1.7 funktioniert es nicht mehr richtig.

@C0mmanda: Du kannst versuchen VoiceRSS mit 48kHz/16 Bit zu verwenden, alternativ kannst du eine andere Version von Squeezelite ausprobieren.

Grüße,

ChrisD

Hallo zusammen,
gibt es bzgl. des Talk Befehls über FHEM über LMS auf picoreplayer etwas neues? In der Version piCorePlayer v3.22 | linux 4.9.50-pcpCore | piCore v8.01 | Squeezelite v1.8.7-999 bleibt mein player leider nach wie vor stumm (Pi Zero mit Justboom Amplifier).
Welche Alternativen gibt es? Ich möchte ungern die version auf 1.5 downgraden.
Viele Grüße
Mark

FHEMAN

Hallo Mark, hast du es mal mit dem Codec Parameter versucht (siehe 3 Beiträge darüber)?
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

pinguin

Hallo zusammen,

ich möchte erst einmal den Machern dieses Moduls meinen Dank und meinen allergrößten Respekt zum Ausdruck bringen. Es macht einfach Spaß damit zu arbeiten und das Modul zusammen mit Tablet-UI als Multi-Room-System zu nutzen.

Nun aber zu  meinem Problem:
Wie schon erwähnt nutze ich das SB-Modul als Multi-Room-System zusammen mit Tablet-UI. Als Medien habe ich im LMS sowohl Radiostationen als auch Alben in Form von MP3-Files hinterlegt. Bei Tablet-UI nutze ich für den Zugriff auf die einzelnen Titel der Alben "medialist". Das funktioniert auch ohne Probleme. Es werden über das Reading "ftuiMedialist" alle Informationen wie Album, Titel usw. angezeigt.

Nun wollte ich Tablet-UI so erweitern das ich auch auf meine Alben zugreifen/auswählen kann. Hierzu greife ich auf das Reading "ftuiAlbumsMedialist" zu. Mit Hilfe des o.a. Moduls funktioniert das auch. Das was nicht befüllt wird ist der Interpret oder das Cover sondern "nur" der Titel welcher den Namen des Albums wiederspiegelt. Beim genauen betrachten des Readings habe ich gesehen dass der Wert "Album" garnicht befüllt wird sondern nur "Title". Das wäre soweit ja nicht so schlimm. Ist halt nur suboptimal wenn man 2 oder 3 Alben mit den Titel "Gratesthits" hat bzw. man kann aus dem Album-Titel nicht immer erkennen welcher Interpret dahinter steckt.

Daher meine Frage:
Wäre es euch möglich bei "ftuiAlbumsMedialist" den Wert/das Attribut "Artist" mit zu befüllen? Somit würde das Modul "medialist" in Tablet-UI auch den Interpreten auflisten können.

Danke und viele Grüße

Torsten

trixer

#1944
Zitat von: FHEMAN am 20 März 2019, 21:48:10
Hallo Mark, hast du es mal mit dem Codec Parameter versucht (siehe 3 Beiträge darüber)?
Hallo Ronny,
bitte entschuldige die verspätete Antwort. Es ging leider nicht früher.
Der Codec-Parameter hat geholfen. - Vielen Dank! Das hatte ich glatt übersehen.
Der squeezelite Player spricht nun.
ttslink sieht nun so aus:
http://api.voicerss.org/?key=<APIKEY>&src=<TEXT>&hl=<LANG>&f=44khz_16bit_mono&c=AAC
trotz ttslanguare de-de kommt die Audioausgabe nicht mit Umlauten (ä,ö,ü) klar. Gibt es hier einen weiteren Trick?
Danke & viele Grüße
Mark

ChrisD

Hallo,

@Daniel: Danke für den Hinweis, in der nächsten Version ist dies korrigiert.

@Eisix: Welchen Player verwendest du unter Android ? Wird beim Player in FHEM eine MAC-Adresse angezeigt ?

@FHEMAN: Vor und hinter dem Befehl muss immer ein Leerzeichen kommen, nur wenn zwei Befehle aufeinanderfolgen kann das Leerzeichen entfallen.

Zitatset Player talk |opt:v=5||opt:replace| Eine Sprachausgabe|
Funktioniert weil das Leerzeichen zwischen dem 1. und 2. Befehl optional ist und nach dem 2. Befehl ein Leerzeichen kommt. Das | am Ende ist zu viel und wird ignoriert.

Zitatset Player talk |opt:v=5||opt:replace|057_Sound.mp3|
Funktioniert nicht weil ein | vor 057 fehlt,
set Player talk |opt:v=5||opt:replace||057_Sound.mp3|
geht.

Der Parser ist nicht sonderlich tolerant und verbesserbar. Insbesondere das zusätzliche Leerzeichen ist nicht sehr intuitiv.

@Mark: Was passiert mit den Umlauten ? Du kannst versuchen das Attribut ttsOptions auf den Wert doubleescape zu setzen oder ihn hinzuzufügen. Je nach LMS- resp. Perl-Version und Betriebssystem kann dies helfen.

@Torsten: Es ist im Prinzip möglich bei den Alben den Artisten hinzuzufügen, ich muss mir das aber genauer ansehen.

Grüße,

ChrisD

Eisix

@ChrisD
Sb Player und es wird eine Mac angezeigt

Gruß
Eisix

FHEMAN

Zitat von: ChrisD am 23 März 2019, 13:21:02
@FHEMAN: Vor und hinter dem Befehl muss immer ein Leerzeichen kommen, nur wenn zwei Befehle aufeinanderfolgen kann das Leerzeichen entfallen.
Funktioniert weil das Leerzeichen zwischen dem 1. und 2. Befehl optional ist und nach dem 2. Befehl ein Leerzeichen kommt. Das | am Ende ist zu viel und wird ignoriert.
Funktioniert nicht weil ein | vor 057 fehlt,
set Player talk |opt:v=5||opt:replace||057_Sound.mp3|
geht.
Bei mir geht das nicht. Bzw. wird der Volume Parameter dann ignoriert. Es geht nur, wenn zwischen den "opt" nur 1 "|" ist. Falls das so gewollt ist, kann ich mir keinen Reim drauf machen.
Man könnte die Pipes möglicherweise auch komplett sparen, wenn man "opt"  immer bis zum nächsten Leerzeichen betrachtet?
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

ChrisD

#1948
Hallo,

Zwischen den opt müssen sich 2 | befinden. Jede Option (wie auch Datei) muss von | umgeben sein. In deinem Fall wird allerdings das erste |opt:v=5| nicht ausgeführt da das |opt:replace| die Queue (in der bereits die Lautstärkeänderung steht) komplett wird.

Der gewünschte Effekt sollte mit
set Player talk |opt:replace||opt:v=5||057_Sound.mp3|
möglich sein.

Wenn du nur ein | verwendest wird opt:replace ignoriert da es an der '5' für die Lautstärke angehängt wird. Beim Versuch die Lautstärke zu setzen sollte es im Log eine Fehlermeldung geben:
PERL WARNING: Argument "5|opt:replace" isn't numeric in numeric gt (>) at ./FHEM/98_sb_player.pm line 3657

Grüße,

ChrisD

FHEMAN

Zitat von: ChrisD am 24 März 2019, 19:05:49In deinem Fall wird allerdings das erst |opt:v=5| nicht ausgeführt da das |opt:replace| die Queue (in der bereits die Lautstärkeänderung steht) komplett gelöscht wird.
So herum funktioniert es!
Hab vielen Dank und einen schönen Abend!

Ronny
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB