+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 11
  1. #1
    Registriert seit
    Mar 2012
    Ort
    Machern/Sachsen
    Beiträge
    336

    Standard Sony AV - Einbindung in IPS

    Hallo zusammen und schönen Sonntag !

    Hat schon jemand erfolgreich versucht Geräte von Sony in IPS zu integrieren ?

    Spezifisch denke ich an einen STR-DN 2010 (AV-Receiver), SA-NS300 (DLNA-Lautsprecher), Fernseher und PS3.
    Der Gedanke ist, per DLNA bestimmte Videos oder MP3 an die bereffenden Geräte zu schicken, ber auch Einstellungen wie Lautstärke etc. vornehmen zu können. Vernetzt sind die Geräte, wobei vorallem PS3 Mediaserver oder ganz normal WMP zum abspielen genutzt wird.

    In der Forensuche war nichts Schlüssiges zu finden. Bei anderen wie Onkyo, Denon etc. soll es ja gehen.

  2. #2
    Registriert seit
    Mar 2012
    Ort
    Machern/Sachsen
    Beiträge
    336

    Hat wirklich keiner eine Idee ?

    Ich habe mich ein wenig mit den UPnP-Tools (Developer Tools - Open Software Projects) beschäftigt und die Geräte ansprechen können. Man kann sie auch darüber zumindest rudimentär steuern und Stacks anlegen. Lässt sich das nicht irgendwie in eine Steuerung implementieren ? Für den WHS gibt es das ...

  3. #3
    Registriert seit
    Feb 2010
    Ort
    Kreis Wesel
    Beiträge
    224

    Hallo,

    direkt helfen kann ich dir leider nicht, aber evtl. kann ich dir ein paar Ideen liefern.

    Wenn die Geräte über einen Webbrowser angesprochen und gesteuert werden können hast du große Chancen dies auch mit IPS zu machen.
    Auch ein Indiz für Machbarkeit ist oft das vorhandensein einer APP fürs Smartphone.
    Über die Homepage des Herstellers (oder Hersteller-Forum) bekommt man dann auch eine Beschreibung der Befehle.

    Für die Umsetzung kannst du die Beispiele aus diesem Forum benutzen (z.B. Steuerung denon)

    Gruß, Peter

  4. #4
    Registriert seit
    Mar 2012
    Ort
    Machern/Sachsen
    Beiträge
    336

    Eigentlich bin ich Sony-Fan. Aber die Firmenpolitik ist etwas altbacken. Man findet nichts zu Schnittstellen oder Befehle, welche dokumentiert sind.

    Bei HomeSeer gibt es nur ein DVD-Wechsler-Plugin. Dieser kommuniziert aber über RS232. Ich denke, die Befehle wären nicht brauchbar ...

    Allgemeine UPNP-Befehle müssten doch aber gehen. Der Windows Media Player kann die Devices ja auch ansprechen.

  5. #5
    Registriert seit
    Mar 2012
    Ort
    Machern/Sachsen
    Beiträge
    336

    Standard UPNP Geräte ansteuern

    Hallo Mitstreiter,

    ich bin bisher erfolglos auf der Suche nach einer Möglichkeit per IPS UPNP-Geräte ansteuern zu können (urn:schemas-upnp-org:device:MediaRenderer:1).
    Es wäre ja schön Netzwerk-Player Marken-unabhängig ansteuern zu können.

    Spezifisch denke ich zwar an einen STR-DN 2010 (AV-Receiver), SA-NS300 (DLNA-Lautsprecher), Fernseher und ggf. PS3, aber ein allgemeines Script wäre das eigentliche Ziel.

    Der Gedanke ist, per DLNA bestimmte Videos aber vorallem MP3 an die betreffenden Geräte zu schicken, aber auch Einstellungen wie Lautstärke etc. vornehmen zu können. Vernetzt sind die Geräte, wobei vorallem PS3 Mediaserver oder ganz normal WMP zum abspielen genutzt wird.

    Meine bisherigen Treads führten dabei leider ins Leere, wobei der Ansatz einer Geräte-spezifischen Steuerung sicher falsch war:

    http://www.ip-symcon.de/forum/f39/so...-symcon-17889/
    http://www.ip-symcon.de/forum/f39/up...-script-18074/

    Nun habe ich bei der Durchsicht der Sonos-Scripts gesehen, dass diese Geräte offenbar auch über UPNP angesteuert werden
    Und so dachte ich mir, dass in diesem Forum die kompetentesten Ansprechpartner am Werke sind.

    Ich habe zumindest über die "Developer Tools for UPnP™ Technology" und die UPnP-Database einige Daten zusammentragen können (siehe Anhänge).

    Vielleicht kann mir jemand dabei helfen, dies zu portieren, da mir dazu einfach die Programmiererfahrung fehlt.

    Viele Grüße

    André

  6. #6
    Registriert seit
    Mar 2012
    Ort
    Machern/Sachsen
    Beiträge
    336

    Post UPNP Reloaded

    Hallo Gemeinde,

    nachdem ich mich in den vergangenen Monaten mit Rolläden, Licht und Heizung beschäftigt habe möchte ich den Thread zu UPNP nochmal hochholen.

    Ich habe beim durchstöbern des Forums mir den Anfang von Sonos nochmal angesehen und folgendes vielversprechendes Script von paresy entdeckt:

    PHP-Code:
    <?

    //Sonos ZP IPAdresse
    $address "192.168.3.183";

    if(
    $IPS_SENDER == "Designer")
    {
     
    $action $IPS_COMPONENT//IPSYMID Feld verwenden
    }
    else if(
    $IPS_SENDER == "Variable")
    {
     
    $action $IPS_VALUE//Per Variable getriggert
    }
    else 
    //Aktion über Execute gestartet. Festgelegte Aktion starten
    {
     
    $action "Play"//Pause, Play, Next, Previous, Rewind, SetVolume, SetPlayMode, SetMute, SetRadio, ClearQueue, AddToQueue, RemoveFromQueue, SetTrack
    }

    $volume 25//Nur bei SetVolume
    $mute 0//Nur bei SetMute / 0 > Musik / 1 > kein Ton
    $mode "NORMAL"//Nur Bei SetPlayMode / REPEAT_ALL, SHUFFLE, NORMAL
    $track 4//Track Nummer zum ausählen/löschen

    //Klassik Radio
    $radio "x-rincon-mp3radio://players.creacast.com/creacast/klassik/playlist.pls";
    //NDR2
    //$radio = "x-rincon-mp3radio://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?content=live&media=ms&stream=ndr/live/ndr2.wma";

    //Datei laden
    $file "x-file-cifs://ipsserver/Public/test.mp3";

    //--- 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/encoding/"><s: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/encoding/"><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/encoding/"><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/encoding/"><s:Body><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/encoding/"><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/encoding/"><s:Body><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_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/encoding/"><s:Body><u:SetMute xmlns:u="urn:schemas-upnp-org:service:RenderingControl:1"><InstanceID>0</InstanceID><Channel>Master</Channel><DesiredMute>'
    .$mute.'</DesiredMute></u:SetMute></s:Body></s:Envelope>';

    $content_setplaymode='POST /MediaRenderer/AVTransport/Control HTTP/1.1
    CONNECTION: close
    HOST: '
    .$address.':1400
    CONTENT-LENGTH: '
    .(291+strlen($mode)).'
    CONTENT-TYPE: text/xml; charset="utf-8"
    SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#SetPlayMode"

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:SetPlayMode xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><NewPlayMode>'
    .$mode.'</NewPlayMode></u:SetPlayMode></s:Body></s:Envelope>';

    $content_setradio='POST /MediaRenderer/AVTransport/Control HTTP/1.1
    CONNECTION: close
    HOST: '
    .$address.':1400
    CONTENT-LENGTH: '
    .(974+strlen(htmlspecialchars($radio))).'
    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/encoding/"><s:Body><u:SetAVTransportURI xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><CurrentURI>'
    .htmlspecialchars($radio).'</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:schemas-upnp-org:metadata-1-0/DIDL-Lite/&quot;&gt;&lt;item id=&quot;R:0/0/0&quot; parentID=&quot;R:0/0&quot; restricted=&quot;true&quot;&gt;&lt;dc:title&gt;IP-Symcon Radio&lt;/dc:title&gt;&lt;upnp:class&gt;object.item.audioItem.audioBroadcast&lt;/upnp:class&gt;&lt;desc id=&quot;cdudn&quot; nameSpace=&quot;urn:schemas-rinconnetworks-com:metadata-1-0/&quot;&gt;SA_RINCON65031_&lt;/desc&gt;&lt;/item&gt;&lt;/DIDL-Lite&gt;</CurrentURIMetaData></u:SetAVTransportURI></s:Body></s:Envelope>';

    $content_clearqueue='POST /MediaRenderer/AVTransport/Control HTTP/1.1
    CONNECTION: close
    HOST: '
    .$address.':1400
    CONTENT-LENGTH: 290
    CONTENT-TYPE: text/xml; charset="utf-8"
    SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#RemoveAllTracksFromQueue"

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:RemoveAllTracksFromQueue xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID></u:RemoveAllTracksFromQueue></s:Body></s:Envelope>'
    ;

    $content_addtoqueue='POST /MediaRenderer/AVTransport/Control HTTP/1.1
    CONNECTION: close
    HOST: '
    .$address.':1400
    CONTENT-LENGTH: '
    .(438+strlen(htmlspecialchars($file))).'
    CONTENT-TYPE: text/xml; charset="utf-8"
    SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#AddURIToQueue"

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:AddURIToQueue xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><EnqueuedURI>'
    .$file.'</EnqueuedURI><EnqueuedURIMetaData></EnqueuedURIMetaData><DesiredFirstTrackNumberEnqueued>0</DesiredFirstTrackNumberEnqueued><EnqueueAsNext>1</EnqueueAsNext></u:AddURIToQueue></s:Body></s:Envelope>';

    $content_removefromqueue='POST /MediaRenderer/AVTransport/Control HTTP/1.1
    CONNECTION: close
    HOST: '
    .$address.':1400
    CONTENT-LENGTH: '
    .(307+strlen($track)).'
    CONTENT-TYPE: text/xml; charset="utf-8"
    SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#RemoveTrackFromQueue"

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:RemoveTrackFromQueue xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><ObjectID>Q:0/'
    .$track.'</ObjectID></u:RemoveTrackFromQueue></s:Body></s:Envelope>';

    $content_settrack='POST /MediaRenderer/AVTransport/Control HTTP/1.1
    CONNECTION: close
    HOST: '
    .$address.':1400
    CONTENT-LENGTH: '
    .(288+strlen($track)).'
    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/encoding/"><s:Body><u:Seek xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID><Unit>TRACK_NR</Unit><Target>'
    .$track.'</Target></u:Seek></s:Body></s:Envelope>';

    //send via socket
    $port 1400;

    switch(
    $action)
    {
       case 
    "Pause":
        
    $content $content_pause;
        break;
       case 
    "Play":
        
    $content $content_play;
        break;
       case 
    "Next":
        
    $content $content_next;
        break;
       case 
    "Previous":
        
    $content $content_previous;
        break;
       case 
    "Rewind":
        
    $content $content_rewind;
        break;
       case 
    "SetVolume":
        
    $content $content_setvolume;
        break;
       case 
    "SetMute":
        
    $content $content_setmute;
        break;
       case 
    "SetPlayMode":
        
    $content $content_setplaymode;
        break;
       case 
    "SetRadio":
        
    $content $content_setradio;
        break;
       case 
    "ClearQueue":
        
    $content $content_clearqueue;
        break;
       case 
    "AddToQueue":
        
    $content $content_addtoqueue;
        break;
       case 
    "RemoveFromQueue":
        
    $content $content_removefromqueue;
        break;
       case 
    "SetTrack":
        
    $content $content_settrack;
        break;
    }

    $fp fsockopen ($address$port$errno$errstr10);
    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";
    }

    ?>
    Die Befehle sehen aus, als ob sie den upnp-Standard verwenden. Ein Ausführen des Scripts (IP und Port angepasst) gibt mir zumindest schon einmal folgendes aus:

    HTML-Code:
    HTTP/1.1 404 Not Found
    X-AV-Server-Info: av="5.0"; cn="Sony Corporation"; mn="SA-NS400"; mv="1.00"
    X-AV-Physical-Unit-Info: pa="SA-NS400"
    Kann mir jemand helfen, wie es zumindest weitergehen könnte? Wie kann ich das einbinden (Variablen, Socket, etc.). Mein Traum wäre nach wie vor UPNP-Geräte in verschiedenen Räumen direkt über IPS zu beschicken.
    (Sockets vorhanden; alle UPNP / DLNA - kompatibel und mit diversen Apps (Sony Network Audio Remote, Twonky, Kinsky etc.) perfekt ansprechbar)

    Insbesondere möchte ich paresy ansprechen, da er das Script verfasste und ich nach allem was ich hier so lese nur meinen Hut ziehen kann: Was man mit IPS so alles programmieren kann ! (wenn man es kann )

    Viele Grüße und Danke

    André

  7. #7
    Registriert seit
    Oct 2010
    Ort
    HH
    Beiträge
    4,613

    ab und zu muss ja auch ein IPS-Entwickler zeigen, was mit IPS alles geht
    mit gebücktem Gruss
    Raketenschnecke
    IPS-Projekte und -Tools auf
    www.raketenschnecke.net

  8. #8
    Registriert seit
    Mar 2012
    Ort
    Machern/Sachsen
    Beiträge
    336

    Ja, das ist wohl wahr.

    Schade eigentlich, dass das Thema aber offenbar keinen wirklich interessiert - oder ?

    Ich persönlich sehe in einer Haussteuerung aber auch das Potential Multimedia zu transportieren, wobei viele Geräte heutzutage UPNP / DLNA können. Auf spezielle Nischen wie Sonos möchte ich aber nicht extra umsteigen.

    Gruß

    André

  9. #9
    Registriert seit
    Mar 2012
    Ort
    Machern/Sachsen
    Beiträge
    336

    Hallo Raketenschnecke,

    Du als Erklärbär und sehr aktiver Entwickler könntest mir vielleicht ein paar Anhaltspunte geben ?

    Es müsste doch möglich sein die Entertainment-Steuerung zu nutzen und die spezifischen Befehle per WinShark auszulesen und dort zu implementieren. Doch wie stelle ich das an ?

    Viele Grüße

    André

  10. #10
    Registriert seit
    Oct 2010
    Ort
    HH
    Beiträge
    4,613

    ich als PHP-Anfänger kann dazu leider nicht allzuviel sagen: Wireshark ist eher ein Thema für Netzwerk-Spezialisten oder für Leute mit großen Ohren ("mal das Ohr auf die Schiene legen" ), bevor ich hier halbgaren Unsinn verbreite hoffe ich lieber auf weitere, aber qualifiziertere Meldungen zu deiner Frage.

    Bei der Entertainment-Steuerung (du meinst die von Brownson?) kann ich auch nicht viel mehr sagen: da hab ich mich nie mit befasst, weil ich zu deer Zeit schon meine DENON-Anbindung fertig hatte. Und die ist nach ganz anderem Muster entstanden: DENON liefert sehr gut dokumentierte Schnittstellen-Definitionen mit, die "einfach nur" ins PHP gedengelt werden müssen

    Sorry, ich würd gern helfen, aber hier hab ich kein hilfr4eiches Wissen, was ich absondern könnte
    mit gebücktem Gruss
    Raketenschnecke
    IPS-Projekte und -Tools auf
    www.raketenschnecke.net

Ähnliche Themen

  1. Script zur Einbindung eines SmartMeters in IPS
    Von zoernert im Forum Haustechnik
    Antworten: 6
    Letzter Beitrag: 28.12.13, 11:19
  2. IPS Application Error
    Von Dani im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 6
    Letzter Beitrag: 10.11.10, 14:15
  3. Newbie hat eine Frage! Mail per IPS?
    Von Xanon im Forum Allgemeine Diskussion
    Antworten: 7
    Letzter Beitrag: 14.10.10, 18:40
  4. IPS 2. Anlauf Installationsprobleme
    Von edison im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 2
    Letzter Beitrag: 03.09.10, 13:07
  5. Fernbedienung und IPS: Wie kann ich beides zur Steuerung verwenden?
    Von Budgreg im Forum Sonstige Funkkomponenten / Wetterstationen
    Antworten: 10
    Letzter Beitrag: 29.11.06, 09:11

Stichworte