UPNP/DLNA for IPS: new version

Hi Joachim,

mal als Silent-Update zum Testen:

IPS_Multimedia_2014-12-28.zip (686 KB)

Vorher die letzte Installation sichern, da nicht kompatibel zu Vor-Versionen (veränderte Verzeichnisse und Routinen etc.) !

Ich habe auch keine Testinstallation gemacht ! (Kann also noch etwas fehlen …)

Deine Punkte waren in den letzten Wochen größtenteils schon dazu gekommen.

  • Device-Abfrage beim Umschalten
  • Device bzw. Server werden markiert
  • Volume-Begrenzer (unter System siehe Screenshot, damit einem nicht zufällig die Ohren platzen)
  • bei Playlist-Ende wird diese von vorn erneut wiedergegeben
  • Performance: der primäre Speicher für Browse/Discovery/Playlists liegt jetzt unter /media/Multimedia
  • Playlists-Erstellungen sollten jetzt durchgängig funktionieren (lag an UTF-8 Dekodierungen)
  • funktionierender PartyMode für Sony (das war knifflig !)
  • PartyMode abschaltbar (heute eingefügt :slight_smile: )
  • viele Kleinigkeiten …

Gruß

André

Hallo Andre,

werde es die Tage mal probieren…:wink:

Das sicherste wäre doch im IPS den kompletten Ordner zu löschen, oder?

Joachim

Yes …
Vieleicht vorher ein Backup …

Gesendet von meinem GT-N7000 mit Tapatalk

Hallo Andre,

hier mal eine erste Rückmeldung:

  1. Das Installations-Protokoll habe ich mal als txt-Datei rangehängt

  2. Screenshots der neuen Installation

  • Die Kästchen bei Device/Server scheinen sich selbstständig zu vermehren…
  • Das neue Kästchen gibt eine Fehlermeldung…
  • Laufzeitanzeige hat eine Fehlfunktion…

Auf jeden Fall: Tolle Funktionerweiterung für IPS!

Joachim

Installations-Protokoll.txt (106 KB)

Naja. Ist erstmal nur zum Testen . Eben noch nicht freigegeben :wink:
Greift wahrscheinlich noch auf ein oder zwei versteckte Dateien zu.
Aber genau solche Rückmeldungen brauche ich.

Meinst Du mit „tolle Funktioserweiterung …“ die sich vermehrenden Kästchen, oder das Projekt :slight_smile: :slight_smile: :slight_smile:

Ich arbeite daran…

Gruß André

Gesendet von meinem GT-N7000 mit Tapatalk

… habe gerade in das Installationsprotokoll gesehen.

die Zeilen:


Warning:  rename(29443.ips.php,UPNP_SetAlbumArtInfo.ips.php  ):  in D:\IP-Symcon\scripts\18547.ips.php on line 686

Warning:  Datei D:\IP-Symcon\scripts\UPNP_SetAlbumArtInfo.ips.php   existiert nicht in D:\IP-Symcon\scripts\18547.ips.php on line 687

Warning:  rename(23302.ips.php,UPNP_Switch_Anzeige.ips.php ):  in D:\IP-Symcon\scripts\18547.ips.php on line 686

Warning:  Datei D:\IP-Symcon\scripts\UPNP_Switch_Anzeige.ips.php  existiert nicht in D:\IP-Symcon\scripts\18547.ips.php on line 687

Warning:  rename(39438.ips.php,UPNP_SSDPTrigger.ips.php  ):  in D:\IP-Symcon\scripts\18547.ips.php on line 686

Warning:  Datei D:\IP-Symcon\scripts\UPNP_SSDPTrigger.ips.php   existiert nicht in D:\IP-Symcon\scripts\18547.ips.php on line 687

sind mir unklar.

@ Raketenschnecke: hast Du vielleicht einen Rat ?

Gruß André

