Squeezebox Modul - erste Version

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

Vorheriges Thema - Nächstes Thema

ChrisD

Hallo,

Bitte entferne den API-Key aus dem Log.

Zum Debuggen kannst du die URL
http://<IP-Adresse Webserver>/ttscache/ttscachev.php?key=xxxxxxxxxxxxxxxxxxxxxxxxxxx&src=Hallo.&hl=de-de&c=AAC,VoiceRSS
direkt im Browser aufrufen. Wenn das Skript korrekt funktioniert sollte der Browser die Audiodatei abspielen.

Wenn dies nicht funktioniert, solltest du im Log von Nginx und PHP schauen ob dort keine Fehlermeldungen zu finden sind.

Das ttscachev-Verzeichnis muss nicht vom LMS aus erreichbar sein.

Es könnte aber auch sein dass das Attribut ttslink nicht richtig gesetzt ist, am Ende sollte eigentlich nicht ',VoiceRSS' stehen.

Wenn du das Attribut im UI änderst musst du VoiceRSS abwählen, alternativ kannst du es auch mit
attr SB_PLAYER1 ttslink http://<IP-Adresse Webserver>/ttscache/ttscachev.php?key=<APIKEY>&src=<TEXT>&hl=<LANG>&c=AACsetzen.

Grüße,

ChrisD

trixer

Hallo ChrisD,
Key habe ich entfernt, das war mir wohl durchgegangen. - Danke für den Hinweis.
Wenn ich die URL zum debuggen aufrufe, fragt mich Firefox, ob ich die Datei speichern will oder "öffnen mit".
Da werde ich wohl noch mal in den vHost von Nginx schauen müssen.
Danke erstmal für deine prompte RÜckmeldung!
Trixer

trixer

Hallo nochmal,
jetzt geht TTS auch direkt über Voicers nicht mehr:


2019.12.22 23:37:02 0: SB_PLAYER1: ttsdebug - reset tts
2019.12.22 23:37:17 0: SB_PLAYER1: ttsdebug - not active, starting...
2019.12.22 23:37:17 0: SB_PLAYER1: ttsdebug - power: on
2019.12.22 23:37:17 0: SB_PLAYER1: ttsdebug - presence: present
2019.12.22 23:37:17 0: SB_PLAYER1: ttsdebug - playStatus: stopped
2019.12.22 23:37:17 0: SB_PLAYER1: ttsdebug - volume: 20
2019.12.22 23:37:17 0: SB_PLAYER_SetTTSState: SB_PLAYER1: ttsstate: save state
2019.12.22 23:37:17 0: SB_PLAYER_SetTTSState: SB_PLAYER1: ttsstate: set volume
2019.12.22 23:37:17 0: SB_PLAYER_SetTTSState: SB_PLAYER1: ttsstate: load playlist
2019.12.22 23:37:17 0: SB_PLAYER_Set: SB_PLAYER1: add to ttsqueue: http://api.voicerss.org/?key=xxxxxxxxxxxxxxxxxxxxxxxxxxx&src=Hallo.&hl=de-de&f=44khz_16bit_mono&c=AAC,VoiceRSS
2019.12.22 23:37:17 0: SB_PLAYER_SetTTSState: SB_PLAYER1: ttsstate: wait for play
2019.12.22 23:37:17 0: SB_PLAYER_SetTTSState: SB_PLAYER1: ttsstate: playing
2019.12.22 23:37:20 0: SB_PLAYER_SetTTSState: SB_PLAYER1: ttsstate: stopped
2019.12.22 23:37:20 0: SB_PLAYER_SetTTSState: SB_PLAYER1: ttsstate: restore state
2019.12.22 23:37:20 0: SB_PLAYER1: ttsdebug - stop
2019.12.22 23:37:20 0: SB_PLAYER_SetTTSState: SB_PLAYER1: ttsstate: idle
2019.12.22 23:37:20 0: SB_PLAYER1: ttsdebug - idle
2019.12.22 23:37:20 0: SB_PLAYER1: ttsdebug - power: on
2019.12.22 23:37:20 0: SB_PLAYER1: ttsdebug - presence: present
2019.12.22 23:37:20 0: SB_PLAYER1: ttsdebug - playStatus: stopped
2019.12.22 23:37:20 0: SB_PLAYER1: ttsdebug - volume: 65


