Squeezebox Modul - erste Version

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

Vorheriges Thema - Nächstes Thema

siggi85

Ist das Modul eigentlich nicht langsam reif für das offizielle FHEM SVN? Also ich glaube es gibt keine Fehler im Modul, welche eine Veröffentlichung im Weg stehen würden. Oder gibt es noch offene Punkte welche ich noch nicht sehe? ggf. fehlende Dokumentationen?!

ChrisD

Hallo,

Die Dokumentation ist noch nicht vollständig, insbesondere einige der neuen oder geänderten Befehle und Attribute fehlen noch.

Grüße,

ChrisD

kvo1

Hi ChrisD,

dennoch ein super Modul , läuft tadellos , echt Klasse und nochmal Danke !

Klaus
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

Rince

Langsam wird es Zeit, das alles mal zusammen zu fassen, findet ihr nicht auch?

Ich habe mir erlaubt, das mal zu beginnen
http://www.fhemwiki.de/wiki/Squeezebox_Modul


Btw., vielen Dank für das Modul. Muss mich jetzt mal in die TTS Sache reinarbeiten :)
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Rince

Ich glaub ich hab nen Bug.
Nur: wo?

Server: LMS 7.9
Client:
SqueezePlayer auf Android 4.4.4
Mit Tasker beim Start automatisiert http://www.squeezeplayer.com/2013/05/start-squeezeplayer-on-startup/

Wenn ich nun einen Text ausgeben lasse, passiert nix.
(Talk, sayText)
Starte ich jetzt einen RadioStream (favourites), läuft der Stream wie erwartet.

Jetzt kommts:
Setze ich nun den Player auf stop, komen die ganzen Audioausgaben...
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

dieda

Rince, den habe ich auch. Hatte dann rumprobiert und dann festgestellt, der Player muss im Play-Modus sein, dann kommt der Talk-Befehl und wenn es immer noch nix sagt wieder zurück in den Play-Modus. Beim Wiedereinschalten muss man dann nicht auf Play gehen, dann kommt die Ansage wieder sondern gleich die letzte Playliste oder seine Favoriten raussuchen.
Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

Rince

 ???

Ok, das sollte noch irgendwie untersucht werden ;)

Danke dieda
Scheint aber nur am Tab zu passieren, oder?
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

ChrisD

Hallo,

Ich habe den Fehler leider noch nicht reproduzieren können. SqueezePlayer für Android habe ich nicht zum Testen und es scheint auch nur eine Kaufversion davon zu geben.

Tritt der Fehler nur auf wenn der Player ausgeschaltet ist oder passiert es auch wenn er eingeschaltet und auf Stop ist ?

Könnt ihr beim betroffenen Player:
- das Attribut ttsOptions auf 'debug,debugsaverestore' setzen
- verbose auf 5 setzen
- talk ausführen
- Stream starten
- Stream stoppen
- warten bis talk beendet ist
- Auszug aus Logfile posten

@dieda: Welche Serverversion und welchen Player verwendest du ?

@Rince: Danke für den Wikieintrag, ich hoffe dass sich viele Mitschreiber finden.

Grüße,

ChrisD

Rince

Sorry,
nachdem es gestern reproduzierbar nicht funktioniert hat, geht es jetzt.  ???

Tab Einschalten, warten.
(Der Player Status in fhem bleibt auf off)

Befehl lostreten
Geht...
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Rince

Darf ich noch was fragen?

Ich kann ein einzelnes File abspielen:
set cubie_SB_PLAYER playlist play file:///media/Fritte/Musik/Andi/AC_DC%20-%20Highway%20to%20Hell%20(Live%20at%20River%20Plate%202009).mp3

Ok.
Klappt soweit denke ich.

Leider wird dann der die Radiowiedergabe ausgeschaltet und kommt auch nicht wieder.


Wenn ich per TTS einen Text sprechen lasse, geht das. Radio geht aus, Text kommt, Radio geht weiter.


