DLNA - Ansagen (urn:schemas-upnp-org:service:AVTransport:1)

Hallo Gemeinde,

ich habe nach viel trial and error nun doch eine Möglichkeit gefunden mit nativen http-Posts meine Netzwerk-Lautsprecher anzusprechen und Ansagen zu machen. Die eigentlichen Anfänge hatte ich schon in

gepostet.

Nun habe ich ein bereits teilweise funktionsfähiges System und suche vielleicht noch ein paar Leute, die etwas weiter daran entwickeln. Alle Befehle habe ich per Wireshark ausgelesen, wobei diese bisher nur in eine Richtung gehen, d.h. ohne Rückmeldung. Alles basiert auf „urn:schemas-upnp-org:service:AVTransport:1“.

Prinzipiell habe ich die Räume mit zugehörigen IP sowie spezifischen Port, welche umschaltbar sind (6 Lautsprecher)definiert . Die eigentliche Übertragung der URI erfolgt mit dem Verweis auf ein spezifisches File (mp3), welches in einem Extra-Ordner (\Netzwerk) liegt, welchen ich per IPS über einen Port freigeschaltet habe.
SetVolume, Ein/Aus sind eigenständige Scripts, da ich hoffe einmal das Konstrukt als Audio-Ansteuerung verwenden zu können. Als Control habe ich die gängigen Befehle (Prev, Play, Pause, Stop, Next) lauffähig. In Playmode sind Normal, Repeat (one/all) und Random lauffähig.

Bitte nicht über die Ansagen lachen - es sind nur Beispiele. Ich plane neben sinnvollen Ansagen die Systemansagen noch einzubinden (File, das in den Netzwerkordner geschrieben und dann aufgerufen wird).

Wo haperts ? / To do

Audioübertragung war das eigentliche Ziel. Bisher habe ich jedoch noch keinen dafür brauchbaren (einbindbaren) Library-Browser gefunden, der mir einen Netwerkpfad bereitstellen kann, den die Geräte erreichen. Erstaunlicherweise sucht sich der entsprechende Lautsprecher selbst den nächst verfügbaren Server (in meinem Fall WMP), so dass ich die Control und Playmode-Funktionen verifizieren konnte. Wenn also jemand eine Idee hat … Der Netplayer funktioniert nicht in diesem Konstrukt und ist faktisch im Screenshot nur als Platzhalter mit sichtbar. Eine Lösung a´la Sonos wäre schön gewesen, die haben aber bereits ihren zentralen Server dabei.

Die UPNP_Send_Device (Umschaltung der Räume) muss ich noch überarbeiten - hier habe ich noch Denkfehler drin. Ich muss betonen, dass ich mich die letzten Wochen erst leidlich in PHP eingearbeitet habe, so dass ein Profi wahrscheinlich lachen wird. IT ist nicht meine Branche - nur mein Interesse :slight_smile:

Für Sony und manche andere gibt es einen Party-Modus. Die Befehle habe ich schon ausgelesen, aber noch nicht zum Laufen bekommen. Damit sollte es möglich sein alle Lautsprecher parallel zum sprechen zu bewegen :rolleyes: (UPNP_Party_Posts.doc). Hier müssen in die Listener-List die entsprechenden UUID´s der Geräte. Aber wie weiter ? Meine Lautsprecher haben noch nicht so richtig kapiert, was ich von ihnen will :o

Die UPNP_Send_Commands.ips.php hat keine Funktion - hier sind nur als Referenz die Befehle enthalten (ich wollte sie mal als Kernstück ausbauen, habe es dann aber gelassen und alle switches etc. entfernt, da ich nicht wusste, wie ich nur die jeweils notwendigen Teilstücke aktivieren kann).

Anbei Screenshots des WF, der Variablen sowie essentielle Scripts. Wollte es erst mit Raketenschneckes Project-Exporter hier hineinstellen (Tonic1024 hatte mich darauf aufmerksam gemacht), habe aber bemerkt, dass mir alle http-Posts nach dem <? mit einem Kommentar versehen werden (sind dann für Euch unbrauchbar).

