Ankündigung

Einklappen
Keine Ankündigung bisher.

HS & Sonos - gibts was Neues?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • aggie89go
    antwortet
    Ich nutze misterhouse damit kann ich mein Sonos System jetzt ganz brauchbar steuern. Ich habe ein Sonos_sender.pl Script um Kommandos zu senden (siehe Lexikon) und ein Sonos_receiver.pl Script, dass aktuelle Info's einfach vom parallel laufenden sonosweb Sonos Web Controller erhält (einfach per TCP socket stream).

    Für HS Unterstützung am besten mal eine PN and marct senden, vielleicht hat er da weitergemacht.

    Einen Kommentar schreiben:


  • domoticom
    antwortet
    yes, that would be nice :-)

    Einen Kommentar schreiben:


  • Umon
    antwortet
    Hi!

    Finde es toll, dass es immer wieder Bastler gibt, die sich mit solchen Themen befassen!

    Hat sich eigentlich hier etwas getan? Wir haben seit ein paar Tagen ein Sonos System im Haus, ist toll, aber wäre super, wenn man es in Szenen einbauen kann,...

    Hat vielleicht schon jemand das ordentlich geschafft und könnte die Logiken und Scripts posten? Vielleicht mit Anleitung, für die nicht so technisch bewanderten ;-)

    lg Stefan

    Einen Kommentar schreiben:


  • marct
    antwortet
    Die Phpscripte werden auf deinem Webserver abgelegt und auf diesem durch HS gestartet. Ich hatte drei Screenshots gepostet wo die Einstellung im HS angezeigt wird.

    Abfrage:
    So weit bin ich leider noch nicht. Bisher kann ich jeden Sonosplayer separat einschalten, Laustärke ändern, Titel vor zurück. Mehr habe ich in den Script noch nicht ändern können.

    Einen Kommentar schreiben:


  • thomas3007
    antwortet
    Hallo marct!

    Endlich hat jemand eine Lösung gefunden! Find ich toll. Ich hab zwar noch keinen Sonos Player aber unter diesem umständen werde ich gleich aufrüsten! Davor wollte ich aber noch fragen ob du eine genaue Anleitung posten kannst wie man diese script zur Steuerung anlegt und in welchem Ordner bzw. wo man diese dann speichern muß um sie per Ip Telegramme senden kann.

    Übrigens kann man über diese Variante eigentlich auch den Status bzw. Playlists und Titeln vom Sonos Player abfragen!

    Freu mich auf deine Antwort
    Lg

    Thomas3007

    Einen Kommentar schreiben:


  • aggie89go
    antwortet
    Zitat von marct Beitrag anzeigen
    wie hast du das mit der Regelung der Lautstärke geregelt? Hast du für jede Lautstäreke ein eigenes Script?
    Nein, in Misterhouse geht alles mit Perl.
    Ich habe ein Perl-Skript zur Steuerung der Sonos-Kisten und darin für jede Funktion eine Subroutine, der ich z.B. die ID der jeweiligen Box und im Fall der Lautstärkeregelung noch einen Zahlenwert für die Lautstärke übergebe. Ein Tastendruck auf dem InfoTerminal macht bei mir 5% leiser/lauter (damit es besser klingt in 1% Schritten und 0.5s Pause zwischen den Schritten):
    Code:
    if (state_now $Sonos_Leiser) {
       for($i=1;$i<6;$i++){
          Sonos_Volume($SonosPlayerNR, $SonosVolume-$i);
          select(undef, undef, undef, 0.5);                  # sleep 0.5s between every step
       }
       $SonosVolume -= $i
    }

    Einen Kommentar schreiben:


  • marct
    antwortet
    Hallo Marc,

    wie hast du das mit der Regelung der Lautstärke geregelt? Hast du für jede Lautstäreke ein eigenes Script?

    Einen Kommentar schreiben:


  • marct
    antwortet
    Habe hier mal drei Screenshots von meiner HS-logik angehängt:
    Angehängte Dateien

    Einen Kommentar schreiben:


  • aggie89go
    antwortet
    auf die Art und Weise steuere ich auch mein Sonos System, allerdings mit Misterhouse und nicht mit dem HS...

    Im IP-Symcon Forum gibt es auch weitere Kommandos wie Playliste auswählen, Tracks hinzufügen, Internetradio, externe Quelle auswählen etc.

    Anbei ein Bild wie die Steuerung des Sonos Systems über das Info Terminal Touch bei mir aussieht.
    Angehängte Dateien

    Einen Kommentar schreiben:


  • marct
    antwortet
    Ich habe die Idee und Script ist aus diesem Forum:
    Einzelne Sonos Player ansteuern - IP-Symcon Community Forum

    Habe es danach noch angepasst.

    Einen Kommentar schreiben:


  • meudenbach
    Ein Gast antwortete
    Ich mach mein Postfach bald dicht, dann hört das auf ... Habe das nicht im Fokus !!!

    LG

    P.S.: RUSSOUND und SONOS .. schlechter Vergleich

    Einen Kommentar schreiben:


  • Fredl
    antwortet
    Oh, doch wieder was Neues bei Sonos. Dabei hab ich mich jetzt schon sehr mit der von Mike vorgeschlagenen zentralen Variante mit einem Russound im Keller angefreundet.


    @meudenbach

    Apropos Mike: Ich hab Dir noch eine private Nachricht geschickt, es ginge ums konkrete Feintuning und der Eli steht in den Startlöchern...

    Einen Kommentar schreiben:


  • meudenbach
    Ein Gast antwortete
    Meinen vollen Respekt !!!!

    wie bist Du darauf gekommen? Gibt es endlich eine Doku zum Protokoll, oder hast das mühselig mit einem Sniffer ausgelesen?

    würde das gern in mmh einbinden, und wie das ausschaut geht das auch.

    LG

    Einen Kommentar schreiben:


  • marct
    antwortet
    Hi,
    ich habe Sonos mit HS verbunden.

    Über eine Gruppenadresse wird mit dem einschalten des Lichts im Bad´s ein Script von Hs auf dem Webserver (Qnap) gestartet.

    Für jede Aktion habe ich ein eigenes Script: Play, pause, 50% Lautstärke etc.

    Gruß Marc

    <?
    //Sonos ZP IPAdresse
    $address = "192.168.177.50"; // z.B. Bad
    $action = "Play"; //Pause, Play, SetVolume, Next, Previous, Rewind
    //$action = "SetMute";
    $volume = 25; //Nur bei SetVolume
    $domute = 0; //Nur bei SetMute / 0 > Musik / 1 > kein Ton
    //--- Nix verändern ab hier
    $content_pause='POST /MediaRenderer/AVTransport/Control HTTP/1.1
    CONNECTION: close
    HOST: '.$address.':1400
    CONTENT-LENGTH: 252
    CONTENT-TYPE: text/xml; charset="utf-8"
    SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Pause"
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/enco...:Body><u:Pause xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID></u:Pause></s:Body></s:Envelope>';
    $content_play='POST /MediaRenderer/AVTransport/Control HTTP/1.1
    CONNECTION: close
    HOST: '.$address.':1400
    CONTENT-LENGTH: 266
    CONTENT-TYPE: text/xml; charset="utf-8"
    SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Play"
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/enco...s:Body><u:Play xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><Speed>1</Speed></u:Play></s:Body></s:Envelope>';
    $content_next='POST /MediaRenderer/AVTransport/Control HTTP/1.1
    CONNECTION: close
    HOST: '.$address.':1400
    CONTENT-LENGTH: 250
    CONTENT-TYPE: text/xml; charset="utf-8"
    SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Next"
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/enco...s:Body><u:Next xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID></u:Next></s:Body></s:Envelope>';
    $content_previous='POST /MediaRenderer/AVTransport/Control HTTP/1.1
    CONNECTION: close
    HOST: '.$address.':1400
    CONTENT-LENGTH: 258
    CONTENT-TYPE: text/xml; charset="utf-8"
    SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Previous"
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/enco...dy><u:Previous xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID></u:Previous></s:Body></s:Envelope>';
    $content_rewind='POST /MediaRenderer/AVTransport/Control HTTP/1.1
    CONNECTION: close
    HOST: '.$address.':1400
    CONTENT-LENGTH: 296
    CONTENT-TYPE: text/xml; charset="utf-8"
    SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Seek"
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/enco...s:Body><u:Seek xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><Unit>REL_TIME</Unit><Target>00:00:00</Target></u:Seek></s:Body></s:Envelope>';
    $content_setvolume='POST /MediaRenderer/RenderingControl/Control HTTP/1.1
    CONNECTION: close
    HOST: '.$address.':1400
    CONTENT-LENGTH: 32'.strlen($volume).'
    CONTENT-TYPE: text/xml; charset="utf-8"
    SOAPACTION: "urn:schemas-upnp-org:service:RenderingControl:1#SetVolume"
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/enco...y><u:SetVolume xmlns:u="urn:schemas-upnp-org:service:RenderingControl:1"><InstanceID>0</InstanceID><Channel>Master</Channel><DesiredVolume>'.$volume.'</DesiredVolume></u:SetVolume></s:Body></s:Envelope>';
    $content_startradio='POST /MediaRenderer/AVTransport/Control HTTP/1.1
    CONNECTION: close
    HOST: '.$address.':1400
    CONTENT-LENGTH: 1106
    CONTENT-TYPE: text/xml; charset="utf-8"
    SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI"
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/enco...AVTransportURI xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><CurrentURI>x-rincon-mp3radio://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?content=live&amp;media=ms&amp;stream= ndr/live/ndr1wellenord.wma</CurrentURI><CurrentURIMetaData>&lt;DIDL-Lite xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:upnp=&quot;urn:schemas-upnp-org:metadata-1-0/upnp/&quot; xmlns:r=&quot;urn:schemas-rinconnetworks-com:metadata-1-0/&quot; xmlns=&quot;urn:';
    $content_startradio.='schemas-upnp-org:metadata-1-0/DIDL-Lite/&quot;&gt;&lt;item id=&quot;R:0/42&quot; parentID=&quot;R:0&quot; restricted=&quot;true&quot;&gt;&lt;dc:title&gt;Wel le Nord&lt;/dc:title&gt;&lt;upnp:class&gt;object.item.audioIte m.audioBroadcast&lt;/upnp:class&gt;&lt;desc id=&quot;cdudn&quot; nameSpace=&quot;urn:schemas-rinconnetworks-com:metadata-1-0/&quot;&gt;RINCON_AssociatedZPUDN&lt;/desc&gt;&lt;/item&gt;&lt;/DIDL-Lite&gt;</CurrentURIMetaData></u:SetAVTransportURI></s:Body></s:Envelope>';
    $content_setmute='POST /MediaRenderer/RenderingControl/Control HTTP/1.1
    CONNECTION: close
    HOST: '.$address.':1400
    CONTENT-LENGTH: 314
    CONTENT-TYPE: text/xml; charset="utf-8"
    SOAPACTION: "urn:schemas-upnp-org:service:RenderingControl:1#SetMute"
    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/enco...ody><u:SetMute xmlns:u="urn:schemas-upnp-org:service:RenderingControl:1"><InstanceID>0</InstanceID><Channel>Master</Channel><DesiredMute>'.$domute.'</DesiredMute></u:SetMute></s:Body></s:Envelope>';
    //send via socket
    $port = 1400;
    switch($action)
    {
    case "Pause":
    $content = $content_pause;
    break;
    case "Play":
    $content = $content_play;
    break;
    case "SetVolume":
    $content = $content_setvolume;
    break;
    case "Next":
    $content = $content_next;
    break;
    case "Previous":
    $content = $content_previous;
    break;
    case "Rewind":
    $content = $content_rewind;
    break;
    case "StartRadio":
    $content = $content_startradio;
    break;
    case "SetMute":
    $content = $content_setmute;
    break;
    }

    $fp = fsockopen ($address, $port, $errno, $errstr, 10);
    if (!$fp) {
    echo "$errstr ($errno)<br />\n";
    } else {
    fputs ($fp, $content);
    $ret = "";
    while (!feof($fp)) {
    $ret.= fgets($fp,128);
    }
    fclose($fp);
    }

    //Rückgabe
    if(strpos($ret, "200 OK") === false)
    {
    echo $ret;
    } else {
    echo "OK";
    }
    ?>

    Einen Kommentar schreiben:


  • meudenbach
    Ein Gast antwortete
    wenn ich Sie mal restlos verstehen würde ;-)
    Da kippst Du Öl ins Feuer... Ja aber ich geb zu, bei der derzeitigen Komplexität ist das schwierig...

    LG

    Einen Kommentar schreiben:

Lädt...
X