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

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

Vorheriges Thema - Nächstes Thema

savage7

Hi Dominik

hatte es schonmal vor einiger Zeit ausprobiert und immer 400 Fehler bekommen, das ist leider mit Version 2.0.0 noch immer so.
Ich kann die Geräte aber sonst als normale Dlna Renderer verwenden. Es handelt sich um:
yamaha rx-479 (av rx) und yamaha wx030 (netzwerk lautsprecher)

Hab mit dem Intel Device Spy mal ein paar Screenshots gemacht. Vielleicht liegt nur daran, dass zb. die falsche Url für das Device angesprochen wird. Siehst du in den Screenshots etwas Auffälliges?
In Fhem selber wird das Gerät richtig erkannt und alle Infos auch richtig angezeigt, nur sobald ein simpler Befehl wie setVolume aufgerufen wir kommt ein 400 Fehler.
Beispiel Fehler:
2016.07.19 22:36:26 3: DLNARenderer: RenderingControl, SetVolume(0,Master,88) failed, 400 Bad Request at FHEM/lib/UPnP/ControlPoint.pm line 847.

savage7

Noch ein Zusatz:
Mit dem Intel Device Spy hab ich die Methode setVolume erfolgreich aufgerufen. Anbei der TCP den ich davon mit Wireshark abgefangen habe.

dominik

@Christian
Vielen Dank für die Korrektur und den Patch. Habe es bei mir bereits angepasst und werde es heute commiten.

@alpha1974
Das kann durchaus vorkommen, wenn das DLNA Device nicht erreicht wird. Der Fehler liegt in der ControlPoint.pm von FHEM. Dort werden die Device Informationen mit LWP über get geholt und das kann den Prozess blockieren:
https://github.com/chregu/fhem-sonos/blob/master/FHEM/lib/UPnP/ControlPoint.pm#L273
Da müsste man mal die ControlPoint.pm komplett Non-Blocking machen.

@savage7
Kannst du bitte noch mit Verbose=5 das Log vom DLNARenderer.pm posten?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

savage7

Verbose 5 auf Fhem:

2016.08.01 08:08:50 4: WEB_83.164.197.70_4899 POST /fhem&detail=DLNA_00a0ded1c9cd&dev.setDLNA_00a0ded1c9cd=DLNA_00a0ded1c9cd&cmd.setDLNA_00a0ded1c9cd=set&arg.setDLNA_00a0ded1c9cd=volume&val.setDLNA_00a0ded1c9cd=55; BUFLEN:0
2016.08.01 08:08:50 5: Cmd: >set DLNA_00a0ded1c9cd volume 55<
2016.08.01 08:08:50 5: DLNARenderer: RenderingControl: urn:schemas-upnp-org:service:RenderingControl:1 found. OK.

2016.08.01 08:08:50 3: DLNARenderer: RenderingControl, SetVolume(0,Master,55) failed, 400 Bad Request at FHEM/lib/UPnP/ControlPoint.pm line 847.

2016.08.01 08:08:50 5: Triggering DLNA_00a0ded1c9cd (1 changes)
2016.08.01 08:08:50 5: Starting notify loop for DLNA_00a0ded1c9cd, first event volume 55
2016.08.01 08:08:50 4: WEB_83.164.197.70_4899 GET /fhem?detail=DLNA_00a0ded1c9cd&fw_id=; BUFLEN:0
2016.08.01 08:08:50 4: name: /fhem?detail=DLNA_00a0ded1c9cd&fw_id= / RL:13863 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2016.08.01 08:08:50 4: Connection closed for WEB_83.164.197.70_45568: EOF
2016.08.01 08:08:50 4: WEB_83.164.197.70_4899 GET /fhem?cmd={ReadingsVal(%22DLNA_00a0ded1c9cd%22,%22volume%22,%22%22)}&XHR=1; BUFLEN:0
2016.08.01 08:08:50 5: Cmd: >{ReadingsVal("DLNA_00a0ded1c9cd","volume","")}<
2016.08.01 08:08:50 4: name: /fhem?cmd={ReadingsVal(%22DLNA_00a0ded1c9cd%22,%22volume%22,%22%22)}&XHR=1 / RL:23 / text/plain; charset=UTF-8 / Content-Encoding: gzip


Wenn ich verbose 5 nur beim Dlna Gerät stell kommt nur diese Fehlermeldung:

2016.08.01 08:10:58 3: DLNARenderer: RenderingControl, SetVolume(0,Master,55) failed, 400 Bad Request at FHEM/lib/UPnP/ControlPoint.pm line 847.


michael.winkler

Hallo,

da ich zu meinem letzte Post leider keine Antwort erhalten habe, versuche ich es noch mal.

Ich habe das Problem dass das Modul jedes mal meine XBOX neu anlegt. Bei jedem XBOX start wird ein neues Device in FEHM angelegt. Gibt es hierzu eine Lösung?

Gruß
Michael

Brockmann