@ Raketenschnecke: Ein dickes „Respekt“ für den Project Exporter !!! :slight_smile: - kann man den Kommentar aber umgehen ? So kann man prima Projekte auch einzeln sichern.

Wie gesagt - über Rückmeldung würde ich mich freuen.

Viele Grüsse

André

UPNP.zip (8.58 KB)

UPNP_Party_Posts.doc (29.5 KB)

Ich bin mit meinem Projekt ja auch schon recht weit. Vielleicht kann ich weiter machen eine Schnittstelle zu entwickeln, die dir deine Netzwerkpfade raus wirft.

… wäre super !

Viele Grüsse

André

Hallo Gemeinde,

habe vorhin von Raketenschnecke eine modifizierte Version vom Exporter bekommen - Danke nochmal ! :slight_smile:

Zum nachlesen: http://www.raketenschnecke.net/2012/09/25/ips-rs-project-exporter/

Hier nun als Ausschnitt mein IPS-Baum - nur am Besten auf einem Zweitrechner als Test installieren (will vermeiden, dass Ihr euch vielleicht IPS durch Konflikte zerschießt, da ich die richtige Installation nicht getestet habe). Bei Durchsicht des Installationsscripts sahen die Befehle gut aus.

So könnt Ihr euch die gefühlt tausend Variablen zu erstellen sparen. Wichtig nur: die IP´s und Port´s der Geräte in den Räumen und Send_Device (die ist unausgegoren ! - ich glaube es kommt nur der Else - Teil zum Zuge :confused:) sowie des Rechners anpassen. Gegebenfalls auch einiges rausschmeissen.

Die Ansagen müssen in einem Ordner \IP-Symcon\Netzwerk\Ansagen als MP3 oder auch WAV (wenn es der Renderer kann) liegen. Diesen als Webserver mit Port erstellen (ggf. anpassen). Zum Test am Besten eine beliebige MP3 in Fruehstueck.mp3 umbenennen und in den Ordner setzen. Ach ja: Bei Windows natürlich den Port für den Webserver freigeben.

Wie gesagt, alles „nur“ halbfertig - wer entwickelt weiter mit (siehe oben) ? :smiley:

Viele Grüsse

André

UPNP-Install.zip (19.2 KB)

Hallo DigiHouse,

vielen Dank für Deine Mühe und Deine Skripte … Kannst Du Dich vielleicht zur Thematik "… Ordner \IP-Symcon\Netzwerk\Ansagen… . Diesen als Webserver mit Port erstellen (ggf. anpassen). " die Herangehensweise etwas genau erläutern. Leider komme ich an diesem Punkt nicht weiter…

Vielen Dank!

In den Screenshots habe ich gesehen, dass im Bereich „Source Control“ bereits mögliche Playlists hinterlegt sind. Wie schaffe ich das ?

Vielleicht kannst du hier etwas Hilfestellung geben

Vielen DANK

ZipFam

Hallo ZipFam,

erstmal freut es mich ungemein, dass es offenbar doch noch jemand gibt, der sich für UPNP interessiert :slight_smile:

Aber zu Deiner Frage:

vielen Dank für Deine Mühe und Deine Skripte … Kannst Du Dich vielleicht zur Thematik "… Ordner \IP-Symcon\Netzwerk\Ansagen… . Diesen als Webserver mit Port erstellen (ggf. anpassen). " die Herangehensweise etwas genau erläutern. Leider komme ich an diesem Punkt nicht weiter…

Von Haus aus können UPNP-Geräte im Netzerk nur auf Freigaben zugreifen. Da es mir zu demZeitpunkt noch nicht gelungen war anders auf Files zuzugreifen habe ich IPS als weiteren Server „missbraucht“. Dazu erstellst Du unter Kerninstanzen->Objekt hinzufügen->Instanz hinzufügen->Sonstige (alle auswählen) eine neue I/O Instanz Webserver (siehe Screenshots). Auf diese kannst Du dann zugreifen.

