Preiswertes Multiroom-Audio mit Synology Diskstation und RPI

User stellen ihre Haussteuerung vor

Moderator: Co-Administratoren

PaulG4H
Beiträge: 1184
Registriert: 11.08.2011, 10:09

Re: AW: Preiswertes Multiroom-Audio mit Synology Diskstation

Beitrag von PaulG4H » 13.12.2013, 20:34

Und warum machst du das nicht mit HM Script?

Baust dir den string in einer Variable und setzt ihn mit CUxD.exec ab?

LG

Paul
Apache Reverse Proxy fuer sicheren Zugriff auf die CCU von Unterwegs
Zeitgesteuertes LXCCU / CCU2 Backup damit es immer eine Aktuelle Sicherung gibt!
Diverse weitere Anleitungen für CCU / LXCCU / Raspberry PI

Benutzeravatar
Dragonfly
Beiträge: 1249
Registriert: 04.01.2010, 11:40
Wohnort: Tyrol
Hat sich bedankt: 1 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: Preiswertes Multiroom-Audio mit Synology Diskstation und

Beitrag von Dragonfly » 14.12.2013, 04:32

Momentan mach ich das ja mit 7 wenn/dann Bedingungen und den kompletten Aufruf drinnen - ist nicht schön und blöd zu konfigurieren.
Darum hab ich auch erst ein Gerät intigriert.
Mit HM Script fällt mir jetzt kein anderer Weg ein - vor allem nicht mit einer Variablen.

Oder meinst du über die Shell den Befehlsteil als Variable zu übergeben?

Code: Alles auswählen

/usr/local/wohnzimmer.sh ?p0=mixer&p1=volume&p2=50
und so eine shell dazu:

Code: Alles auswählen

#/bin/bash
echo $1
url="http://<user:pwd>@<server ip>:<port>/status.html?"$1"&player=<player ip>"
wget -q -O - $url > /dev/null
Und so irgendwie hab ich mir das gedacht:

Code: Alles auswählen

#!/bin/bash
echo $1
url="http://<user:pwd>@<server ip>:<port>/status.html?"$befehl"&player=<player ip>"
play="p0=play"
skip="p0=playlist&p1=jump&p2=%2b1"
vol50="p0=mixer&p1=volume&p2=50"

  if [ "$1" = "play" ]; then [ "$befehl" = "$play" ]
  if [ "$1" = "skip" ]; then [ "$befehl" = "$skip" ]

wget -q -O - $url > /dev/null	
...k.A. ob das so richtig ist :mrgreen: - testen kann ich leider noch nicht :cry:

zusätzlich würde ich dann eben gerne 2 dieser befehle kombinieren um eine einschaltlautstärke zu setzen und play auszuführen oder irgend eine datei zu starten:

Code: Alles auswählen

if [ "$1" = "aufstehen" ]; then [ "$vol50" & "$play"]
also 2 wget auslösen, die nacheinander abgearbeitet werden.

So könnte man in einer Datei sämtliche Befehle hinterlegen und müßte im prinzip nur eine Zeile anpassen um diese zu verwenden.
Schön wäre sicherlich noch die Lautstärke mit 2 Varizablen anzusprechen, um nicht 10 verschiedene Volume Befehle machen zu müssen -> wohnzimmer.sh vol 50 -> vol="p0=mixer&p1=volume&p2="$2""

LG

PaulG4H
Beiträge: 1184
Registriert: 11.08.2011, 10:09

Re: Preiswertes Multiroom-Audio mit Synology Diskstation und

Beitrag von PaulG4H » 14.12.2013, 09:46

Hallo,

warum baust du dir den String mit allen Befehlen nicht in einem HM Script Programm zusammen und sendest ihn mit CUxD direkt an den LMS (Logitechmediaserver)?

Ohne bash oder tcl script, das ist doch nur doppelte Arbeit und eine Fehlerquelle mehr!

Wenn du also folgendes HM Programm machst:

Code: Alles auswählen

string player = "<ip oder mac des Players";
string todo = "aktion";