Im Browser funktioniert's. Hast du hierzu eine Idee?

Danke & Gruß
Trixer

ChrisD

Hallo,

VoiceRSS funktioniert wahrscheinlich nicht mehr weil das Attribut ttslink nicht richtig ist, kannst du versuchen es mit
attr SB_PLAYER1 ttslink VoiceRSS
neu zu setzen ?

ZitatWenn ich die URL zum debuggen aufrufe, fragt mich Firefox, ob ich die Datei speichern will oder "öffnen mit".
Was enthält die Datei wenn du sie abspeicherst ?

Grüße,

ChrisD



trixer

Hallo ChrisD,
das hat funktioniert. Besten Dank. Ich hatte bislang im Link die Site von Voicers inkl. Parameter stehen:


ttslink http://api.voicerss.org/?key=<APIKEY>&src=<TEXT>&hl=<LANG>&f=44khz_16bit_mono&c=AAC


Bin ich nciht auf dem aktuellen Stand?

Die gespeicherte Datei ttscachev.php enthält den PHP-Quellcode.

Viele Grüße
Mark

ChrisD

Hallo,

Wenn die Datei den PHP-Code enthält wurde dieser nicht ausgeführt. Ist PHP auf dem Server installiert und in der Nginx-Konfiguration aktiv ?

ZitatIch hatte bislang im Link die Site von Voicers inkl. Parameter stehen
Im Attribut kann entweder der komplette Link stehen oder nur der Text VoiceRSS, beides gleichzeitig geht aber nicht. Im Log ist zu sehen dass beides gesetzt war:
http://api.voicerss.org/?key=xxxxxxxxxxxxxxxxxxxxxxxxxxx&src=Hallo.&hl=de-de&f=44khz_16bit_mono&c=AAC,VoiceRSS

Grüße,

ChrisD

trixer

Hallo ChrisD,
habe die Konfiguration des vHosts im nginx noch mal bearbeitet.
Jetzt  bekomme ich bei Eingabe der URL im Browser auch einen Öffnen von ttscachev_xxxxxxxxx.ACC dialog.
Hier kann ich Öffnen mit oder Datei speichern auswählen. Diese Datei wird auch auf dem Webserver angelegt.
Die Anfrage funktioniert demnach nun. Allerdings gelingt mir die Integration ins FHEM noch nicht.
Habe den ttsLink nun folgendermaßen gesetzt:


attr SB_PLAYER1 ttslink https://192.168.XXX.YYY/ttscache/ttscachev.php?key=<APIKEY>&src=<TEXT>&hl=<LANG>&f=44khz_16bit_mono&c=AAC


Im Log erscheint folgendes:

2019.12.24 14:34:47 5: SB_PLAYER_Set: called with ?
2019.12.24 14:34:47 5: SB_PLAYER_Set: called with ?
2019.12.24 14:34:47 5: SB_PLAYER_Set: called with ?
2019.12.24 14:34:47 4: SB_PLAYER_Get: called with SB_PLAYER1 ?
2019.12.24 14:34:57 5: SB_PLAYER_Set: called with talk
2019.12.24 14:34:57 0: SB_PLAYER_Set: SB_PLAYER1: add to ttsqueue: https://192.168.XXX.XXX/ttscache/ttscachev.php?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&src=Hallo.&hl=de&f=44khz_16bit_mono&c=AAC
2019.12.24 14:34:57 5: SB_PLAYER_Set: called with ?
2019.12.24 14:34:57 5: SB_PLAYER_Set: called with ?
2019.12.24 14:34:57 4: SB_PLAYER_Get: called with SB_PLAYER1 ?
2019.12.24 14:34:57 5: SB_PLAYER_Set: called with ?


Viele Grüße und schöne Feiertage
Trixer

ChrisD

Hallo,