Spontane Idee:
die benamsten Dateien existieren schon/noch im Zielsystem. Der Installer legt beim Installationsprozess zunächst ein Script mit einer IPS-ID an und benamst es dann um. Dabei stellt das Betriebssystem fest, dass ein (anderes) File mit diesem Namen schon existiert und blockiert das Umbenennen. Das ist einer der Gründe, warum ich seit längerer Zeit davon abgegangen bin, Scripte zu benamsen.

Lösung: die bewussten Scripte vor der Installation manuell löschen.

Hi Raketenschnecke,

ich wußte doch, dass Du mitliest :slight_smile:

Mit benannten Scripts hat sicher Vor- und Nachteile. Klarer Vorteil für mich ist jedoch, dass ich die Scripte wiederfinde und das vorallem auch in Backups !

Gelöschte Scripts werden bei mir in scripts/deleted verschoben. Ich habe aber auch mal eine Installation gehabt, bei der dies nicht geschah.
Ergo: alle Scripte mit UPNP… am Anfang löschen. Das muss ich morgen mal testen.

Gruß André

Beim Löschen der Scripte über die IPS-Konsole klappt das nicht immer (aber nur, wenn die Scripte benamst sind). Bei manchen IPS-Installationen geht das grundsätzlich nicht, bei manchen nur sporadisch, bei anderen wiederum immer…also sicher schwer einzugrenzen. Ich hatte das schon Mitte 2012 an paresy gemeldet, mich drauf eingestellt und das Thema nicht weiter verfolgt (weil ich das Problem umgehe).

Eine Überschreib-Logik hab ich in den Project Exporter an der Stelle bewusst nicht eingebaut: es kann sich durchaus um ein Script handeln, was nur zufällig so heißt, aber in ganz anderen Projekten benötigt wird. So würde bei der Installation ein Fremdprojekt unbemerkt beschädigt werden.

Mit anderen Worten: hier muss man die Entscheidung (leider) auf das Hirn der Anwender auslagern.

OK. Die mal so, mal so IPS-Löschaktivitäten bestätigen meine Vermutung.

Werde also weiter benamsen, so dass ich alle Scripte mit z.B. UPNP… ,Shutter… ,Cam… oder oder oder sicher löschen oder verschieben kann. Das ist lästig braucht aber nur Disziplin. Desweiteren vergebe ich bei der Fülle von Scripten in diesem Projekt gleich Hinweise auf die Funktion. Beim Includen ist es für mich unverzichtbar.

Deine Argumente haben aber zugegeben etwas für sich.

Gruß André

Ich will Dich nicht nötigen, mach so, wie Du am besten zurecht kommst :wink:
Jeder muss seine eigene Linie selbst finden, am besten durch selbst gemachte Erfahrungen.

Hallo Gemeinde,

habe lange nichts von mir hören lassen, bin aber diese Woche über etwas gestolpert, was Euch auch interessieren könnte.

Das Programm heißt Stream What You Hear und gibt Computer-Audio auf einem Netzwerk-Lautsprecher aus. Das ist äußerst hilfreich, da ich so auch YouTube-Playlists ausgeben kann. Vielleicht kennt es ja auch Jemand …

StreamWhatYouHear.com

Bin gerade am Einbinden ins System. Erster Screenshot hier:

Viele Grüße

André

Hallo Andre,

ich bin gespannt auf die weiteren Entwicklungen zu diesem Thema!:wink:

Joachim

… OK

Interessant wäre ja, wer das überhaupt nutzt. Bug Reports, Feature-ideen u.s.w.

Ich selbst nutze es beinahe täglich.

Gruß André

bei mir stimmt irgendwas nicht… einer der ersten versionen hat halbwegs funktioniert, also ich konnte dinge suchen und auch abspielen aber playlist ging leider garnicht.

Nun habe ich die aktuellste version mal installiert… zuvor natürlich alles gelöscht… und stehe nun vor dem Problem, dass die SSDP Suche nicht so ganz funktioniert…

UPNPSSDPDEVICE.txt (9.49 KB)upnpssdp2ping.txt (29.5 KB)upnpssdp1request.txt (88.3 KB)

