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

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

Vorheriges Thema - Nächstes Thema

dominik

Hallo zusammen,

habe gerade ein Update eingespielt. Ab morgen sollten die Readings dann wieder aktualisiert werden. Sorry für den Bug.

@Fhemotto, das wird noch etwas dauern, bis ich da den Fehler gefunden habe. Der Unterschied sind nämlich die Libraries. Im DLNAClient hatte ich Net::UPnP verwendet und nun verwende ich die FHEM UPnP Library. Bislang habe ich den Bug aber noch nicht finden können

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

Norberto

Hallo Dominik,

Danke für die schnelle Hilfe. Kommst Du in den nächsten Tagen auch dazu mal nach dem blocking in DLNARenderer_updateStereoMode zu schauen?

Grüße, Norbert

dominik

Hi Norbert,

tritt der Fehler nur auf, wenn du auch ein Stereo Paar hast?
Zeitliche Vorhersagen sind mit meiner kleinen Tochter bei mir gerade etwas schwer ;)

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

ralfix

Hallo

ich habe leider ein sporadisch autretendes Performanceproblem mit DLNARederer.

Bei mir wird ein Device "DLNASocket-dlna-54" automatisch erzeugt.
Laut apptime führt die function DLNARenderer_Read mit weitem Abstand meinen Laufzeitverbrauch an.   
Was ist das für ein device? Wenn ich es lösche läuft FHEM wieder flüssig, aber irgendwann kommt das device wieder.

FD 54
NAME DLNASocket-dlna-54
NR  267
PNAME  dlna
PORT  1900
TEMPORARY 1
TYPE DLNARenderer
UDN -1

pi@mein_fhemserver ~ $ sudo netstat -lptu                                                                                                                                                       
Aktive Internetverbindungen (Nur Server)                                                                                                                                                     
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name                                                                                             
tcp        0      0 *:8383                  *:*                     LISTEN      28230/perl                                                                                                   
tcp        0      0 *:7072                  *:*                     LISTEN      28230/perl                                                                                                   
tcp        0      0 *:33091                 *:*                     LISTEN      28230/perl                                                                                                   
tcp        0      0 *:8083                  *:*                     LISTEN      28230/perl                                                                                                   
tcp        0      0 *:8084                  *:*                     LISTEN      28230/perl                                                                                                   
tcp        0      0 *:8085                  *:*                     LISTEN      28230/perl                                                                                                   
tcp        0      0 *:ssh                   *:*                     LISTEN      737/sshd                                                                                                     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      737/sshd                                                                                                     
udp        0      0 *:1900                  *:*                                 28230/perl


Kann ich irgendwie rausbekommen ob und welches UPNP Gerät da nicht antwortet?

Gruß Ralf


Norberto

Hallo Dominik,

zu Deiner letzten Frage:
Zitattritt der Fehler nur auf, wenn du auch ein Stereo Paar hast?

Ich versuche am WE mal etwas zu testen und auch schon etwas zu debuggen.

VG, Norbert

ralfix

Zitat von: ralfix am 03 Mai 2017, 21:48:19
ich habe leider ein sporadisch autretendes Performanceproblem mit DLNARederer.
Fehler gefunden.
Immer wenn ich DLNARenderer auf verbose = 0 setze und FHEM neu starte
kommt im Log eine Fehlermeldung
PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/92_FileLog.pm line 704.
und bald darauf
frisst DLNASocket-dlna-54 wieder Performance.
Verbose geändert - Problem gelöst.  :)

frank

hallo dominik,

dein modul hatte bei mir probleme die ControlPoint.pm unter /opt/fhem/FHEM/lib/UPnP/ zu finden:

2017.05.04 19:15:00.115 0: Attempt to reload UPnP/ControlPoint.pm aborted.
Compilation failed in require at ./FHEM/98_DLNARenderer.pm line 153.
BEGIN failed--compilation aborted at ./FHEM/98_DLNARenderer.pm line 153.


nach der verschiebung des if-blocks in den BEGIN-block am anfang des codes wurde sie erfolgreich gefunden:
#get UPnP::ControlPoint loaded properly
my $gPath = '';
BEGIN {
  $gPath = substr($0, 0, rindex($0, '/'));
  if (lc(substr($0, -7)) eq 'fhem.pl') {
    $gPath = $attr{global}{modpath}.'/FHEM';
  }
}
use lib ($gPath.'/lib', $gPath.'/FHEM/lib', './FHEM/lib', './lib', './FHEM', './', '/usr/local/FHEM/share/fhem/FHEM/lib');

