Hausneubau mit "Bluesound" Multiroom System und Einbindung in IPS

Hallo zusammen,

ich bin durch einen befreundeten Elektroinstallateur auf IPS und Euch aufmerksam geworden. Er kennt das System schon sehr gut und führt regelmäßig Installationen durch.

Ich bin neu im Forum und werde die Technik ebenfalls zusammen mit meinem Freund/Installateur in meinem Eigenheim verbauen. Da ich mich gleichzeitig schon für ein Multiroom System mit Musikboxen in diversen Räumen der Firma Bluesound entschieden habe, frage ich mich nun ob von euch schon jemand Erfahrung mit der Einbindung in IPS gemacht hat oder ob es schon ein Modul gibt?

Viele Grüße

Dealer

Hallo und willkommen im Forum.

Google lieferte dies: Bluesound API decoded - Discussion

Mit etwas Programmierarbeit sollte also eine rudimentäre Steuerung möglich sein. Komfort und „Out-of-the-Box-Feeling“ gibts aber nicht. Dann müsstest du auf etwas Gängiges ausweichen.

Gruß,

Toni

Danke für die Nachricht, ich habe herausgefunden, dass ich Bluesound über

http://192.168.0.038:11000/Preset?id=1

ansteuern kann. Wenn ich das im Internetexplorer aufrufe, klappt es. Aber über IPS nicht.

file_get_contents(„http://192.168.0.038:11000/Preset?id=1“); //Esstisch #1

es erscheint folgende Fehlermeldung:
Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/lib/symcon/scripts/53097.ips.php on line 13

Warning: file_get_contents(http://192.168.0.038:11000/Preset?id=1): failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/lib/symcon/scripts/53097.ips.php on line 13

Bitte um Hilfe… Danke
Gruß
Peter

Hast du es mal mit cURL versucht?

Gesendet von iPhone mit Tapatalk

nein, kenne ich leider nicht.

Was kann ich noch tun?


$url = "http://hier musst du die URL eintragen";
                    $curl = curl_init();
                    curl_setopt_array($curl, array(CURLOPT_URL => $url,
                        CURLOPT_HEADER => 0,
                        CURLOPT_RETURNTRANSFER => 1,
                        CURLOPT_HTTPHEADER => array("Content-type: text/xml")));
                    $result = curl_exec($curl);
                    curl_close($curl);
                    $xmldata = new SimpleXMLElement($result);
                

Versuche das mal.

Uli

Gesendet von iPhone mit Tapatalk

Vielen Dank für die schnelle Antwort - jetzt kommt folgende Fehlermeldung:

Fatal error: Uncaught exception ‚Exception‘ with message ‚String could not be parsed as XML‘ in /var/lib/symcon/scripts/53097.ips.php:22
Stack trace:
#0 /var/lib/symcon/scripts/53097.ips.php(22): SimpleXMLElement->__construct(’’)
#1 {main}
thrown in /var/lib/symcon/scripts/53097.ips.php on line 22

line22: $xmldata = new SimpleXMLElement($result);

Lass das letzte mal, schaltet es ein?

Gesendet von iPhone mit Tapatalk

Wenn ich die letzte Zeile weglasse geht nichts an und es kommt auch keine Fehlermeldung.

Hier ist nochmal ein anderer Code, die URL soll einen Song abspielen. Versuche das einmal und danach deinen Preset String.


$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://192.168.1.45:11000/Play?id=2");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close ($ch);


Uli

Gesendet von iPhone mit Tapatalk

Du hat bei deiner IP 038 angegeben, versuche mal 38

Gesendet von iPhone mit Tapatalk

Super danke mit dem neuen Befehl hats geklappt.

Vielen danke!

Gerne, viel Spaß und schönen Abend!

Gesendet von iPhone mit Tapatalk

Hier findest du noch weitere Befehle:

Der angegebene Code ist nicht PHP, aber die Endpoints: /Play /Pause usw. kann man mit Sicherheit verwenden.

Den Result kann man bestimmt auch noch auswerten.

Uli

Gesendet von iPhone mit Tapatalk

Ich hätte noch eine Frage zu unser Konversation von oben, die schon was her ist. Befehle funktionieren soweit prima. Wollte mich erkundigen ob es einen schlankeren curl code gitb, wenn man mehrere htttp befehle ausführen möchte, ohne jedesmal alles zu wiederholen:

das hier funktioniert:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://192.168.0.41:11000/Play");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close ($ch);

z.b.
curl_setopt($ch, CURLOPT_URL, „http://192.168.0.40:11000/Volume?level=10“)
curl_setopt($ch, CURLOPT_URL, „http://192.168.0.40:11000/Play“);

Gruß Peter

Man kann sich im Skript functions anlegen mit einem Parameter Endpoint und sofern notwendig erforderlichen Postfields.

Dann brauchst du nur z.B. Folgendes aufrufen:

SendDataToDevice($Endpoint, $Parameter);

Oder ein Modul selber bauen.

Beispiel findest du hier:

GitHub - ubittner/SymconBoseSoundTouch: PHP Module for IP-Symcon to integrate Bose SoundTouch

Uli

Gesendet von iPhone mit Tapatalk

Für Code der sich ständig wiederholt nutzt man Funktionen.Lies Dich mal in Funktionen ein.

Sieht dann z.B. so aus:


//play
Play();

// set Volume to 10
SetVolume(10);

function Play()
{
SendCommand("Play")
}

function SetVolume($volume)
{
$command =  "Volume?level=".$volume;
SendCommand($command)
}

function SendCommand($command)
{
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "http://192.168.0.41:11000/".$command);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
}

danke euch