Da mir dieser Weg eigentlich zuwider ist und ich browsen möchte, habe ich mich weiterhin mit einer eventellen Möglichkeit beschäftigt, per UPNP auf meinen Twonky-Server für MP3/Filme zuzugreifen und bin fündig geworden (geht prinzipiell auch mit Asset-UPNP). Ich bastle also gerade an einer echten Umsetzung eines Control Point für PHP. Wenn Interesse kann ich mal den derzeitigen Stand posten, da ich da auch Hilfe gebrauchen könnte. Das Progammieren und Testen für mich als Laien geht nur langsam voran - aber: gibt es eine Softwae nicht muss man sie sich selber bauen :slight_smile:

Es wäre eben schön, auf dem Server einen Control Point zu haben, den ich mit meinen sonstigen Tablets per Webfront bediene, so dass sich im Gegensatz zu einer Insellösung (heisst Control Point auf jedem Gerät) sich die Geräte nicht ins Gehege kommen :wink:

Die vorgestellte Lösung ist sicher sehr individuell. Deshalb:

Zum Funktionstest wäre auch der Thread interessant: http://www.ip-symcon.de/forum/threads/21492-UPNP-functions-Skript-aller-A-V-UPNP-Befehle-Tester-gesucht
Hier habe ich die SOAP-Befehle als Functions zusammengefasst. Das geht sicher noch besser (die content length ist noch statisch) - ich will es auch nochmal überarbeiten, aber es funktioniert (sogar Befehle für Party-Modus für Sony - eventuell auch andere ?).

Kernpunkt ist aber eine vernünftige File-Übergabe, sonst muss man die Playlists händisch programmieren und vorallem den MP3-Ordner will ich nicht in IPS haben …

Viele Grüsse

André

Hallo DigiHouse,

entschuldige, dass ich erst jetzt antworte… war etwas eingebunden. Gerne würde ich mich als Testperson zur Verfügung stellen. Mit meinen Programmierungskünsten sieht es wahrscheinlich noch dünner aus, als bei Dir, wenn ich das Projekt betrachte.

Ein paar Fakten von mir:
Nutze IPS hauptsächlich für Homematic, für Multimedia kann ich bieten TwonkyServer, Logitech Squeezebox Radio, Duett und Touch, Noxon Cube, Noxon 90elf und den Netzwerklautsprecher NS-SA310…

Hoffentlich kann ich Dich bei der weiteren Arbeit unterstützen. Die Idee, mittels IPS einen UPNP-Kontrollpunkt zur Verfügung zu stellen, finde ich sehr gut und würde ich gerne auch besitzen - Also wollen wir beginnen?

Zu Deinen Skripts habe ich auch noch eine Frage: Leider lässt sich die Sprachansage nicht aktivieren. Der Lautsprecher beginnt nach dem Absetzen des Befehls an zu blinken, jedoch startet er nicht mit dem Abspielen der Datei. Ein paar Screenshots habe ich beigefügt. Kannst Du mir helfen?

Hallo ZipFam,

danke für´s Interesse :slight_smile: Ich hänge momentan über Twonky und dem Auslesen/Browsen. Bin jetzt ein Stück weiter als im Post

bzw.

Zum „Vertrautmachen/Antesten“ eignet sich insbesondere:

Zu Deinem Problem:

Die MP3´s hast Du sicher erstellt und unter dem oder einem anderen Namen abgespeichert (ich hatte es von meiner Frau auf Voice-Recorder aufgenommen und zu MP3´s gemacht --> das kam richtig gut und hat regelmässig Lachanfälle beim Abspielen ausgelöst :smiley: )

Aber ich habe gesehen, dass Du den richtigen Port zum File auch übergeben musst (Screenshot 2). Du hast Port 86 geöffnet - also:

$file = „http://192.168.201.100:86/IPS/Ansagen/XXX.mp3“;