string url="wget -q -O - 'http://<ip des LMS Servers>:<port>/status.html?p0=" + todo + "&player=" + player + "' > /dev/null";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(url);
Beim CUxD Exec solltest du in den Geräteeinstellung die Anzahl der Kanäle des System Exec Geräts von eins auf am besten 16 erhöhen (maximum) und wenn du in einem Script mehrer Aufrufe hintereinander machst dann immer den nächsten Kanal nehmen.

CUxD.CUX2801001:3.CMD_EXEC

Die 3 ist hier der 3. Kanal des CUxD System Exec Gerätes.

LG

Paul
Apache Reverse Proxy fuer sicheren Zugriff auf die CCU von Unterwegs
Zeitgesteuertes LXCCU / CCU2 Backup damit es immer eine Aktuelle Sicherung gibt!
Diverse weitere Anleitungen für CCU / LXCCU / Raspberry PI

Benutzeravatar
Dragonfly
Beiträge: 1249
Registriert: 04.01.2010, 11:40
Wohnort: Tyrol
Hat sich bedankt: 1 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: Preiswertes Multiroom-Audio mit Synology Diskstation und

Beitrag von Dragonfly » 15.12.2013, 16:34

Hallo Paul, vielen Dank für deine Bemühungen - werde leider nicht "warm" mit dieser Variante.
Leider hatte ich auch viel Zeit ohne HomeMatic und hab am Shell gebastelt...

Dies ist jetzt mein erstes Shell-Script!
Kritik erwünscht!

Code: Alles auswählen

#/bin/bash

#login="<user>:<pwd>@"

#server="<server ip>:<port>"
server="192.168.125.60:9002"
#player="<player ip>" / player="<player mac>" / player="<name>" / player="*" (alle Player)
#player=$1 (wenn der Player über Parameter gewählt wird, dafür müssen die Parameter P1 und P2 geändert werden)
player="192.168.125.52"

#WGET=/pfad/zu/wget
WGET=/mnt/Programme/wget

#P1=$2 / für Playerwahl über Parameter
P1=$1
#P2=$3 / für Playerwahl über Parameter
P2=$2

main_command()
{
 url="http://"$login""$server"/status.html"$command"player="$player""
 wget -q -O - $url > /dev/null
 echo $url
}
pre_command()
{
 url1="http://"$login""$server"/status.html"$command1"player="$player""
 wget -q -O - $url1 > /dev/null
 echo $url1
}

if [ $P1 = "play" ] && [ -z $P2 ]
  then command="?p0=play&"
    main_command
elif [ $P1 = "play" ] && [ "$(echo $P2 | grep "^[ [:digit:] ]*$")" ]
  then command1="?p0=mixer&p1=volume&p2="$P2"&"
	command="?p0=play&"
	pre_command
	main_command
elif [ $P1 = "play" ] && [ -n $P2 ]
  then command="?p0=playlist&p1=play&p2="$P2"&"
    main_command
elif [ $P1 = "pause" ]
  then command="?p0=pause&"
    main_command
elif [ $P1 = "stop" ]
  then command="?p0=power&p1=0&"
    main_command
elif [ $P1 = "skip" ]
  then command="?p0=playlist&p1=jump&p2=%2b1&"
    main_command
elif [ $P1 = "back" ]
  then command="?p0=playlist&p1=jump&p2=-1&"
    main_command
elif [ $P1 = "vol" ] && [ "$(echo $P2 | grep "^[ [:digit:] ]*$")" ]
  then command="?p0=mixer&p1=volume&p2="$P2"&"
    main_command
elif [ $P1 = "vol" ] && [ $P2 = "up" ]
  then command="?p0=mixer&p1=volume&p2=%2b10&"
    main_command
elif [ $P1 = "vol" ] && [ $P2 = "down" ]
  then command="?p0=mixer&p1=volume&p2=-10&"
    main_command
elif [ $P1 = "-h" ]
  then
    echo "Aufruf:"
    echo "./sb.sh play		- startet den Player"
    echo "        play 60		- startet den Player mit Lautstärke in % (0 - 100, numerisch)"
    echo "        play Radio	- startet den Player mit der Playliste 'Radio' (alphanumerisch)"
    echo "        pause		- Togglemodus"
    echo "        stop		-"
    echo "        skip		- ein Lied weiter"
    echo "        back		- ein Lied zurück"
    echo "        vol 40		- Lautstärke in % einstellen (0 - 100)"
    echo "        vol up		- Lautstärke relativ um 10% erhöhen"
    echo "        vol down	- Lautstärke relativ um 10% verringern"
