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

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

Vorheriges Thema - Nächstes Thema

the ratman

erst mal thx für die reaktion ...

das ist ne portable wlan-box.
funzt super mit deinem modul, solange sie im netz ist.

wie schon geschrieben tritt das vollmüllen des log auch nur auf, wenn die box nicht erreichbar (weil abgeschaltet oder unterwegs) ist.
das problem: ich kann die box nicht immer erreichbar halten.
→do↑p!dnʇs↓shit←

rico5588

Hallo,

ich benötige Hilfe beim einrichten eines DLNA clienten.
Habe mir einen DENON AV Receiver zugelegt (Type AVR-X2400H), dieser sollte DLNA fähig sein. Leider erkennt das Modul diesen nicht.
Andere Geräte im Netzwerk werden erkannt.
Ich kann im Windows Mediaplayer diesen als Client ansprechen (Wiedergeben auf ....) - das geht einwandfrei.
Ich habe versuch mit Hilfe der UUID das Gerät Manuell anzulegen, jedoch bisher ohne Erfolg.
Was kann ich noch versuchen?

MFG Rico
Geht nicht gibt's nicht.
NUC-I3+Proxmox, Fritzbox 7590 AX, Synology DS414
Dimplex Wärmepumpe, Lüftungsanlage, Solarlog 1200
HM,IT,Lacross,EspEasy,Modbus,MQTT2, Freund von Shelly

loungelizard