Das Blinken zeigt, dass Du zwar erfolgreich einen Befehl abgesetzt hast, der Lautsprecher aber keinen Zugriff auf das File bekommt oder der Pfad falsch ist :rolleyes:

Sag Bescheid, wenn es funktioniert.

Bis dahin

VG André

PS: Portfreigabe in Windows nicht vergessen (über Firewall - Einstellungen)

Hallo DigiHouse,

nun ist wieder etwa Zeit vergangen und ich bin immer noch nicht weitergekommen. Leider stecke ich noch immer an der selben Stelle fest. Firewall deaktiviert, Webserver aktiv, Port ist richtig, kann auch vom Internet Explorer auf die Datei zugreifen… Leider spielt der Lautsprecher keine Datei ab.

Nach dem Absetzen des Befehls fängt der Lautsprecher an, weiß zu blinken…leider spielt er keine Musik ab…

Hast Du vielleicht eine Idee, woran es noch liegen könnte

Gruß

…hmmm. Gib mir mal einen Screenshot.

Wenn Du IPS als Serverordner eingetragen hast mit Unterordner Ansagen ist am Ende nur das IPS zuviel. Du kannst z.B. mit Kinsky (von Linn; ein prima Windows UPNP Control Point) prüfen,was am Device angekommen ist. Der Port vom Device stimmt auch ? (Sony hat 8080, die anderen kenne ich nicht ad hoc). Ich benutze die Sony SA NS 310 und 410.

habe: Server1.jpgServer2.jpg

also: als Verzeichnis unter Modul Webserver bei mir Netzerk erstellt und greife nur über 192.168.178.128:8080 direkt darauf zu

Beim Zugriff auf das Unterverzeichnis Ansagen entfällt der Pfad davor. Nur als Vermutung: Probiere es also mal mit
$file = „http://192.168.201.100:86/Ansagen/XXX.mp3“;