Zitat von: michael.winkler am 04 August 2016, 07:37:47
Ich habe das Problem dass das Modul jedes mal meine XBOX neu anlegt. Bei jedem XBOX start wird ein neues Device in FEHM angelegt. Gibt es hierzu eine Lösung?
Das dürfte daran liegen, dass die XBox ihre UUID ändert. DLNARenderer unterscheidet die Geräte anhand ihrer UUID. Die findest Du bei jedem angelegten Gerät in den Internals unter UDN. Ein Teil dieses UDN wird auch als Name des Geräts (nicht Alias!) verwendet. DLNARenderer geht davon aus, dass jedes Gerät immer dieselbe UUID meldet. Wenn das nicht der Fall ist, kann das Gerät auch nicht wiedererkannt werden, sondern wird als neues Gerät hinzugefügt.
Schau mal in den Internals nach, welchen UDN und welchen Name die verschiedenen Geräte verwenden, die für Deine XBox angelegt werden. Vielleicht lässt sich da zumindest eine Gemeinsamkeit erkennen und man kann über das Attribut ignoreUDN weitere Neudefinitionen verhindern.

pirndi

#396
Hallo!

Ist es möglich das DIAL Protokoll mit einzubauen? das müsste das Protokoll für Google cast sein wenn ich mich nicht irre. Damit würden sich viele Geräte ansprechen lassen.

Edit:

Hab noch einen Link gefunden, da hat jemand das ganze in Python gemach:
https://github.com/balloob/pychromecast/blob/master/pychromecast/dial.py

Brockmann

Ich habe folgendes merkwürdige Phänomen:

Wenn ich einen Radiostream (beispielsweise http://www.ndr.de/resources/metadaten/audio/m3u/ndr2_nds.m3u) auf meinen MUNET PMN300 über FHEM starte, stottert die Wiedergabe, so also ob jede zweite Sekunde die Laustärke gemutet wird, also ständig an-aus-an-aus. Der Stream hält dabei nicht an, sondern läuft weiter. Ich dachte erst, das Ding wäre defekt, aber wenn ich auf demselben Gerät denselben Stream über BubbleUPnP starte, läuft er völlig sauber und problemlos.

Habe mehrere der Munets und es ist bei allen so. Gleichzeitig habe ich auch ein Gerät von Pioneer, wo die Wiedergabe solcher Streams aus FHEM problemlos klappt.

Hat jemand eine Idee, woran es liegen könnte? Kann DLNA-Renderer irgendwas beim Starten des Streams anders machen als Bubble-UPnP? Lassen sich da noch irgendwelche Parameter setzen?

dominik

#398
Hallo,
ich habe das gleiche Problem und dachte es lag an meinem WLAN. Hab aber auch einen Fix im Code dafür gefunden :)

Anbei mal eine aktualisierte Version, kannst du bitte damit deine MUNETs testen inkl. Multiroom? Wenn es funktioniert, checke ich die Version ein.

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

Brockmann

Zitat von: dominik am 06 September 2016, 20:19:24
Anbei mal eine aktualisierte Version, kannst du bitte damit deine MUNETs testen inkl. Multiroom? Wenn es funktioniert, checke ich die Version ein.
Sollte das nicht 98_DLNARenderer.pm sein?

dominik

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

MattG

Hallo Dominik,

bin heute auf das Modul gestossen und musste es gleich ausprobieren! Das ist mal ein wirklich einfach einzubindendes Modul - es hat innerhalb einer Minute meine Geräte gefunden und ich konnte sofort Funktionen wie Play, Pause und Lautstärke nutzen. Ich verwende das Modul jetzt, um mein Raumfeld-System direkt zu steuern (playToggle, next, previous, volume). Bisher lief das über eine externe Software (Raumserver), worauf ich jetzt verzichten kann. Danke dafür!!

Mir sind beim Probieren drei Stellen aufgefallen, an denen ich noch editieren musste, bis es für mich lief: next und previous haben je einen Tippfehler  (Trasnport) und bei pauseToggle fehlt {VAL}.

Viele Grüße,
Matthias

Brockmann

Zitat von: dominik am 06 September 2016, 20:19:24
Anbei mal eine aktualisierte Version, kannst du bitte damit deine MUNETs testen inkl. Multiroom? Wenn es funktioniert, checke ich die Version ein.
Also im Standalone-Modus klappt es jetzt wieder. Aber sowie ich was mit Multiroom versuche, ist der Effekt sofort wieder da.
Wechsel ich dann wieder in Standalone, läuft es wieder sauber. Mit dem Multiroom-Feature ist also wohl noch was im argen.

chriz

Hey Dominik,

teste gerade dein Modul mit meinen beiden Libratone Loop Speaker. Funktioniert soweit einwandfrei.

Vielen Dank für die tolle Arbeit!!

Grüße
Chris
FHEM auf Intel NUC D34010WYK Core i3, SSD, Ubuntu. HomeMatic mit HMLAN (Groundplane Antenne), Fritz DECT!200, FritzBox 7490, EnerGenie EG-PMS2-LAN, Yamaha RX-V475, Netatmo, Withings, Philips hue, Osram Lightify, Flukso Energy Meter, Harmony, RooWifi, Junkers ZSB 24-4 C Heizung via Heatronic HT-BUS

kalle86

Vielen dank für die arbeit.  :D Es war sehr einfach einzubinden und läuft mit meinem Denon AVR 3313 einwandfrei.
Bis auf den Befehl speak funktioniert alles soweit  :D