use UPnP::ControlPoint;


bei mir ergibt:
$0 => fhem.pl
substr($0, 0, rindex($0, '/')) => fhem.p


gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

the ratman

hiho,
ich hab ein problem mit folgenden warnings:2017.05.05 18:24:03 1: PERL WARNING: Use of uninitialized value $location in concatenation (.) or string at FHEM/lib/UPnP/ControlPoint.pm line 308.
2017.05.05 18:24:03 1: stacktrace:
2017.05.05 18:24:03 1:     main::__ANON__                      called by FHEM/lib/UPnP/ControlPoint.pm (308)
2017.05.05 18:24:03 1:     UPnP::ControlPoint::_createDevice   called by FHEM/lib/UPnP/ControlPoint.pm (340)
2017.05.05 18:24:03 1:     UPnP::ControlPoint::_getDeviceFromHeaders called by FHEM/lib/UPnP/ControlPoint.pm (463)
2017.05.05 18:24:03 1:     UPnP::ControlPoint::_receiveSSDPEvent called by FHEM/lib/UPnP/ControlPoint.pm (165)
2017.05.05 18:24:03 1:     UPnP::ControlPoint::handleOnce      called by ./FHEM/98_DLNARenderer.pm (243)
2017.05.05 18:24:03 1:     (eval)                              called by ./FHEM/98_DLNARenderer.pm (242)
2017.05.05 18:24:03 1:     main::DLNARenderer_Read             called by fhem.pl (3396)
2017.05.05 18:24:03 1:     main::CallFn                        called by fhem.pl (685)
2017.05.05 18:24:03 1: PERL WARNING: 400-URL-Absolute-Error! Location: "", Content: "400 URL missing
" at ./FHEM/98_DLNARenderer.pm line 243.
2017.05.05 18:24:03 1: stacktrace:
2017.05.05 18:24:03 1:     main::__ANON__                      called by /usr/share/perl/5.20/Carp.pm (168)
2017.05.05 18:24:03 1:     Carp::carp                          called by FHEM/lib/UPnP/ControlPoint.pm (308)
2017.05.05 18:24:03 1:     UPnP::ControlPoint::_createDevice   called by FHEM/lib/UPnP/ControlPoint.pm (340)
2017.05.05 18:24:03 1:     UPnP::ControlPoint::_getDeviceFromHeaders called by FHEM/lib/UPnP/ControlPoint.pm (463)
2017.05.05 18:24:03 1:     UPnP::ControlPoint::_receiveSSDPEvent called by FHEM/lib/UPnP/ControlPoint.pm (165)
2017.05.05 18:24:03 1:     UPnP::ControlPoint::handleOnce      called by ./FHEM/98_DLNARenderer.pm (243)
2017.05.05 18:24:03 1:     (eval)                              called by ./FHEM/98_DLNARenderer.pm (242)
2017.05.05 18:24:03 1:     main::DLNARenderer_Read             called by fhem.pl (3396)
2017.05.05 18:24:03 1:     main::CallFn                        called by fhem.pl (685)
2017.05.05 18:24:03 1: PERL WARNING: Use of uninitialized value $location in concatenation (.) or string at FHEM/lib/UPnP/ControlPoint.pm line 309.
2017.05.05 18:24:03 1: stacktrace:
2017.05.05 18:24:03 1:     main::__ANON__                      called by FHEM/lib/UPnP/ControlPoint.pm (309)
2017.05.05 18:24:03 1:     UPnP::ControlPoint::_createDevice   called by FHEM/lib/UPnP/ControlPoint.pm (340)
2017.05.05 18:24:03 1:     UPnP::ControlPoint::_getDeviceFromHeaders called by FHEM/lib/UPnP/ControlPoint.pm (463)
2017.05.05 18:24:03 1:     UPnP::ControlPoint::_receiveSSDPEvent called by FHEM/lib/UPnP/ControlPoint.pm (165)
2017.05.05 18:24:03 1:     UPnP::ControlPoint::handleOnce      called by ./FHEM/98_DLNARenderer.pm (243)
2017.05.05 18:24:03 1:     (eval)                              called by ./FHEM/98_DLNARenderer.pm (242)
2017.05.05 18:24:03 1:     main::DLNARenderer_Read             called by fhem.pl (3396)
2017.05.05 18:24:03 1:     main::CallFn                        called by fhem.pl (685)
2017.05.05 18:24:03 1: PERL WARNING: Loading device description failed with error: 400 URL missing (Location: ) at ./FHEM/98_DLNARenderer.pm line 243.
2017.05.05 18:24:03 1: stacktrace:
2017.05.05 18:24:03 1:     main::__ANON__                      called by /usr/share/perl/5.20/Carp.pm (168)
2017.05.05 18:24:03 1:     Carp::carp                          called by FHEM/lib/UPnP/ControlPoint.pm (309)
2017.05.05 18:24:03 1:     UPnP::ControlPoint::_createDevice   called by FHEM/lib/UPnP/ControlPoint.pm (340)
2017.05.05 18:24:03 1:     UPnP::ControlPoint::_getDeviceFromHeaders called by FHEM/lib/UPnP/ControlPoint.pm (463)
2017.05.05 18:24:03 1:     UPnP::ControlPoint::_receiveSSDPEvent called by FHEM/lib/UPnP/ControlPoint.pm (165)
2017.05.05 18:24:03 1:     UPnP::ControlPoint::handleOnce      called by ./FHEM/98_DLNARenderer.pm (243)
2017.05.05 18:24:03 1:     (eval)                              called by ./FHEM/98_DLNARenderer.pm (242)
2017.05.05 18:24:03 1:     main::DLNARenderer_Read             called by fhem.pl (3396)
2017.05.05 18:24:03 1:     main::CallFn                        called by fhem.pl (685)

