Squeezebox Modul

Aus FHEMWiki
Version vom 21. Mai 2015, 09:51 Uhr von Rince (Diskussion | Beiträge) (Forenlink korrigiert)
SB_SERVER
Zweck / Funktion
Squeezebox Server Modul
Allgemein
Typ Inoffiziell
Details
Dokumentation Thema
Support (Forum) Multimedia
Modulname 97_SB_SERVER.pm
Ersteller ChrisD
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


SB_PLAYER
Zweck / Funktion
Squeezebox Client Modul
Allgemein
Typ Inoffiziell
Details
Dokumentation Thema
Support (Forum) Multimedia
Modulname 98_SB_PLAYER.pm
Ersteller ChrisD
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

Die Squeezebox-Unterstützung (derzeit, 20.05.2015, noch nicht offiziell in Fhem eingecheckt) besteht aus zwei Modulen:

  • 97_SB_SERVER.pm
  • 98_SB_PLAYER.pm

und arbeitet mit einem LogitechMediaServer (LMS) zusammen. Das Server-Modul definiert ein IO Device und repräsentiert den LMS, das Player-Modul hingegen wird für jeden Client angelegt. Sobald ein Client im Netz auftaucht, wird per Autocreate automatisch eine entsprechende Instanz im Raum SB_PLAYER angelegt. Diese kann wie gewohnt mit rename <alterName> <neuerName> umbenannt werden.


Installation

Prinzipiell checkt ChrisD seine Versionen im Contrib Verzeichnis ein. Kann aber auch mal in der Hitze des Gefechts untergehen ;) Alternativ kann man es auch direkt aus seinem GitHub installieren. Sobald das Modul offiziell eingecheckt ist, wird das überflüssig.

Erstmalig

Mit dem folgenden Befehl (einzugeben im fhem Webinteface)

update force https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txt

wird erstmalig das Modul heruntergeladen.

Update

Zukünftig reicht der folgende Befehl im Webinteface, um eine aktuelle Version zu ziehen:

update all https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txt

Definition des IO Devices (=Server) in fhem

define <name> SB_SERVER <serverip[:cliserverport]> [RCC:rccname] [WOL:wolname] [USER:username] [PASSWORD:password]

Im einfachsten Fall (LMS wurde ohne Passwörter installiert, Standardport ist unverändert) reicht schlicht ein:

define SqueezeBoxServer SB_SERVER <IP-Adresse des entsprechenden Rechners>

"[...] Bitte beachten: der CLI-Port ist optional und sollte nur angegeben werden, wenn man diesen auf dem SB-Server verändert hat. Standardmässig ist das 9090 RCC: falls man für den Rechner, auf dem der SB-Server läuft in FHEM ein RCC Device angelegt hat, so kann der FHEM-SB-Server diesen aufwecken. Sprich man klickt in FHEM beim SB-Server auf on und falls der PC aus ist, wird er per RCC aufgeweckt. Der name hinter dem Doppelpunkt ist der name des FHEM-RCC-Devices. Bitte RCC: angeben. WOL: gleich wie RCC nur halt mit einem WOL Modul [USER:username] [PASSWord:password] diese beiden Parameter sind optional. Auf SB-Server seiten kann man die Kommunikation über den CLI Port mittels Usrename und Passwort verriegeln. Falls man dies getan hat, dann hier die beiden Parameter angeben. [...]"
Zitat bugster_de

Installation der Clients

"[...] Die jeweiligen Player werden selbst erkannt und automatisch angelegt, falls man autocreate eingeschaltet hat. Also einfach den Server anlegen und zurücklehnen. Nach maximal 1 Minute sollten alle Player automatisch angelegt sein.

Falls autocreate ausgeschaltet ist, dann kann man die Player auch manuell anlegen: Code: [Auswählen]

define <name> SB_PLAYER <player_mac_adress]> <ampl:FHEM_NAME> <coverart:FHEMNAME>

Die jeweilige MAC Adresse des Players findet man im SB-Server unter Einstellungen

optional kann man ampl:xxx angeben. Hier gibt man bei XXX den Namen eines FHEM Elementes an, das auf on und off reagiert. Dies ist nützlich um z.B. einen Verstärker ein / ausschalten zu können. Bitte auch das amplifier Attribut beachten. Dieses kann man auf on oder play setzen. Der Versärker wird denn entweder mit dem Player ein/ausgeschaltet (on/off) oder bei play/pause vs. stop. Spricht bei playing und paused ist der Verstärker an, bei stopped ist er aus. Somit spart man sich die notifies und entsprechende Rechenlast auf dem FHEM Server

optional kann man coverart:XXX angeben. Unter XXX gibt man den Namen eines FHEM weblink image elementes an. Der Player aktualisiert dann jeweils den Link auf das aktuelle Coverart Bild, so dass man dieses z.B. im Floorplan anzeigen kann. Mit den Attributen coverartheight und coverartwidth kann man die Breite bzw. Höhe bestimmen. Sprich einfach ein weblink Elemt mit define mylink weblink image Link.zu.einem.bild.jpg anlegen. Der SB_PLAYER aktualisiert dann den jeweiligen Image Link so dass das aktuelle Coverart z.B. im Floorplan angezeigt wird. Bitte die Attribute für Höhe und Breite des weblink elementes NICHT verwenden. Größe wird durch den SB_PLAYER gemacht. Sonst geht das nicht [...]"
Zitat bugster_de

Befehlsübersicht

Text2Speech

Das Modul bietet diverse Möglichkeiten, um Text in Sprache umzuwandeln und auszugeben.

Nützliches und HowTos

LMS und Netzwerkfreigaben

Dateien im Netzwerk muss man für den LMS natürlich irgendwie freigeben, selbiges dem LMS auch mitteilen. Wenn man mehrere Server hat, kann das doch recht unangenehm werden. Eine einfache Lösung hierzu besteht darin, ein freigegebenes Verzeichnis schlicht per fstab automatisch irgendwo in den Verzeichnisbaum einzuhängen. Dann sieht es aus Sicht des LMS so aus, als lägen die Dateien lokal auf der Platte.Anleitung

Eine einzelne Datei abspielen

set cubie_SB_PLAYER playlist play file:///media/Fritte/Musik/AC_DC%20-%20Highway%20to%20Hell%20(Live%20at%20River%20Plate%202009).mp3
  • cubie_SB_PLAYER ist der Name meines Players
  • playlist play der zugehörige Befehl
  • der Rest ist die Pfadangabe aus Sicht des LMS (wenn man mit dem LMS direkt die Datei abspielen läßt, hat man das automatisch im Reading "currentMedia")

Links