Ohne es getestet zu haben:
Ich denke, wenn man statt dem Radio eine andere Playlist laufen hat, ist es das gleiche?


Das ist in folgenden Fällen doof:
Wenn man einen Gong (virtuelle Wohnzimmeruhr) damit realisiert (ein Workaround wäre vielleicht, für die Audiowiedergabe auch einen TTS Aufruf mit den MP3s zu machen ;) )
Party => Playlist läuft, ein Lied wird gewünscht. Wirft die ganze Playlist raus...

Könnte man zu dem "playlist play" eine Art "playlist insert" machen?
Die bei einem Stream halt unterbricht (exakt wie bei TTS)
und bei einer Playlist das gewünschte Lied quasi einfügt?

PS:
Das mit den Playlists ist nicht so wichtig im Moment, meine Gäste sind aus dem "spiel das Lied"-Alter raus, aber meine Kinder kommen langsam rein ;)
Vor allem habe ich auch keine Ahnung, ob dann das aktuelle Lied abgebrochen oder erst zu Ende gespielt werden sollte...
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

ChrisD

Hallo,

Bei talk/sayText wird versucht den Zustand des Players abzuspeichern, den Text auszugeben und anschließend den Zustand wieder herzustellen. Dabei spielt es keine Rolle ob ein Radiostream oder eine Playlist abgespielt wird.

Für deine Uhr kannst du die tts-Funktion verwenden, z.B.:
set cubie_SB_PLAYER talk |gong.mp3|

Das Gleiche kannst du auch verwenden um zwischendurch ein anderes Stück abzuspielen. Du musst aber im Moment aufpassen dass der angegebene Titel auch wirklich existiert, ansonten hängt die tts-Funktion (ähnlich wie bereits von dir und dieda beschrieben). Ich versuche im Moment die tts-Funktion etwas 'robuster' zu machen. Bei einem Hänger vom tts kannst du ihn mit dem Befehl
set cubie_SB_PLAYER resetTTSzurücksetzen.

Der LMS unterstützt das Einfügen eines Liedes in die Playlist. Es wird dann als nächstes Stück abgespielt, das aktuelle Stück wird dabei aber nicht unterbrochen. Der 'playlist'-Befehl unterstützt dies im Moment nicht. Bei Interesse kann ich es nachrüsten.

Grüße,

ChrisD

Rince

Danke für die Rückmeldung.

Zitatset cubie_SB_PLAYER talk |gong.mp3|
Das entspräche dann meinem Workaround :)

Zitatset cubie_SB_PLAYER resetTTS
Hm,
habe mir dazu ein Notify gebaut, welches das automatisieren sollte...
Zitat([cubie_SB_PLAYER:talkStatus] ne "idle") (set cubie_SB_PLAYER resetTTS)
Als attr dazu ein wait 30

Bei einem TTS ohne aktive Playlist bleibt das Rading auf etwas anderem. RestorePlaylist oder so hab ich grad nicht im Kopf.

Aber mein DOIF legt erst los, wenn ich einen Stream starte...
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

dieda

Hier die Infos zu meinem LMS
ZitatInternals:
   ALIVECHECK ?
   CLICONNECTION ?
   CLIPORT    9090
   DEF        xxxxx:9090
   DeviceName xxxx:9090
   FD         73
   IP         xxxxx
   LASTANSWER prefset server checkVersionLastTime 1432227918.10428
   NAME       squeezeboxserver
   NR         714
   NTFY_ORDER 50-squeezeboxserver
   PARTIAL
   PASSWORD   ?
   RCCNAME    none
   STATE      opened
   TYPE       SB_SERVER
   USERNAME   ?
   WOLNAME    none
   Readings:
     2015-05-21 03:00:00   db_albums       52
     2015-05-21 03:00:00   db_artists      23
     2015-05-21 03:00:00   db_genres       20
     2015-05-21 03:00:00   db_songs        163
     2015-05-21 03:00:00   favoritesname   Favorites
     2015-05-21 03:00:00   favoritestotal  5
     2015-05-21 03:00:00   players         5
     2015-05-21 03:00:00   players_mysb    0
     2015-05-21 03:00:00   players_other   0
     2015-05-19 16:25:46   power           on
     2015-05-21 03:00:00   scan_last       12-10-2014 17:34:2
     2015-05-21 03:00:00   scandb          ?
     2015-05-21 03:00:00   scanlastfailed  none
     2015-05-21 03:00:00   scanning        no
     2015-05-21 03:00:00   scanprogressdone 0
     2015-05-21 03:00:00   scanprogresstotal 0
     2015-05-19 16:25:47   serversecure    0
     2015-05-21 03:00:00   serverversion   7.8.1
     2015-05-19 16:24:54   state           opened