Hallo zusammen,
ich habe in Verbindung mit dem GGMM E3 (https://www.amazon.de/GGMM-Multiroom-Lautsprecher-Intergriert-Bluetooth/dp/B01DNSHIMS) Stabilitätsprobleme.

Der DLNA-Renderer erkennt das Gerät im Netzwerk beim ersten Anlegen und es lassen sich entsprechend auch mp3-Dateien abspielen.
Das Gerät schaltet sich in FHEM aber irgendwann offline und ist nicht mehr erreichbar. Ein Steaming von Android oder ios auf das Gerät funktioniert aber noch.
Ich hatte versucht, das Gerät 1x täglich stromlos zu schalten in der Hoffnung, dass der DLNA-Renderer es dann wieder erkennt, aber keinen Erfolg.
Er verbleibt bei mir auch dauerhaft im Zustand initializing.
Andere DLNA-Clients funktionieren problemlos.

Folgende Log-Zeile  habe ich erkannt:

DLNARenderer: Created device DLNA_7A0CFF310010 for WLANSpeaker
DLNARendererer: XML formatting error: mismatched tag at line 26, column 2, byte 1090 at /usr/lib/arm-linux-gnueabihf/perl5/5.20/XML/Parser.pm line 187.
, <Event xmlns="urn:schemas-upnp-org:metadata-1-0/AVT/">
<InstanceID val="0">
<TransportState val="NO_MEDIA_PRESENT"/>
<TransportStatus val="OK"/>
<NumberOfTracks val="0"/>
<CurrentTrack val="0"/>
<CurrentTrackDuration val="00:00:00"/>
<CurrentMediaDuration val="00:00:00"/>
<CurrentTrackURI val=""/>
<AVTransportURI val=""/>
<CurrentTrackMetaData val="">
<PlaybackStorageMedium val="NONE"/>
<PossiblePlaybackStorageMedia val="NONE,STATION-NETWORK,SONGLIST-NETWORK,SONGLIST-LOCAL,SONGLIST-LOCAL_TF,THIRD-DLNA,AIRPLAY,UNKNOWN"/>
<PossibleRecordStorageMedia val="NOT_IMPLEMENTED"/>
<RecordStorageMedium val="NOT_IMPLEMENTED"/>
<CurrentPlayMode val="NORMAL"/>
<TransportPlaySpeed val="1"/>
<RecordMediumWriteStatus val="NOT_IMPLEMENTED"/>



Internals:
   CFGFN     
   DEF        uuid:FF310010-7FCB-DCE6-AF85-7A0CFF310010
   NAME       DLNA_7A0CFF310010
   NR         124530
   STATE      online
   TYPE       DLNARenderer
   UDN        uuid:FF310010-7FCB-DCE6-AF85-7A0CFF310010
   READINGS:
     2018-01-20 08:11:25   friendlyName    WlanSpeaker
     2018-01-20 08:11:25   manufacturer    wiimu
     2018-01-20 08:11:25   manufacturerURL http://www.wiimu.com/
     2018-01-20 08:11:25   modelDescription WiiMu LinkPlayer
     2018-01-20 08:11:25   modelName       WiiMu LinkPlayer
     2018-01-20 08:11:25   modelNumber     V01-Aug 18 2017

     2018-01-20 08:11:25   modelURL        http://www.muzohifi.com/
     2018-01-20 08:11:26   multiRoomSupport 0
     2018-01-20 08:11:26   multiRoomVolume 48
     2018-01-20 08:11:26   mute            0
     2018-01-20 08:11:26   presence        online
     2018-01-20 08:11:26   state           online
     2018-01-20 08:11:26   volume          48
   helper:
     caskeid    0
     caskeidClients
Attributes:
   alias      WlanSpeaker
   userattr   channel_01 channel_02 channel_03 channel_04 channel_05 channel_06 channel_07 channel_08 channel_09 channel_10 multiRoomGroups ttsLanguage
   webCmd     volume


Habt ihr eine Idee, was man hier machen könnte, um den Zugang stabil zu halten?
Cheers, Florian
Raspberry Pi 3: CUL V3 (433 MHz a-culfw 1.21.00), Intertechno V1/V2; Z-Wave: ZME_UZB1, Fibaro Switches, Devolo Sensors, Aeotec Sensor; Xiaomi Mi; Lightify; MAXLAN: Heizkörper, Wandthermostat; Sonstiges: Fritzbox, Unfi, LG-TV, DENON AVR; TabletUI

der.einstein

Hallo Leute,
ich bräuchte etwas Hilfe bei der Umsetzung von Subscription analog DLNA/UPNP mit Hilfe der Loewe TV Remote API.

Leider hat Dominik bislang nicht auf meine PM reagiert.

Kennt sich von euch noch jemand mit der Thematik aus?

THX!

Gesendet von meinem LG-D855 mit Tapatalk


Sir Volvic

Thema: Allplay Lautsprecher (Panasonic SC-Allxx, Lenco PlayLink, ...)

Bei mir stehen 3 dieser Lautsprecher. Sie werden vom Modul DLNARenderer gefunden, können jedoch nicht gesteuert werden.
Mit GUPnP (https://wiki.gnome.org/Projects/GUPnP) lassen sie sich jedoch steuern.

Ich habe dann mal Wireshark angesetzt und hier der TCP-Stream von einer nicht funktionierenden Lautstärkeänderung von fhem aus:
POST /RenderingControl/control HTTP/1.1
TE: deflate,gzip;q=0.3
Connection: TE, close
Accept: text/xml
Accept: multipart/*
Accept: application/soap
Host: 192.168.xxx.31:2870
User-Agent: SOAP::Lite/Perl/1.11
Content-Length: 639
Content-Type: text/xml; charset=utf-8
SOAPAction: "urn:schemas-upnp-org:service:RenderingControl:1#SetVolume"

<?xml version="1.0" encoding="UTF-8"?><soap:Envelope soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:namesp141="u" xmlns:namesp142="urn:schemas-upnp-org:service:RenderingControl:1" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body><namesp142:SetVolume><InstanceID xsi:type="xsd:int">0</InstanceID><Channel xsi:type="xsd:string">Master</Channel><DesiredVolume xsi:type="xsd:int">1</DesiredVolume></namesp142:SetVolume>
</soap:Body></soap:Envelope>


Antwort des Lautsprechers:

HTTP/1.1 500 Internal Server Error
Content-Length: 410
Content-Type: text/xml; charset="utf-8"
Date: Fri, 26 Jan 2018 08:12:57 GMT
Ext:
Server: NFLC/2.3 UPnP/1.0 DLNADOC/1.50

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<s:Fault>
<faultcode>s:Client</faultcode>
<faultstring>UPnPError</faultstring>
<detail>
<UPnPError xmlns="urn:schemas-upnp-org:control-1-0">
<errorCode>501</errorCode>
<errorDescription>Action Failed</errorDescription>
</UPnPError>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>


Die gleiche Änderung vom upnp-Kontrollpunkt GUPnP ergibt folgenden Stream:
FHEM:
POST /RenderingControl/control HTTP/1.1
Host: 192.168.77.32:2870
SOAPAction: "urn:schemas-upnp-org:service:RenderingControl:1#SetVolume"
Accept-Language: de-de;q=1, de;q=0.5
Accept-Encoding: gzip
Content-Type: text/xml; charset="utf-8"
User-Agent: gupnp-universal-cp GUPnP/0.20.12 DLNADOC/1.50
Connection: Keep-Alive
Content-Length: 343

<?xml version="1.0"?><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">
<DesiredVolume>5</DesiredVolume><Channel>Master</Channel><InstanceID>0</InstanceID></u:SetVolume>
</s:Body>
</s:Envelope>


Antwort des Lautsprechers:
HTTP/1.1 200 OK
Content-Length: 238
Content-Type: text/xml; charset="utf-8"
Date: Fri, 26 Jan 2018 08:17:37 GMT
Ext:
Server: NFLC/2.3 UPnP/1.0 DLNADOC/1.50

<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:SetVolumeResponse xmlns:u="urn:schemas-upnp-org:service:RenderingControl:1"/>
</s:Body>
</s:Envelope>


In wieweit man den POST des Moduls anpassen kann, weiß ich nicht. Da dieses wohl auf Bibliotheken zurückgreift. Aber da perl nicht zu meinen Stärken zählt, fängt für mich hier das Raten an, und das lasse ich lieber.

Wäre echt super, wenn es vom Entwickler eine Einschätzung gibt. Ob das Problem lösbar ist, oder eben nicht.

Für weitere Teste bin ich natürlich verfügbar.

KölnSolar

#530
Hi Dominik,
ich beschäftige mich gerade intensiv mit dem Samsung u. DLNA, da mir das im Augenblick die einzige Möglichkeit erscheint Bildschirmnachrichten auszugeben. Ich bin nun so weit, dass es klappt. Da Dein Modul ja schon alles an Bord hat, würde ich es gerne einsetzen. TV ist noch eine E_Serie u. wird, wenn ich fertig bin um Q-Serie ergänzt.  ;D

Der Tv wird einwandfrei erkannt, device angelegt, Readings werden aktualisiert, wenn sich über andere DMC's etwas tut, also alles prima, nur: set-Befehle wollen nicht funktionieren  :'( Im Log siehts gut aus
2018.01.27 00:56:24 5: DLNARenderer: AVTransport, Play(0,1) succeed.
2018.01.27 00:56:31 5: DLNARenderer: RenderingControl: urn:schemas-upnp-org:service:RenderingControl:1 found. OK.
2018.01.27 00:56:32 5: DLNARenderer: RenderingControl, SetVolume(0,Master,28) succeed.
2018.01.27 00:56:37 5: DLNARenderer: RenderingControl: urn:schemas-upnp-org:service:RenderingControl:1 found. OK.
2018.01.27 00:56:37 5: DLNARenderer: RenderingControl, SetVolume(0,Master,28) succeed.

Aber 0 Reaktion beim TV.

Kokusnuss hatte hier schon einmal das selbe Symptom beschrieben u. darauf hingewiesen, dass es bei ihm mit dlnaclient noch funktionierte(Edit:wie bei mir).

Wenn bei verbose 5 die soap-messages angezeigt würden, könnte ich die mit meinen funktionierenden abgleichen.

Grüße Markus
Edit: Hab mal die letzte Version u. die Controlpoint.pm des vergangenen Jahres eingespielt --> kein Unterschied  :'(
Edit2: streame ich die selbe URI auf einen Windows-Mediaplayer, klappt es einwandfre
Edit3: Unter currentTrackURI steht nach "stream" die vorherige URI(mit UPnP-Tester bestätigt), bei stream die neue, transportstate u. transportstatus haben alten Stand(also kein update der beiden readings)
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Det20

#531
Hänge mich mal dran. Mein Samsung H-Series reagiert leider nicht auf z.B. Volume-Änderungen.


2018.02.01 17:03:43 5: DLNARenderer: RenderingControl: urn:schemas-upnp-org:service:RenderingControl:1 found. OK.
2018.02.01 17:03:43 5: DLNARenderer: RenderingControl, SetVolume(0,Master,15) succeed.

willibutz

das gleiche bei SONY Sony HT-XT3 beim Versuch etwas wiederzugeben. Es kommt immer ein SUCCEED aber das Gerät reagiert nicht. Mit dem DLNAClient hatte es schon mal funktioniert.

KölnSolar

RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

KölnSolar

und nach 3 Monaten hab ich mich dann selber an die Suche begeben.  ::) Das war ein riiieeesen Aufwand. Ich kenne nun aber wenigstens ´die Ursache, habe aber noch keine "einfache" Lösung. Ich habe daher ein neues Thema dazu aufgemacht.

@willibutz: Du könntest mal testweise probieren, ob sich Dein Problem auch durch simples ändern der Variablen $PREFIX_ENV = 's'; in der
/usr/share/perl5/SOAP/Constants.pm löst.

Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

willibutz

danke dir Markus, werde ich mal probieren und berichten  :)

KölnSolar

STOPP.
Reinerlein hat eine schönere Lösung gefunden. Du könntest es also direkt mit der angepassten ControlPoint.pm probieren.
(Musst Du in Fhem/lib/UPnP kopieren und FHEM restarten)
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

willibutz

Hallo Markus,
habe gerade mit der neuen Version von ControlPoint.pm getestet. Leider hat sich für mein Gerät nichts geändert. Immer noch eine Succeed-Meldung, obwohl nichts passiert. Dafür sind aber vorher schon einige Perl-Warnungen gekommen, evtl. ist ja dann dort schon alles zu spät :-(
Ich schicke mal mein Log mit, vielleicht sagt dir das ja was:


Datum Zeit Stufe Host Kateg. Programm Nachrichten
2018-04-23 18:23:17 Debug WMS syslog FHEM_fhem : 5: DLNARenderer: AVTransport: urn:schemas-upnp-org:service:AVTransport:1 found. OK.
2018-04-23 18:23:17 Debug WMS syslog FHEM_fhem : 5: DLNARenderer: AVTransport, SetAVTransportURI(0,http://192.168.6.10/mp3/test.mp3,<DIDL-Lite xmlns=urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/" xmlns:sec="http://www.sec.co.kr/"><item id="-1" parentID="parent" restricted="1"><upnp:class>object.item.audioItem.musicTrack</upnp:class><dc:title>http://192.168.6.10/mp3/test.mp3</dc:title><upnp:album>http://192.168.6.10/mp3/test.mp3</upnp:album><res protocolInfo="http-get:*:audio/mpeg:DLNA.ORG_OP=01
2018-04-23 18:23:17 Debug WMS syslog FHEM_fhem : 5: DLNARenderer: AVTransport: urn:schemas-upnp-org:service:AVTransport:1 found. OK.
2018-04-23 18:18:03 Warning WMS syslog FHEM_fhem : 1: PERL WARNING: Use of uninitialized value in numeric eq (==) at /usr/local/FHEM/share/fhem/FHEM/98_DLNARenderer.pm line 318.
2018-04-23 18:13:09 Warning WMS syslog FHEM_fhem : 1: PERL WARNING: Subscription request failed with error: 400 Bad Request at /usr/local/FHEM/share/fhem/FHEM/98_DLNARenderer.pm line 1360.
2018-04-23 18:13:09 Warning WMS syslog FHEM_fhem : 1: PERL WARNING: Subscription request failed with error: 400 Bad Request at /usr/local/FHEM/share/fhem/FHEM/98_DLNARenderer.pm line 1356.
2018-04-23 18:13:09 Notice WMS syslog FHEM_fhem : 3: DLNARenderer: Created device DLNA_104fa8052a77 for BRAVIABOX
2018-04-23 18:12:52 Notice WMS syslog FHEM_fhem : 3: DLNARenderer: DLNA Renderer v2.0.7


Danke für deine Unterstützung,
LG willibutz

KölnSolar

Erkannt wird er ja, aber bei der 'subscription' geht schon nichts mehr.  :'( Also andere Ursache als beim Samsung.

Hab mir gerade mal das Bravia-Modul in der commandref angesehen. Bietet scheinbar alles, was das Herz begehrt. Geht das Modul bei Dir nicht ? Ich sah auch das attr upnp, das zumindest für den upnp-service RenderingControl aktiviert sein muss.

Und nun ist die Frage wie tief Du einsteigen willst. Ein 1. Schritt wäre das grundsätzliche Verständnis DLNA/UPnP/SOAP(wikipedia reicht). Dann mal das tool upnptester auf einen Windowsrechner installieren. Das Tool gibt Dir alle Infos bzgl. UPnP, die Dein Bravia preisgibt. Mögliche actions werden angzeigt und lassen sich manuell ausführen(man benötigt dazu aber Detailinfos, um Parameter richtig setzen zu können).

RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Reinerlein

Hallo Dominik,

ich habe eine Änderung der ControlPoint.pm eingecheckt.

Mit dieser kannst du beim Erzeugen des ControlPoint-Objekts das EnvPrefix, das verwendet werden soll, mitgeben.
Damit kann das Problem von Markus mit dem Samsung Fernseher behoben werden.

Ich würde empfehlen, es als Attribut anzubieten. Beim Aufruf musst du es dann nur weiterreichen:

$cp = UPnP::ControlPoint->new(SearchPort => 0, SubscriptionPort => 0, MaxWait => 30, UsedOnlyIP => \@usedonlyIPs, IgnoreIP => \@ignoredIPs, LogLevel => AttrVal($hash->{NAME}, 'verbose', 0), EnvPrefix => AttrVal($hash->{NAME}, 'EnvPrefix', 'soap'));


Grüße
Reinerlein