Was enthält die heruntergeladene AAC-Datei ? Lässt sie sich abspielen ?

Grüße,

ChrisD

trixer

Hallo,
ja, die Datei lässt sich abspielen.
Gruß
Trixer

Gesendet von meinem LG-H870 mit Tapatalk


ChrisD

Hallo,

Kannst du den Stream über das UI des LMS abspielen (über Radio, URL laden) ?

Grüße,

ChrisD


scooty

Hallo,

auch von mir noch ein herzliches Dankeschön für das Modul.

Ein paarmal hier in dem Thread wurde ja von den |opt:xxx| Parametern bei TTS-Ausgabe geschrieben.

Mein Wunsch ist bei Musikwiedergabe eine MP3 und Sprachnachricht in einer bestimmten Lautstärke wiederzugeben und die Musikwiedergabe in der vorherigen Lautstärke danach automatisch fortzusetzen.

Klappt mit meinen Umsetzungsversuchen leider nicht.

Beispiele:
Musik läuft
set XXDG_GHOME01_SBP talk |opt:v=tts||HappySkykurz.mp3| Sprachnachrichten sind toll! |opt:v=music|
Lautstärke wird geändert, MP3 wird abgespielt, Sprachnachricht wird abgespielt, Lautstärke wird zurückgeändert, Musik wird leider nicht fortgesetzt

Musik läuft
set XXDG_GHOME01_SBP talk |opt:v=tts||HappySkykurz.mp3||opt:v=music|
Lautstärke wird geändert, MP3 wird abgespielt, Lautstärke wird zurückgeändert, Musik wird leider nicht fortgesetzt

Musik läuft
set XXDG_GHOME01_SBP talk |opt:v=tts| Sprachnachrichten sind toll! |opt:v=music|
Lautstärke wird geändert, Sprachnachricht wird abgespielt, Lautstärke wird zurückgeändert, Musik wird leider nicht fortgesetzt

Ohne Verwendung der |opt:xx| Parameter funktioniert es leider auch nur teilweise:
Musik läuft
set XXDG_GHOME01_SBP talk |HappySkykurz.mp3| Sprachnachrichten sind toll!
Lautstärke wird auf Wert des Attributs "ttsVolume" geändert, MP3 abgespielt, Sprachnachricht wird abgespielt, Lautstärke wird leider NICHT zurückgeändert, Musik wird fortgesetzt

Ist mein Wunsch überhaupt umsetzbar?
Jegliche Hinweise gerne gesehen und weitere Infos, wenn gewünscht, liefere ich gerne.

Als Version verwende ich:
98_SB_PLAYER.pm   107 2019-03-24 20:57:00Z CD/MM/Matthew/Heppel

Vielen Dank,
Andreas
Fhem auf Gigabyte Brix
CUL V3 HM / CUL V3 MAX / MaxCube aFW Homematic&MAX / ZWave.me ZME_UZB1 / SDuino 433 / Velux KLF200
Homematic / MAX / Logitech Hub / ZWave / Wifi LED / div. 433 Temperatursensoren / pywws WH10880 / IO Homecontrol

Eisix

Hallo,

habe mein OS neu installiert mit Debian Buster. Squeezebox Server habe ich wieder installiert logitechmediaserver_7.9.2_1576909043_amd64, läuft auch alles ohne Fhem. Die Fhem-Installation habe ich als tar kopiert. Fhem startete dann permanent neu. Wenn der Mediaserver aus ist, läuft Fhem. Löschen und neu anlegen des SB_SERVER ändert nichts.
Verbose 5 output zeigt aber nichts relevantes meiner Meinung nach. Was mich wundert ist das die syncGroups immer noch da sind. Werden die in der Mediaserver Installation gespeichert. Trotz löschen und neu anlegen.

Jemand eine Idee?

list SqueezeBoxServer