Attributes:
   alivetimer 120
   doalivecheck false
   maxcmdstack 200
   maxfavorites 30
   room       Server

Angeschlossen sind derzeit:

2 Squeezebox-Radios
2 Apps auf Mobiltetelefonen
2 Raspi
1 FireTV-Stick

Ich habe das ganze auf dem Radio getestet.
Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

tomster

#733
Servus zusammen!

Irgendwie raucht mir grad der Kopf, und ich komme mit dem "sync"-Befehl nicht so recht weiter...

Ich habe 3 Player am Laufen (kueche,wohnzimmer,terrasse). Nun möchte ich dem gerade laufenden Player (kueche) wahlweise die Player wohnzimmer und terrasse "zu-syncen". Wenn ich die Beschreibung im ersten Threadposting richtig verstanden habe müsste der Befehl

set terrasse.SB_PLAYER sync kueche

das gewünschte Ergebnis bringen. Das geht aber nur "halb"...
Denn kaum habe ich den obigen Befehl abgesetzt, setzt der Player "kueche" den playStatus auf "stopped". Erst ein erneuter Start-Befehl an diesen lässt nun endlich beide Player spielen. Sollte "kueche" nicht eigentlich ganz normal weiterspielen und der 2. Player einfach hinzu-gesynct werden? Oder habe ich da etwas mißverstanden?
--edit--
Ist mir grad noch im Event Monitor aufgefallen:

2015-05-27 13:07:41 SB_PLAYER terrasse.SB_PLAYER synced: terrasse,kueche
2015-05-27 13:07:41 SB_SERVER SqueezeBoxServer UNKNOWNCODE SB_PLAYER:000000000000:status 0 500 tags:Kc
2015-05-27 13:07:41 SB_PLAYER Kueche.SB_PLAYER playStatus: stopped
2015-05-27 13:07:41 SB_PLAYER Kueche.SB_PLAYER synced: terrasse,kueche

Was bedeutet das UNKNOWNCODE?

ChrisD

Hallo,

Der sync-Befehl funktioniert genau andersherum, beim Befehl
set playerA sync playerB
wird playerB der Sync-Gruppe von playerA hinzugefügt.

Wenn in deinem Fall der Player kueche 'Master' sein soll müsstest du
set kueche sync terrasse.SB_PLAYERverwenden.

Der sync-Befehl überträgt den play/stop-Zustand des Master auf den neu hinzugefügten Player. Wenn der hinzugefügte Player aber ausgeschaltet ist, wird er nicht automatisch eingeschaltet.

Bei
Zitat2015-05-27 13:07:41 SB_SERVER SqueezeBoxServer UNKNOWNCODE SB_PLAYER:000000000000:status 0 500 tags:Kc
hat der Server eine Nachricht für den Player mit der Mac-Adresse 00:00:00:00:00:00 zurückgeschickt die vom Player-Modul aber ignoriert wird. FHEM erzeugt daraufhin automatisch die Meldung mit UNKNOWNCODE da sich niemand um die Nachricht gekümmert hat.

Kannst du die MAC-Adressen deiner Player kontrollieren (Internal PLAYERMAC) ? Es darf bei keinem Player die Adresse 00:00:00:00:00:00 stehen und die Adressen müssen für alle Player unterschiedlich sein.

Grüße,

ChrisD