elif [ $P1 != "play" ] || [ $P1 != "pause" ] || [ $P1 != "stop" ] || [ $P1 != "skip" ] || [ $P1 != "back" ] || [ $P1 != "vol" ] || [ $P1 != "-h" ]
  then
    echo "unbekannter Befehl"
	echo "Programm mit -h für Hilfe starten."
fi

flysurfer
Beiträge: 12
Registriert: 08.07.2013, 12:04

Re: Preiswertes Multiroom-Audio mit Synology Diskstation und

Beitrag von flysurfer » 19.03.2014, 16:25

Hallo zusammen,

auch wenn der Thread sehr technisch geworden ist, würde ich noch meine Erfahrungen zum Thema Multi-Room Audio und Squeezebox-Receiver / LMS zum besten geben.

Im Einsatz bei mir sind 3 Squeezeboxplayer mit folgender Hardware (integriert in Homematic und Mediola Steuerung):
- 1 Player auf Basis Wandboard und Community Squeeze Projekt (Schlafzimmer) an JBL One-Control Aktiv Boxen
- 1 Player auf Basis ODROID U2 auf dem auch der LMS läuft (angeschlossen an AV-Receiver über HDMI) + Nubert Surround System
- 1 Player alter Squeezbox-Receiver (Classic) im Bad an JBL Aktiv-Boxen

Die Steuerung erfolgt über iPeng auf dem iPhone. Bisher bin ich mit diesem Setup mehr als zufrieden. Die Synchronisierung zwischen allen Playern ist sehr gut und einfach über die App zu steuern. Spotify / NAS-Streaming und Internet Radio laufen ohne Unterbrechungen und in guter Qualität. Flac-Files kommen im Wohnzimmer auf dem Nubert-System sehr gut rüber. Vor allem die Weckfunktion und der Sleeptimer für den Player im Schlafzimmer nutze ich häufig.

Ich habe lange nach der passenden Hardware gesucht, um den Squeezebox-Receiver zu ersetzen. Raspberry Pi und auch das Wandboard waren die ersten Versuche - allerdings sind diese recht Leistungsschwach und für den Betrieb des LMS nur mäßig zu gebrauchen. Daher der Versuch mit dem ODROID U2. Also das Gerät in Südkorea bestellt und viel herumgebastelt -> das Ergebnis ist ein sehr guter Squeezeplayer / Server der auch noch XBMC kann und damit als Set-Top-Box ebenso zu gebrauchen ist (Youtube / NAS-Film-Streaming in 720p / Bilder anschauen).

Da jetzt einige meiner Bekannten ebenso Multi-Room Sound möchten, werde ich weitere ODROID U3 bestellen und auch das Image (Basis ist Debian) zur Verfügung stellen. Zu diesem Zweck habe ich einen kleinen Reseller-Shop für das ODROID Board erstellt, mit dem Ziel das Gerät in DE leichter zugänglich zu machen. Durch Zollgebühren, Umsatzsteuer und Porto wird eine Einzelbestellung in Südkorea leider doch schnell teuer.

Hier mal weiterführende Infos zum ODROID-Board: http://shop.max2play.com/de/odroid-u3.html
und zum Image mit Squeezeboxplayer/Server/XBMC: http://shop.max2play.com/de/image-max2play

Bei Interesse kontaktiert mich einfach! Über Feedback zum Projekt würde ich mich natürlich freuen.

Audiophile Grüße
Stefan

Christian72D
Beiträge: 13
Registriert: 08.04.2014, 09:07

Re: Preiswertes Multiroom-Audio mit Synology Diskstation und

Beitrag von Christian72D » 08.04.2014, 09:18

Hi zusammen. Da ich demnächst wohl ein Haus kaufen werde interessiere ich mich auch brennend für eine Multi Room Lösung. Und Homematic möchte ich sowieso einsetzen.