die treten immer dann auf, wenn mein tv läuft. dabei hab ich das ding eig. im dlnarenderer ausgenommen:attr dlnadevices ignoreUDNs uuid:3530f2e6-4284-735d-53f8-6008ac43b77f

mein vorgehen war, dass ich den tivi einmal finden ließ, ihn in ignoreUDNs eingetragen hab und dann das tv-device gelöscht hab.
war das falsch, oder wo könnten die x warnings herkommen?
→do↑p!dnʇs↓shit←

Manul

Ich kriege beim Versuch, einen DLNA-Renderer zu definieren, folgende Fehlermeldung im Log:

2017.05.13 14:40:57 0: Attempt to reload UPnP/ControlPoint.pm aborted.
Compilation failed in require at ./FHEM/98_DLNARenderer.pm line 153.
BEGIN failed--compilation aborted at ./FHEM/98_DLNARenderer.pm line 153.


Zeile 153 ist

use UPnP::ControlPoint;

Ich habe daraufhin noch libnet-upnp-perl installiert, der Fehler bleibt aber gleich.

Das ganze ist auf einem (relativ) aktuellen Raspbian Jessie.

frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Manul


jove01

Hallo

ein klasse Modul  :)

Mein erster Schriit war, im TabletUI ein Radio anlegen und die Channels auf meinen Marantz zu spielen.

Im zweiten Schritt habe ich das ganze über FakeRoku und meine Harmony gesteuert. Ist auf Grund von FakeRoku etwas umständlich, da die numerischen Tasten nicht gesendet werden und im DOIF die Tasten gemappt werden. Funktuiniert auch prima.

Und nun zu meiner Frage: Mit einem notify "AV_Marantz set DLNA_0006780d4533 $EVENT" möchte ich den DLNA stoppen, wenn der Marantz auf "Off" geht. Macht das Sinn ? Im DLNA stehen weiterhin die Channel und es scheint so, als ob das DLNA-Streamen immer aktiv ist !?

Mit set DLNA off sehe ich keine Änderungen an den Readings. Muss man überhaupt was stoppen ?

Danke
Jürgen
Aktuelles FHEM auf Raspi 3 und dbLog
CUL 433
HMLan Rolladensteuerung

jove01

Hallo
ich habe noch ein Problem, was mir zuvor nicht aufgefallen ist.

Mein Log ist voll mit