Kann mir jemand helfen oder helfe ich gar jemandem hiermit weiter?

Also hier ist einer.

Aber in deiner letzten Version fehlt die UPNP_Initialize und somit funkt das nicht?

Hallo Gemeinde,

@ wibo050447

danke für die Rückkopplung. Eine Initialisierung sollte nicht notwendig sein. Das System soll out of the box funktionieren. Essentiell ist nur als ersten Schritt einen SSDP-Request durchzuführen, damit die Arrays für die Devices und Server erstellt werden (das war letztlich in der Initialisierung).

@ kallii

wenn eine ältere Version bei Dir funktionierte, warum nimmst Du die dann nicht ? Kannst Dich ja auch selbst daran versuchen … :wink: Die letzte Version war ja auch für Portierung ungetestet (wie geschrieben).

Dennoch habe ich mal den heutigen Stand zusammengepackt:

Multimedia_2015-04-22.zip (759 KB)

Vorher den Baum Multimedia löschen und ggf. Playlists aus IP-Symcon/media/Multimedia sichern. Habe die Installation testweise erfolgreich auf mein Surface gebeamt. Nur den alten Item musste ich im WFC löschen.

Wer helfen will, kann sich ja mal damit befassen:

Ein (zeitweises) Problem sind nach wie vor die SSDP M-Search Abfragen. Ich habe da bisher keine stabile Abfrage zustande bekommen. Meist funktioniert diese beim ersten Aufruf. Bei nachfolgenden Aufrufen in kurzem Abstand bekomme ich jedoch nur lokale IP´s (127.0.0.1) herein. Ein zurück wechseln auf einen UDP-Socket und Abfrage darüber schliesst mir jedoch immer die WLAN-Geräte aus. Ich habe keine Ahnung woran weder das eine noch das andere liegen könnte, nehme aber an, dass es mit Windows selbst (svchost) in Konflikt kommt.
Ich habe auch gesucht, ob Windows selbst eine Datei aller Geräte, die es durch die Netzwerksuche ermittelt, anlegt. Gefunden habe ich bisher noch nichts. Dennoch wäre es geschickt, wenn man so eine Datei einfach auslesen könnte.

In der UPNP_SSDP_Request.ips.php (unter Multimedia/Core/SSDP) wird eine Funktion zum SSDP M-Search (function msearch($ST) - diese findet man in UPNP_Discovery_Functions.ips.php unter Multimedia/Core) aufgerufen:

function mSearch($ST)
	{
	error_reporting(E_ALL | E_STRICT);

	//Variablen------------------------------------------------------------------
	$USER_AGENT = 'WINDOWS, UPnP/1.0, Intel MicroStack/1.0.1497';
	//$USER_AGENT = 'Windows/6.0 UDAP/2.0 IP-Symcon DLNA';
	$MULTICASTIP = '239.255.255.250';
	$MX = '3';
	$MAN = 'ssdp:discover';
	$sockTimeout = '30';

	//Message--------------------------------------------------------------------
	$msg  = 'M-SEARCH * HTTP/1.1' . "
";
	$msg .= 'HOST: '.$MULTICASTIP.':1900' . "
";
	$msg .= 'MAN: "'. $MAN .'"' . "
";
	$msg .= 'MX: '. $MX ."
";
	$msg .= 'ST: ' . $ST ."
";
	$msg .= 'USER-AGENT: '. $USER_AGENT . "
";
	$msg .= '' ."
";

	//MULTICAST MESSAGE absetzen-------------------------------------------------
	$sock = socket_create( AF_INET, SOCK_DGRAM, getprotobyname('udp') );
 	$opt_ret = socket_set_option( $sock, SOL_SOCKET, SO_REUSEADDR, 1 );
	$send_ret = socket_sendto( $sock, $msg, strlen( $msg ), 0, $MULTICASTIP, 1900);

	//TIMEOUT setzen-------------------------------------------------------------
	socket_set_option( $sock, SOL_SOCKET, SO_RCVTIMEO, array( 'sec'=>$sockTimeout, 'usec'=>'0' ) );

	//RESPONSE empfangen und bearbeiten (parseMSearchResponse())-----------------
	$response = array();
	do
	{
		unset( $buf );
		@socket_recv( $sock, $buf, 4096, MSG_WAITALL );
		if( !is_null($buf) ) $response[] = parseMSearchResponse( $buf );
	}

	while( !is_null($buf) );

	//SOCKET schliessen----------------------------------------------------------
	socket_close( $sock );

	return $response;
	print_r ($response);
}