Ansonsten probier mal unter Kinsky die Verschlüsselung eines Musikfiles von Twonky, welches Du als Test an den Lautsprecher senden willst in das Script von Post 2 aus http://www.ip-symcon.de/forum/threads/21492-UPNP-functions-Skript-aller-A-V-UPNP-Befehle-Tester-gesucht zu kopieren.
Hier im Beispiel File anklicken -> Details -> URI auswählen (hier: http://192.168.178.22:9000/disk/DLNA-PNMP3-OP01-FLAGS01700000/O0$1$8I17421.mp3)

Keine Panik, ich habe auch lange versucht, da mir immer wieder das blöde Windows und seine Netzwerkfreigaben einn Strich durch die Recnung machten. Deshalb tüftle ich an einer Methode direkt Twonky anzusprechen, um dieses Problem nicht zu haben. Erste Erfolge hier: http://www.ip-symcon.de/forum/threads/21632-Mit-Auswahl-eines-Button-in-HTML-Box-Variable-ändern

Das bekommen wir hin … :slight_smile:

Gruss André

… weitergekommen ?

Hallo DigiHouse,

jein, leider noch nicht vollständig… Teilweise funktioniert es schon (Bereich Control und Commands). Das Absetzen von mp3 funktioniert noch nicht … Ich habe mir erstmal einen weiteren Lautsprecher bestellt. Sobald er eingetroffen ist, geht es weiter…

Grüße

Hallo ZipFam,

das ist ja schon mal etwas. Also funktioniert der Dateizugriff nicht. Empfehlung: nochmal explizit nachsehen, ob Port freigeschaltet und richtiger Pfad. Aber damit habe ich auch lange gekämpft und habe deshalb TWONKY in Angriff genommen, da alles mit der Dateiübergabe steht oder fällt! Und schliesslich will ich ja einen Control Point und nicht alle Dateien vorher in einen IPS-Ordner quasi mundgerecht vorkauen.

Ich bin jetzt mittlerweile mit Twonky auf Du und Du. D.h. ich kann zumindest rudimentär browsen und mir werden die Files bzw. AlbumArt´s übergeben. Die schicke ich dann an den Lautsprecher - momentan testweise an einen NS SA 300.

Das ist zumindest eine Test-Page (per iframe) und rechts meine wesentlichen Hilfsvariablen zur Gegenkontrolle:

Du hast auch Twonky und einen NS SA 310 ? Das wäre die selbe Konfiguration !

Also wenn Interesse, dann kann ich das mal posten und wir können daran weiterentwickeln. Vielleicht interessieren sich auch noch ein paar andere Leute.
Als proof of concept steht es zumindest ! Die Methode selbst funktioniert über die ID´s und ParentID´s - ist also letztlich universell.

Bin auch dabei, den Asset-UPNP (für Audio ist der besser, da auch Radio mit Local Stations) zu integrieren. Ist leider nicht ganz universell einsetzbar ohne Handarbeit, da die Content Directory im Header der Posts sehr unterschiedlich strukturiert sind.

Vielleicht hat jemand ja auch eine Idee, wie man sozusagen ein Ping absetzen kann, welches mir eine HTTP-Post zurückgibt, was so alles ansprechbar wäre im Netzwerk ? Bin für jeden Hinweis dankbar.

Viele Grüsse

André

Hallo André,

sieht ja schon etwas sehr gut aus, was Du da entwickelt hast… Ja, ich/wir haben die gleiche Konfiguration - auch ich verwende Twonky und den Sony Lautsprecher 310 (der 2. Lautsprecher ist bestellt und sollte bald eintreffen.

Auch ich hätte gerne so einen Control-Punkt und würde Dich gerne unterstützen. Du bist jedoch viel weiter beim Programmieren als ich. Wenn ich Dir trotzdem helfen kann - gerne!

Du kannst mir gerne auch die letzten Entwicklungsschritte zu senden, ich würde mich freuen.

Grüße

Sascha

Hallo ZipFam

Hier zumindest der aktuelle Stand. Es ist zum Testen ein iFrame mit der Browse.html (Buttons zum browsen) links und die Variablen aus IPS zur Kontrolle rechts.

Mein Browse-Folder unter Webfront/user:

in_Webfront_user_entpacken.zip (50.5 KB)

Wichtig:

unter UPNP_Play_WF.php anzupassende IP/Port des Device

z.B.
$address = „192.168.178.151“;
$port = „8080“;

unter UPNP_Browse_WF.php anzupassende IP/Port des Server

z.B.
$addressServ = „192.168.178.22“; //Twonky/VAIO
$portServ = „9000“;

Und mein tree “Browse” als Project Exporter – Script. Einfach als neues Script anlegen und starten – falls Kollisionen von ID´s entsprechend anpassen ! Das erspart Dir zumindest die ganze Tipparbeit :slight_smile:

tree_Browse_Install_script.zip (16.2 KB)

Nicht zu vergessen und in IP-Symcon/script zu kopieren:

UPNP_Browse_Functions.ips.zip (2.3 KB)
UPNP_Functions_V1.9.ips.zip (5.13 KB)

Falls es nicht startet einmal auf Root gehen --> hier wird ID 0 gesetzt, sozusagen als Ausgangspunkt.

Es müsste etwa so aussehen:


to do:

  • sinnvolle Vor- und Rückwärts Option (eventuell als Tree der im Kopf dargestellt wird und die einzelnen Unterebenen anzeigt)
  • scrollen (bis jetzt aktualisiert der iFrame zu oft und wird so immer wieder an Position 1 angezeigt)
  • Optik - ist sicher Geschmackssache - soll mal selbst als iFrame in ein iFrame :slight_smile:
  • Auswahl: ich suche eine Möglichkeit Buttons zu selektieren und in eine Playlist zu übernehmen (sozusagen Auswahlliste (form > Option) für Input Button´s --> gibt es das ?)
  • Fortschrittsbalken
  • die Infos in den iFrame integrieren (Album, Artist, etc.)
  • Albumart integrieren
  • Suche nach verfügbaren Servern (im Moment per Hand auszulesende Adresse, Port, Header mit Content Browse Directory) --> ein Discovery Tool eben :wink:
  • alles, was sonst noch sinnvoll ist

Stelle mir das in etwa so vor, nur das Browse iFrame kommt noch hinein und die Aufteilung wird anders:

Ich hoffe, dass ich nichts vergessen habe (es ist schon spät).

Viele Grüsse

André

Hallo Andre,

leider trete ich immer noch auf der gleichen Stelle. Nachdem hier bei uns die Sommerferien zu Ende gegangen sind, wollte ich mich wieder mit vollem Elan an die Multimedia-Steuerung wagen.

Wie gesagt, besitzen wir glücklicherweise die vergleichbare Konstellation bzgl. Hardware/Software. Die Übernahme aus Twonky wäre ideal. Ich habe Schritt für Schritt Deine Anweisungen befolgt, weil ohne Erfolg. Nachfolgend habe ich ein paar Punkte aufgelistet, die meiner Meinung nach bei meiner Installation schiefgelaufen sein könnten bzw. sind.

bild1.jpg


Weiterhin ist mmir aufgefallen:

  • Script 28292.ips.php wurde nicht erzeugt
  • in Script upnp_Browsen.php wurde die IP-Adresse nicht übernommen
  • in Script Browse_send.ips.php wurde die IP-Adresse nicht übernommen

Ich glaube, ich habe schon zu Beginn einen Deckfehler gemacht… Vielleicht kannst Du mir ja weiterhelfen.

DANKE

Sascha

Hallo Andre,

mit dem Iframe habe ich glaube ich hinbekommen - siehe Bild

Leider gibt es immer noch keine Interaktionen, wenn ich auf Root klicke… Muss ich irgendein Aktionsskript hinterlegen?

Der Verweis im Skript upnp_browsen.ips.php auf das Skript 28292.ips.php funktioniert leider nicht, da das Skript nicht angelegt wurde…

Grüße

Sascha

Hallo Sascha,

mach mal an der Stelle noch nicht weiter. Ich habe in den letzten Wochen viel gegrübelt und komme der Lösung näher.

So habe ich jetzt endlich eine Methode einen SSDP-Request ins Netzwerk zu senden und erhalte alle Server und Renderer als Antwort, deren Spezifika (vorallem die Control-URL) ich weiter verarbeiten kann !!! So habe ich die Möglichkeit die Antworten der Devices (XML) auszulesen und die leidige händische Anpassung von Steuerungs-URL´s, IP´s und Port´s abzuschaffen :smiley:

Den aktuellen Stand kann ich gern in den nächsten Tagen mal posten. Im Moment hänge ich an der Auswertung des Windows Media Player, da der anders retourniert, sowie an der Übermittlung der Metadaten, da einige Renderer diese offenbar benötigen (mein LG-Fernseher wird erkannt hängt sich aber ohne diese auf).

Ich hoffe, dass ich das sinnvoll übermitteln kann. Die Funktionsscripte habe ich auch nochmal grundlegend überarbeitet, damit andere Hersteller angesprochen werden können.

Einen Screenshot als Vorgeschmack habe ich erst mal beigefügt. Zur Erklärung:

Im Moment funktionieren:

Server (links erste Zeile):

  • Twonky
  • Asset UPNP
  • Sony Media Library

Renderer (links zweite Zeile):

  • alle meine Sony Devices

Browse-Verlauf (links dritte Zeile)

Browse-Dateien (links vierte Zeile)

Rechts sind wesentliche Daten und das Albumart zum Testen sichtbar geschaltet

Viele Grüße

André

Hallo Andre,

sieht ja richtig gut aus - da wartet man wirklich gerne …:D:D

Melde Dich bitte, wenn ich irgendwie helfen kann.

Grüße

Sascha

Hallo Sascha,

siehe hier:

Hoffentlich klappt es !

Viele Grüße

André