Internals:
   ALIVECHECK ?
   CFGFN     
   CLICONNECTION off
   CLIPORT    9090
   CMDSTACK   0
   DEF        192.168.10.1:9090
   DeviceName 192.168.10.1:9090
   FUUID      5e079c8f-f33f-8e5f-ec56-dc0fbcb45aeb14e1
   IP         192.168.10.1
   LASTANSWER none
   NAME       SqueezeBoxServer
   NEXT_OPEN  1577557317
   NOTIFYDEV  global,SqueezeBoxServer
   NR         897
   NTFY_ORDER 50-SqueezeBoxServer
   PARTIAL   
   PASSWORD   ?
   PRESENCENAME none
   RCCNAME    none
   STATE      disconnected
   TYPE       SB_SERVER
   USERNAME   ?
   WOLNAME    none
   READINGS:
     2019-12-28 19:18:55   db_albums       ?
     2019-12-28 19:18:55   db_artists      ?
     2019-12-28 19:18:55   db_genres       ?
     2019-12-28 19:18:55   db_songs        ?
     2019-12-28 19:18:55   favoritestotal  ?
     2019-12-28 19:18:55   players         ?
     2019-12-28 19:18:55   players_mysb    ?
     2019-12-28 19:18:55   players_other   ?
     2019-12-28 19:18:55   power           off
     2019-12-28 19:18:55   scandb          ?
     2019-12-28 19:18:55   scanlastfailed  ?
     2019-12-28 19:18:55   scanning        ?
     2019-12-28 19:18:55   scanprogressdone ?
     2019-12-28 19:18:55   scanprogresstotal ?
     2019-12-28 19:18:55   serversecure    ?
     2019-12-28 19:18:55   serverversion   ?
     2019-12-28 19:18:55   sgALLE          SB_PLAYER_b827eb045e65,SB_PLAYER_324524e56581,SB_PLAYER_b827eb96965e,SB_PLAYER_6ea27cc0b1ff,SB_PLAYER_5e42837b54e5
     2019-12-28 19:18:55   sgWZ-KU         SB_PLAYER_b827eb96965e,SB_PLAYER_b827eb045e65
     2019-12-28 19:20:57   state           disconnected
     2019-12-28 19:18:55   syncGroups      WZ-KU,ALLE
   helper:
     SB_SERVER_VERSION 0054
     httpport   9000
     lastPRESENCEstate ?
     onAfterAliveCheck 0
     pingCounter 0
     presenceReading state
     presenceValueAbsent absent
     presenceValuePresent present
     wolSetCmd   
     wolSetValue on
     albums:
       reread     1
     artists:
       reread     1
     genres:
       reread     1
     syncGroups:
       ALLE:
         0:
           c          6
           fhemname   SB_PLAYER_324524e56581
           lmsname    Allnet
           mac        32:45:24:e5:65:81
         1:
           fhemname   SB_PLAYER_324524e56581
           lmsname    Allnet
           mac        32:45:24:e5:65:81
         2:
           fhemname   SB_PLAYER_5e42837b54e5
           lmsname    Amazon_Tablet
           mac        5e:42:83:7b:54:e5
         3:
           fhemname   SB_PLAYER_6ea27cc0b1ff
           lmsname    SBPlayer_Lenovo
           mac        6e:a2:7c:c0:b1:ff
         4:
           fhemname   SB_PLAYER_b827eb045e65
           lmsname    max2play
           mac        b8:27:eb:04:5e:65
         5:
           fhemname   SB_PLAYER_b827eb96965e
           lmsname    max2play-Bose
           mac        b8:27:eb:96:96:5e
       WZ-KU:
         0:
           c          3
           fhemname   SB_PLAYER_b827eb045e65
           lmsname    max2play
           mac        b8:27:eb:04:5e:65
         1:
           fhemname   SB_PLAYER_b827eb045e65
           lmsname    max2play
           mac        b8:27:eb:04:5e:65
         2:
           fhemname   SB_PLAYER_b827eb96965e
           lmsname    max2play-Bose
           mac        b8:27:eb:96:96:5e
   powerMap:
   readingsDesc:
     energy:
       rtype      whr
     power:
       rtype      w
Attributes:
   alivetimer 120
   doalivecheck true
   maxcmdstack 200
   maxfavorites 30



Logs