2017.06.27 10:31:06 1: PERL WARNING: Subscription request failed with error: 412 Precondition Failed at ./FHEM/98_DLNARenderer.pm line 1339.
2017.06.27 10:31:06 1: PERL WARNING: Subscription request failed with error: 412 Precondition Failed at ./FHEM/98_DLNARenderer.pm line 1343.


Habe leider dazu nichts gefunden.

Danke
Aktuelles FHEM auf Raspi 3 und dbLog
CUL 433
HMLan Rolladensteuerung

jove01

#493
Hallo

ich bitte nochmals dringend um Hilfe, da mein Log aktuell explodiert.

2017.06.30 00:36:54 1: PERL WARNING: Renewal of subscription failed with error: 412 Precondition Failed at ./FHEM/98_DLNARenderer.pm line 1264.
2017.06.30 00:36:54 1: PERL WARNING: Renewal of subscription failed with error: 412 Precondition Failed at ./FHEM/98_DLNARenderer.pm line 1271.
2017.06.30 00:40:14 1: PERL WARNING: Renewal of subscription failed with error: 412 Precondition Failed at ./FHEM/98_DLNARenderer.pm line 1264.
2017.06.30 00:40:14 1: PERL WARNING: Renewal of subscription failed with error: 412 Precondition Failed at ./FHEM/98_DLNARenderer.pm line 1271.
2017.06.30 00:43:52 1: PERL WARNING: Renewal of subscription failed with error: 500 Can't connect to 192.168.178.34:55000 at ./FHEM/98_DLNARenderer.pm line 1264.
2017.06.30 00:43:56 1: PERL WARNING: Renewal of subscription failed with error: 500 Can't connect to 192.168.178.34:55000 at ./FHEM/98_DLNARenderer.pm line 1271.
2017.06.30 00:46:57 1: PERL WARNING: Renewal of subscription failed with error: 500 Can't connect to 192.168.178.34:55000 at ./FHEM/98_DLNARenderer.pm line 1264.
2017.06.30 00:47:00 1: PERL WARNING: Renewal of subscription failed with error: 500 Can't connect to 192.168.178.34:55000 at ./FHEM/98_DLNARenderer.pm line 1271.


Es scheint sich um ein Gerät zu handeln, zumindest bei den Meldungen mit IP. Dieses Gerät ist zweimal als DLNA implementiert. Zum einen direkt über das DLNA-Modul und jetzt neuerdings durch die Squeezbox mit der DLNA-Bridge.

Wo die Auflösung bezüglich der IP erfolfgt, sehe ich nicht.

Ergänzend muss ich nachtragen, dass auch die IP des squeezbox-server in den Meldungen zu finden ist.

2017.06.30 15:22:24 1: PERL WARNING: Renewal of subscription failed with error: 500 Can't connect to 192.168.178.46:37901 at ./FHEM/98_DLNARenderer.pm line 1264.
2017.06.30 15:22:24 1: PERL WARNING: Renewal of subscription failed with error: 500 Can't connect to 192.168.178.46:37901 at ./FHEM/98_DLNARenderer.pm line 1271.

Aktuelles FHEM auf Raspi 3 und dbLog
CUL 433
HMLan Rolladensteuerung

the ratman

scheinbar inkompatibilität mit anderen modulen unter bestimten situationen und probleme mit manchen geräten.

hiho
ich hab hier ja die entsprechenden fehler (warnings) schon mal gepostet und dann gröbste probleme bekommen.
siehe hier https://forum.fhem.de/index.php/topic,72628.0.html das problem.
und hier https://forum.fhem.de/index.php/topic,73539.0.html die "lösung".

wer sich ned alles durchlesen will:
der dlna-renderer produziert unmengen an warnings, wenn mein lg-tv (der sogar vom renderer ausgenommen wurde) rennt. läuft dann auch noch das steuermodul für den lg-tv gibts "überlasten" mit temperaraturanstiegen ohne ende. fhem wird dabei über stunden unbrauchbar, bzw. muß das gesamte perl restartet werden um das problem wieder los zu werden.

btw - mein lg-tv kann sich sogar von einem dummen windoof-tablet bestreamen lassen - beim dlna-rederer kommt da nur ne fehlermeldung, dass der tv mit den empfangenen daten nix anfangen kann.
am tv liegts also wohl nicht wirklich ...
→do↑p!dnʇs↓shit←