98_DLNARenderer.pm (UPnP) (zuvor 98_DLNAClient.pm)

Begonnen von dominik, 04 August 2015, 20:23:38

Vorheriges Thema - Nächstes Thema

vw80

#225
Hallo hier der mitschnitt - hoffe es ist das richtige.

AV VSX-527
    NOTIFY * HTTP/1.1\r\n
    HOST: 239.255.255.250:1900\r\n
    CACHE-CONTROL: max-age=1800\r\n
    LOCATION: http://192.168.1.109:8080/description.xml\r\n
    NT: uuid:5F9EC1B3-ED59-79BF-4530-XXXXXXXXXXXX\r\n
    NTS: ssdp:alive\r\n
    SERVER: KnOS/3.2 UPnP/1.0 DMP/3.5\r\n
    USN: uuid:5F9EC1B3-ED59-79BF-4530-XXXXXXXXXXXX\r\n
    \r\n
    [Full request URI: http://239.255.255.250:1900*]

SIRD14A2
    NOTIFY * HTTP/1.1\r\n
    HOST: 239.255.255.250:1900\r\n
    CACHE-CONTROL: max-age=1800\r\n
    LOCATION: http://192.168.1.105:8080/dd.xml\r\n
    NT: uuid:3dcc7100-f76c-11dd-87af-XXXXXXXXXXXX\r\n
    NTS: ssdp:alive\r\n
    SERVER: POSIX, UPnP/1.0, Intel MicroStack/1.0.2777\r\n
    USN: uuid:3dcc7100-f76c-11dd-87af-XXXXXXXXXXXX\r\n
    \r\n
    [Full request URI: http://239.255.255.250:1900*]


Gruß Heiko

Norberto


Hallo Dominik,

Zu meinem vorletzten Post: Die genannte IP ist mein PC. Was kann ich tun um das Problem näher einzukreisen?

Zitat2016.04.04 21:40:00 1: DLNARenderer: XML parsing error: File does not exist: NOT_IMPLEMENTED at ./FHEM/98_DLNARenderer.pm line 265.

2016.04.04 21:40:08 1: PERL WARNING: 400-URL-Absolute-Error! Location: "192.168.86.35:57205", Content: "400 URL must be absolute
" at ./FHEM/98_DLNARenderer.pm line 117.
2016.04.04 21:40:08 1: PERL WARNING: Loading device description failed with error: 400 URL must be absolute at ./FHEM/98_DLNARenderer.pm line 117.
2016.04.04 21:42:10 1: PERL WARNING: Loading device description failed with error: 401 Unauthorised at ./FHEM/98_DLNARenderer.pm line 117.

Gruß, Norbert


Zitat von: Norberto am 04 April 2016, 22:48:00
Guten Abend Dominik,

Habe gerade mal Zeit gefunden Deine neue Beta zu testen.

Funktionierte auf Anhieb und die Readings sind klasse.

Folgendes finde ich in meinem log-file:

Hast Du ein paar Tips wie ich das am effektivsten debuggen kann?

Gruß, Norbert

dominik

#227
@Heiko, ich vermute der Fehler dürfte echt daraus resultieren, dass LOCATION groß geschrieben ist. Kannst du zum Testen mal in FHEM/UPnP/ControlPoint.pm in Zeile 264  'Location' durch 'LOCATION' ersetzen und nochmals testen?

@Norbert, der Grund für den Fehler dürfte auch "Location" sein. Wenn ich bei mir LoCaTiOn in der ControlPoint.pm eintrage, erhalte ich ausschließlich solche Fehlermeldungen.

Werde mal nachschauen wer für das Modul verantwortlich ist damit das korrigiert wird.

//Edit: Obiges ist nicht korrekt, wurde durch einen Tippfehler ausgelöst, die Schreibweise spielt also keine Rolle!
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

@Heiko, probier bitte mal folgendes Script
use UPnP::ControlPoint;

my %bla = ();
my $cp = UPnP::ControlPoint->new(SearchPort => 0, SubscriptionPort => 0, MaxWait => 30, UsedOnlyIP => \%bla, IgnoreIP => \%bla);
$cp->searchByType('urn:schemas-upnp-org:device:MediaRenderer:1', \&Discover_Callback);
$cp->handle();

sub Discover_Callback($$$) {
  my ($search, $device, $action) = @_;

  print "ACTION: $action\n";
  print "DEVICE: ".$device->friendlyName()."\n";
}


Script im FHEM Verzeichnis mit "perl test.pl" ausführen. Nach paar Sekunden sollten nach und nach die Devices erscheinen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

vw80

Zitat von: dominik am 06 April 2016, 22:31:54
@Heiko, probier bitte mal folgendes Script
use UPnP::ControlPoint;

my %bla = ();
my $cp = UPnP::ControlPoint->new(SearchPort => 0, SubscriptionPort => 0, MaxWait => 30, UsedOnlyIP => \%bla, IgnoreIP => \%bla);
$cp->searchByType('urn:schemas-upnp-org:device:MediaRenderer:1', \&Discover_Callback);
$cp->handle();

sub Discover_Callback($$$) {
  my ($search, $device, $action) = @_;

  print "ACTION: $action\n";
  print "DEVICE: ".$device->friendlyName()."\n";
}


Script im FHEM Verzeichnis mit "perl test.pl" ausführen. Nach paar Sekunden sollten nach und nach die Devices erscheinen.

Hallo Dominik,

da kommt bei mir beim Starten des Script folgende Fehlermeldung:


Can't locate UPnP/ControlPoint.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at test.pl line                              1.
BEGIN failed--compilation aborted at test.pl line 1.


Gruß Heiko

dominik

@Heiko, sorry, das Script muss nach FHEM/lib nicht FHEM/, da dort UPnP liegt.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

vw80

@Dominik, ja das hatte ich schon dort erstellt. Wird mit dem Script dann wieder die UPNP von Perl genutzt?
Gruß Heiko

Norberto

Hallo Dominik,

Habe Deine Testroutine mal ausgeführt.

Der Fehler kommt gefühlt alle 2 Sekunden.


root@cubietruck:/opt/fhem/FHEM/lib# perl testdlna.pl
ACTION: deviceAdded
DEVICE: [TV]UE50ES5700
400-URL-Absolute-Error! Location: "192.168.86.35:62033", Content: "400 URL must be absolute
" at testdlna.pl line 6.
Loading device description failed with error: 400 URL must be absolute at testdlna.pl line 6.
400-URL-Absolute-Error! Location: "192.168.86.35:62033", Content: "400 URL must be absolute
" at testdlna.pl line 6.
Loading device description failed with error: 400 URL must be absolute at testdlna.pl line 6.
ACTION: deviceAdded
DEVICE: MunetK2
ACTION: deviceAdded
DEVICE: MunetS1
400-URL-Absolute-Error! Location: "192.168.86.35:62033", Content: "400 URL must be absolute
" at testdlna.pl line 6.
Loading device description failed with error: 400 URL must be absolute at testdlna.pl line 6.
ACTION: deviceAdded
DEVICE: MunetWZ
ACTION: deviceAdded
DEVICE: MunetK1
400-URL-Absolute-Error! Location: "192.168.86.35:62033", Content: "400 URL must be absolute
" at testdlna.pl line 6.
Loading device description failed with error: 400 URL must be absolute at testdlna.pl line 6.
400-URL-Absolute-Error! Location: "192.168.86.35:62033", Content: "400 URL must be absolute
" at testdlna.pl line 6.
Loading device description failed with error: 400 URL must be absolute at testdlna.pl line 6.
400-URL-Absolute-Error! Location: "192.168.86.35:62033", Content: "400 URL must be absolute
" at testdlna.pl line 6.
Loading device description failed with error: 400 URL must be absolute at testdlna.pl line 6.
ACTION: deviceAdded
DEVICE: MunetS2
400-URL-Absolute-Error! Location: "192.168.86.35:62033", Content: "400 URL must be absolute
" at testdlna.pl line 6.
Loading device description failed with error: 400 URL must be absolute at testdlna.pl line 6.
400-URL-Absolute-Error! Location: "192.168.86.35:62033", Content: "400 URL must be absolute
" at testdlna.pl line 6.
Loading device description failed with error: 400 URL must be absolute at testdlna.pl line 6.
400-URL-Absolute-Error! Location: "192.168.86.35:62033", Content: "400 URL must be absolute
" at testdlna.pl line 6.
Loading device description failed with error: 400 URL must be absolute at testdlna.pl line 6.
400-URL-Absolute-Error! Location: "192.168.86.35:62033", Content: "400 URL must be absolute
" at testdlna.pl line 6.
Loading device description failed with error: 400 URL must be absolute at testdlna.pl line 6.
400-URL-Absolute-Error! Location: "192.168.86.35:62033", Content: "400 URL must be absolute
" at testdlna.pl line 6.
Loading device description failed with error: 400 URL must be absolute at testdlna.pl line 6.
400-URL-Absolute-Error! Location: "192.168.86.35:62033", Content: "400 URL must be absolute
" at testdlna.pl line 6.
Loading device description failed with error: 400 URL must be absolute at testdlna.pl line 6.
400-URL-Absolute-Error! Location: "192.168.86.35:62033", Content: "400 URL must be absolute
" at testdlna.pl line 6.
Loading device description failed with error: 400 URL must be absolute at testdlna.pl line 6.
^C
root@cubietruck:/opt/fhem/FHEM/lib#


Die Adresse x.x.x.35 ist mein Notebook (Win7).

Was kann/soll ich als nächstes machen?

Gruß, Norbert

dominik

Hi Norbert,

ich habe das mal bei mir genauer analysiert da ich auch die Fehlermeldung von meinem PC bekam. In meinem Fall war es die Autobackup Software von Samsung für meine Kamera. Die Software war nicht gestartet, aber der Dienst meldete immer wieder das er verfügbar ist. Hab die Software nun gelöscht und die Fehlermeldung ist damit verschwunden.
Die Fehlermeldung selbst kann man eigentlich ignorieren. Da muss mal jemand im ControlPoint.pm Modul die Fehlermeldung besser handhaben und kein "carp" nutzen, so kann ich diese nämlich nichtmal unterdrücken.

@vw80, läuft es bei dir schon? Wenn nicht, dann bitte wie Norbert das Testscript aus FHEM/lib heraus starten (nicht nur FHEM/).

Gruß,
Dominik
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

vw80

Hallo Dominik, bei mir läuft es. Irgendwie wird der AV als Renderer immer schlecht erkannt vom Raspi(andere Funktionieren aber wie Handy oder Windows). Wenn er nicht mehr erkannt wird muss ich mein Router neu starten dann funktioniert es wieder bis ich aus irgendwelchen Gründen mein Raspi neu starten musste dann erkennt dein Modul ihn nicht mehr. Gruß Heiko

vw80

Versuche vergebens den Volumen Slider in einen Floorplan zu bekommen. Kann mir jemand helfen was ich dazu eintragen muss? Mit
attr DLNA webCmd volume bekomme ich nur die Zahl im Floorplan vom Volume und beim betätigen ein NaN und dann ist Stumm geschalten und 0 wird angezeigt.
Gruß Heiko

Catinor

#236
Hallo (und danke erst mal für FHEM und dieses Modul)

ich hab heute wieder mal etwas mit FHEM und UPnP gespielt. Das, weil einige meiner Renderer nicht mehr erkannt wurden. Updaten auf die letzte Version, die die FHEM-Libs für UPnP nutzt, hat geholfen.

Nun aber: nach einem Neustart von FHEM stockt es reproduzierbar nach einigen Minuten, solange "define dlnarenders DLNARenderer" konfiguriert ist. Nehm ich das raus und lass die konfigurierten Renderer drin, dann läuft alles rund. Kein Stocken, Funktionen ok.

Stocken heisst: Events werden nur alle 2 Minuten verarbeitet, und das Web-UI ebenfalls. Ich hab den Eindruck als ob der FHEM-Prozess auf einen Timeout wartet, um dann alle aufgelaufenen Anfragen in einem Rutsch abzuarbeiten.

Gruss
Bengt

Edit: so ganz läuft es noch nicht sauber. Die Stereoanlage (SONY CMT-SBT300W) streamt nun seit einer Stunde, steht aber auf "offline". Mit der erwähnten Konfig-Zeile wird zwar der Zustand wieder erfasst, die Hänger sind aber wieder da.

MichaelT

Hallo Zusammen,

hat ein "Wissender" einen Tip für mich?

Habe folgendes Problem:
pi@fhem1 /opt/fhem/log $ sudo apt-get install libxml-parser-lite-perl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
E: Paket libxml-parser-lite-perl kann nicht gefunden werden.
pi@fhem1 /opt/fhem/log $


Habe auch vorher schon

sudo apt-get update
sudo apt-get upgrade

ausgeführt.

Motivation meiner Nachfrage ist:
Da ich ohne libxml-parser-light-perl den Renderer nicht laden konnte, bin ich den Lösungsweg aus https://forum.fhem.de/index.php/topic,38917.0.html gegangen.

Jetzt habe ich den Zustand, das ich den Renderer zwar laden kann, er auch meine Devices (PMN300) findet -  aber wenn ich dann z.b. nur die Lautstärke einstelle crashed fhem ohne Meldung weg.
Der Renderer zeigt auch z.B. einen Stream, der durch eine andere App auf dem peak abgespielt wird, korrekt an.


Gruß
Michael
Großes Mischmasch aus HM, Philips, WLAN und Eigenprojekte.
ABER alles mit FHEM.

Catinor

Poste mal den Inhalt von


/etc/apt/sources.list


da sollte etwa so was drin stehen (für Raspberry und Debian Jessie, mit # auskommentierte Zeilen hab ich weggelassen):


deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi
deb https://debian.fhem.de/stable ./


MichaelT

Hallo Catinor,
sieht bei mir so aus.
kann ich einfach auf jessie wechseln?

@fhem1 /etc/apt $ cat sources.list
deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://mirror.ox.ac.uk/sites/archive.raspbian.org/archive/raspbian/ wheezy main contrib non-free rpi


Großes Mischmasch aus HM, Philips, WLAN und Eigenprojekte.
ABER alles mit FHEM.