2019.12.28 18:41:04.528 4: SB_SERVER_Broadcast(SqueezeBoxServer): called with SERVER - OFF
.
.
.
2019.12.28 18:41:50.663 4: SB_SERVER_Write(SqueezeBoxServer): called with FN:6e:a2:7c:c0:b1:ff artist ?
6e:a2:7c:c0:b1:ff album ?
6e:a2:7c:c0:b1:ff title ?
6e:a2:7c:c0:b1:ff playlist url ?
6e:a2:7c:c0:b1:ff remote ?
6e:a2:7c:c0:b1:ff status 0 500 tags:Kcu
6e:a2:7c:c0:b1:ff alarms 0 200 tags:all filter:all
6e:a2:7c:c0:b1:ff playerpref alarmsEnabled ?
6e:a2:7c:c0:b1:ff playerpref alarmDefaultVolume ?
6e:a2:7c:c0:b1:ff playerpref alarmTimeoutSeconds ?
6e:a2:7c:c0:b1:ff playerpref alarmSnoozeSeconds ?
6e:a2:7c:c0:b1:ff playerpref alarmfadeseconds ?
6e:a2:7c:c0:b1:ff playerpref syncVolume ?
6e:a2:7c:c0:b1:ff playlist name ?
6e:a2:7c:c0:b1:ff playlist path 0 ?
6e:a2:7c:c0:b1:ff voltage ?
6e:a2:7c:c0:b1:ff duration ?

2019.12.28 18:41:50.663 4: SB_SERVER_Write(SqueezeBoxServer): called with FN:6e:a2:7c:c0:b1:ff time ?
2019.12.28 18:41:50.664 4: SB_SERVER_Write(SqueezeBoxServer): called with FN:6e:a2:7c:c0:b1:ff player ip ?
2019.12.28 18:41:50.664 4: SB_SERVER_Write(SqueezeBoxServer): called with FN:6e:a2:7c:c0:b1:ff player model ?
2019.12.28 18:41:50.664 4: SB_SERVER_Write(SqueezeBoxServer): called with FN:6e:a2:7c:c0:b1:ff player canpoweroff ?
2019.12.28 18:41:50.664 4: SB_SERVER_Write(SqueezeBoxServer): called with FN:6e:a2:7c:c0:b1:ff name ?
2019.12.28 18:41:50.664 4: SB_SERVER_Write(SqueezeBoxServer): called with FN:6e:a2:7c:c0:b1:ff power ?
2019.12.28 18:41:50.664 4: SB_SERVER_Write(SqueezeBoxServer): called with FN:6e:a2:7c:c0:b1:ff connected ?
2019.12.28 18:41:50.666 4: SB_SERVER_Write(SqueezeBoxServer): called with FN:5e:42:83:7b:54:e5 artist ?
.
.
.
b8:27:eb:51:0b:30 duration ?
2019.12.28 18:41:50.750 4: SB_SERVER_Write(SqueezeBoxServer): called with FN:b8:27:eb:51:0b:30 time ?
2019.12.28 18:41:50.751 4: SB_SERVER_Write(SqueezeBoxServer): called with FN:b8:27:eb:51:0b:30 player ip ?
2019.12.28 18:41:50.751 4: SB_SERVER_Write(SqueezeBoxServer): called with FN:b8:27:eb:51:0b:30 player model ?
2019.12.28 18:41:50.751 4: SB_SERVER_Write(SqueezeBoxServer): called with FN:b8:27:eb:51:0b:30 player canpoweroff ?
2019.12.28 18:41:50.751 4: SB_SERVER_Write(SqueezeBoxServer): called with FN:b8:27:eb:51:0b:30 name
2019.12.28 18:41:50.751 4: SB_SERVER_Write(SqueezeBoxServer): called with FN:b8:27:eb:51:0b:30 power ?
2019.12.28 18:41:50.751 4: SB_SERVER_Write(SqueezeBoxServer): called with FN:b8:27:eb:51:0b:30 connected ?
2019.12.28 18:41:50.751 4: SB_SERVER_Alive(SqueezeBoxServer): called
2019.12.28 18:41:50.751 4: SB_SERVER_Alive(SqueezeBoxServer): using internal ping
2019.12.28 18:41:50.753 5: SB_SERVER_Alive(SqueezeBoxServer): RCC:off Ping:on