Momentan habe ich es (3 Zimmer Wohnung) so gelöst das ich einfach nur einen Umschalter am LS Ausgang meiner Denon Anlage sitzen habe, diese Lösung soll jetzt aber sterben.

Mein Problem ist jetzt das ich überlege ob das mit dem Raspi wirklich die günstigste Lösung ist.

Als Musikspeicher habe ich meine Synology, dann habe ich noch eine Logitech Squeezebox Touch und halt die Denon Anlage die auch ins Netzt geht und von überall Musik abspielen kann.
Laufen lassen hätte ich das Ganze eher mit AirPlay statt mit dem Logitech Server, aber das ist wohl nebensächlich.

Wenn ich jetzt so mal die Kosten überschlage komme ich locker auf >60€ für den Raspi+Speicherkarte+Netzteil+Soundkarte+Gehäuse.
Dann noch mal Geld für einen Verstärker + Boxen oder halt direkt ordentliche Aktivboxen.

Aber für DAS Geld kann ich mir doch eigentlich schon die Sonos Play 1 holen, oder? Klar, die Play 3 sind da wesentlich tuerer.
Das System greift auf die Synology zu und holt sich von dort die Musik und ich kann problemlos über die Sonos App sagen welcher Raum welche Musik mit welcher Lautstärke abspielen soll.
Dann brauch ich wohl nur noch den Sonos Amp für die Außen Lautsprecher.

Oder denk ich da jetzt falsch? Oder bekomme ich das mit dem Raspi doch besser/günstiger hin?

PaulG4H
Beiträge: 1184
Registriert: 11.08.2011, 10:09

Re: AW: Preiswertes Multiroom-Audio mit Synology Diskstation

Beitrag von PaulG4H » 08.04.2014, 09:40

Hallo,

Wenn du in deinem Haus die Raume per Kabel mit dem Audiosignal versorgt brauchst du nur einen "Renderer" (Raspi oder besser) an den du mehrere USB Soundkarten und z.B. squeezeslave Instanzen ausfuehrst.

Ansonsten stimmt deine Rechnung.

Paul
Apache Reverse Proxy fuer sicheren Zugriff auf die CCU von Unterwegs
Zeitgesteuertes LXCCU / CCU2 Backup damit es immer eine Aktuelle Sicherung gibt!
Diverse weitere Anleitungen für CCU / LXCCU / Raspberry PI

bullshit
Beiträge: 232
Registriert: 25.03.2014, 19:06

Re: Preiswertes Multiroom-Audio mit Synology Diskstation und

Beitrag von bullshit » 08.04.2014, 14:44

Man kann auch z.b. eine 7.1 Soundkarte nehmen und diese in 4x2 Kanäle mit alsa splitten und mehrere squeezeinstanzen laufen lassen die dann die jeweilige 2 Kanal virtuelle Soundkarte benutzen. Bin grad derzeit dabei die Konfiguration zu perfektionieren, werde aber erst dazu kommen wenn die hardware fertig ist.

Alsa Konfiguration
https://github.com/bullshit/multiroomau ... sound.conf

Init-Skript für Squeezeslave (raspbian)
https://github.com/bullshit/multiroomau ... ueezeslave
LXCCU Installationsanleitung
LXCCU Projekt Seite
News @LXCCUTeam

Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

Christian72D
Beiträge: 13
Registriert: 08.04.2014, 09:07

Re: Preiswertes Multiroom-Audio mit Synology Diskstation und

Beitrag von Christian72D » 09.04.2014, 07:54

Würde ein Raspi es denn schaffen fünf Räume parallel zu versorgen oder würde er dann schon überfordert sein?

bullshit
Beiträge: 232
Registriert: 25.03.2014, 19:06

Re: Preiswertes Multiroom-Audio mit Synology Diskstation und

Beitrag von bullshit » 10.04.2014, 03:13

Der langweilt sich. Obwohl ich gestehen muss das die Weboberfläche von LMS, da sie in Perl geschrieben ist, langsam ist.
LXCCU Installationsanleitung
LXCCU Projekt Seite
News @LXCCUTeam

Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

Antworten

Zurück zu „Projektvorstellungen“