Diese ist sicher nicht ganz perfekt. Vielleicht hat ja jemand eine Idee diese zu verbessern. Diese Funktion sollte jedenfalls ein Array mit allen erreichten Geräten zurückgeben wie z.B.:

Array
(
    [0] => Array
        (
            [HTTP] => HTTP/1.1 200 OK
            [ST] => upnp:rootdevice
            [CACHE-CONTROL] => max-age=1800
            [USN] => uuid:fb26bf43-353d-493c-933e-47cbdbcf1ed6::upnp:rootdevice
            [LOCATION] => http://192.168.178.64:20000/
            [SERVER] => Windows NT/5.0, UPnP/1.0
        )

    [1] => Array
        (
            [HTTP] => HTTP/1.1 200 OK
            [ST] => uuid:fb26bf43-353d-493c-933e-47cbdbcf1ed6
            [CACHE-CONTROL] => max-age=1800
            [USN] => uuid:fb26bf43-353d-493c-933e-47cbdbcf1ed6
            [LOCATION] => http://192.168.178.64:20000/
            [SERVER] => Windows NT/5.0, UPnP/1.0
        )

    [2] => Array
        (
            [HTTP] => HTTP/1.1 200 OK
            [ST] => urn:schemas-upnp-org:device:MediaServer:1
            [CACHE-CONTROL] => max-age=1800
            [USN] => uuid:fb26bf43-353d-493c-933e-47cbdbcf1ed6::urn:schemas-upnp-org:device:MediaServer:1
            [LOCATION] => http://192.168.178.64:20000/
            [SERVER] => Windows NT/5.0, UPnP/1.0
        )

    [3] => Array
        (
            [HTTP] => HTTP/1.1 200 OK
            [ST] => urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1
            [CACHE-CONTROL] => max-age=1800
            [USN] => uuid:fb26bf43-353d-493c-933e-47cbdbcf1ed6::urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1
            [LOCATION] => http://192.168.178.64:20000/
            [SERVER] => Windows NT/5.0, UPnP/1.0
        )u.s.w

Gefiltert wird dann nach den bereitgestellten Services der Devices und Server später. Also nicht wundern, wenn hier zahlreiche Einträge auftauchen (wie bei mir gerade eben 88). Ich setze einen SSDP:all ab -> Die Geräte haben mehrere Services. Das könnte man auch spezifischer machen, wollte ich aber nicht.

Um Playlists habe ich mich in letzter Zeit nicht gekümmert…:wink:

Hinzu gekommen sind in letzter Zeit Veränderungen der Device und Server - Verarbeitung, ein kompletter Reset, etc.

Viele Grüße

André

Hallo Andrè,

ich habe gerade mal die neue Version installiert, klappte auch wunderbar.

Habe jetzt im Augenblick nur das Problem das bei der Cover Anzeige irgendwas falsch ist, siehe Screenshot.

UPNP.jpg

Hast Du eine Idee?

… Ja. Nach Neustart hatte ich das selbe. Auch die Splitpanes waren auf 50% statt 34% gesetzt (the ghost in the machine… ;-))
Verknüpfe im WFC einfach die ID zum Albumart (ich glaube unter Browser Variablen) neu, dann hat er sie. Habe den Rechner gerade nicht im Zugriff, deshalb geht es gerade nicht genauer…

Gruß André

Sorry für den Post oben - blöde Rechtschreibkorrektur :-S
Ich hoffe man kann es lesen…