Gruß
Eisix

Eisix

#2037
Hallo,

die sync groups habe ich mittlerweile mit deleteall gelöscht, alle Player auch. Wenn ich jetzt den Squeezeservice starte legt fhem die Player über autocreate an stürzt aber ab bevor speichern kann.
Hat jemand noch eine Idee?

Habe jetzt den Auslöser gefunden:


Dec 29 11:29:23 home kernel: [122345.189607] perl[4165]: segfault at 5642fffffff8 ip 00007f5f86da29bd sp 00007ffccc320420 error 4 in libc-2.28.so (deleted)[7f5f86d40000+148000]
Dec 29 11:29:23 home kernel: [122345.189616] Code: 89 ee 48 89 df 5b 5d e9 11 fd ff ff 90 53 48 83 ec 10 48 8b 05 4c 65 13 00 48 8b 00 48 85 c0 0f 85 88 00 00 00 48 85 ff 74 73 <48> 8b 47 f8 48 8d 77 f0 a8 02 75 37 48 8b 15 a8 63 13 00 64 48 83


Gruß
Eisix

eldrik

#2038
Zitat von: eldrik am 12 Dezember 2019, 07:36:17
Hi,

als zu validierenden Workaround habe ich jetzt einmal, für alle Player Watchdogs erstellt, welche den playStatus des jeweiligen Players, nach 5 Minuten, von "paused" auf "stopped" setzen, ggfs. stolpert der Mechanismus im Modul ja über die Kombination "Youtube Plugin" und "playStatus paused"  ???

Greetz
Eldrik

Moin,

der beschriebene Workaround hat geholfen, seitdem die Player nun per Watchdog von paused auf stopped gesetzt werden, gab es kein ungewolltes anlaufen mehr!

Edit: 19.01.20 seit dem Workaround ist das Problem kein weiteres Mal aufgetreten!

Greetz
Eldrik

ChrisD

Hallo,

@Andreas: Wenn |opt:v=music| an letzter Stelle steht wird die Wiedergabe nicht mehr fortgesetzt. Dies ist ein Fehler im Modul. Dies sollte aber im normalen Betrieb nie nötig sein da das Modul die Lautstärke automatisch zurücksetzt.

Bei
set XXDG_GHOME01_SBP talk |HappySkykurz.mp3| Sprachnachrichten sind toll!
sollte die Lautstärke geändert werden. Kannst du im Event Monitor den Filter auf .*volume.* setzen und den Befehl in einem anderen Tab nochmal absetzen.

Wenn die Musiklautstärke auf 70 und das Attribut ttsVolume auf 50 steht sollte die Ausgabe so aussehen:
Zitat2019-12-29 19:51:28.122 SB_PLAYER XXDG_GHOME01_SBP talkStatus: set volume
2019-12-29 19:51:28.395 SB_PLAYER XXDG_GHOME01_SBP volumeStraight: 50
2019-12-29 19:51:28.395 SB_PLAYER XXDG_GHOME01_SBP volume: 50
2019-12-29 19:51:34.912 SB_PLAYER XXDG_GHOME01_SBP volumeStraight: 70
2019-12-29 19:51:34.912 SB_PLAYER XXDG_GHOME01_SBP volume: 70

@Eisix: Da Perl abstürzt wird es schwierig den Fehler einzugrenzen. Ist
ZitatSB_SERVER_Alive(SqueezeBoxServer): RCC:off Ping:on
immer die letzte Zeile vor dem Absturz ?

ZitatWas mich wundert ist das die syncGroups immer noch da sind.
Die syncGroups werden im FHEM-Logverzeichnis gespeichert. Die Datei heißt bei dir wahrscheinlich sbsg_SqueezeBoxServer.dd.save.

@Eldrik: Ich bin dabei das Youtube-Plugin zu testen, konnte den Effekt aber noch nicht reproduzieren.

Grüße,

ChrisD