Page 1 of 1
Fixing device recognition using DD in clients.db
Posted: Mon Aug 01, 2011 7:37 pm
by sba
Hi,
I have a Yamaha RX-V1067 receiver for which I have created a custom view.
The problem is that TMS 6.0.34 (qpkg on a QNAP TS109II) keeps recognizing it incorrectly (as a "General Media Receiver" whereas the device only can play music, no pictures or videos) and doesn't remember my view choice for the device.
How do I determine the DD value used by the Yamaha so that I can create a new entry in clients.db where I would specify the correct settings (AV:M, DV:yamaha)?
TIA for your help
Best regards,
Stéphane.
Re: Fixing device recognition using DD in clients.db
Posted: Mon Aug 01, 2011 7:52 pm
by sba
I'll try:
>>
NA:AV Receiver
DD:AV Receiver
XM:DNLA15
AV:M
DV:yamaha
given that WireShark reveals the following strings in the device's response:
<friendlyName>RX-V1067</friendlyName>
<manufacturer>YAMAHA CORPORATION</manufacturer>
<manufacturerURL>
http://www.yamaha.com/</manufacturerURL>
<modelDescription>AV Receiver</modelDescription>
<modelName>RX-V1067</modelName>
<modelNumber>V1067</modelNumber>
but how would I filter better e.g. by modelName?
Re: Fixing device recognition using DD in clients.db
Posted: Wed Aug 03, 2011 9:15 pm
by Twonky_Rick
Custom device profiles are only automatically selected when your device matches a profile in our library. In most cases a 'Generic' profile is the right choice for your device. Custom profiles are only created with problems are discovered with a device.
If you create your own custom profile and it works better than one of the Generic profiles, let us know and we'll consider adding it.
- Rick
Re: Fixing device recognition using DD in clients.db
Posted: Thu Aug 04, 2011 6:36 am
by sba
Hi Rick,
Thx for getting back to me... although this doesn't answer my question.
My Yamaha RX-V1067 is automatically detected as a "Generic Media Receiver" using the default navigation tree which I have configured as "Advanced media view."
This is inappropriate for two reasons:
- a Generic Media Receiver supports all types of media, whereas the Yamaha supports only Music, so AV:M should be in effect (like "Generic Music Only Receiver")
- I want the default view to be the customized "yamaha" view I have created that better fits the device's UI, but this is only possible if the device is matched to a specific entry in clients.db (I've done this for my Noxon by adding DV:noxon to clients.db in the corresponding entry).
So back to my original question: how do I get TMS to choose a specic, custom entry in clients.db for that device?
My custom entry:
>>
NA:AV Receiver
DD:AV Receiver
XM:DNLA15
AV:M
DV:yamaha
is not automatically selected for the Yamaha; how comes?
Best regards,
Stéphane.
Re: Fixing device recognition using DD in clients.db
Posted: Thu Aug 04, 2011 9:34 pm
by RG1
Hi,
for proper device recognition in clients.db I use DD:modelDescription and D2:modelName. For your device I would try this:
>>
NA:Yamaha RX-V1067
DD:AV Receiver
D2:RX-V1067
XM:DNLA15
DV:yamaha
and don't use AV:M since this is for music only.
Re: Fixing device recognition using DD in clients.db
Posted: Fri Aug 05, 2011 9:25 am
by sba
I hate to say, but this doesn't work. The receiver is still detected as "Generic Media Receiver" (I do see the "Yamaha RX-V1067" in the listbox, though).
And I think I do need AV:M otherwise I will get the useless "Photos" and "Videos" menus, and have to navigate to "Music" first; with AV:M I get directly to my custom menu entries.
Re: Fixing device recognition using DD in clients.db
Posted: Fri Aug 05, 2011 10:19 pm
by RG1
Ah, yes you need AV:M - looks like I need to work on my reading skill.
I don't know why device recognition doesn't work. I have added a new device this way and it works. After editing clients.db a reset of the device list was needed.
Re: Fixing device recognition using DD in clients.db
Posted: Sun Aug 07, 2011 8:13 pm
by parnott
Well I compared what you are seeing with what my WD TV Live is broadcasting. My guess is that the DD entry in clients.db matches with the modelName tag.
So in the case of my WD TV Live the Twonky clients.db has-
DD:WD TV HD Live
The only thing that the WD TV Live broadcasts that matches this string is-
<modelName>WD TV HD Live</modelName>
So my suggestion would be to try this in clients.db-
DD:RX-V1067
This would match up with the <modelName>RX-V1067</modelName> that you saw.
Re: Fixing device recognition using DD in clients.db
Posted: Sun Aug 21, 2011 8:00 am
by sba
Doesn't seem to work... (haven't restarted the server, only the device)
Re: Fixing device recognition using DD in clients.db
Posted: Sun Aug 21, 2011 10:44 am
by DaemonBeetle
You will almost certainly need to restart Twonky after you changed the clients.db file.
Re: Fixing device recognition using DD in clients.db
Posted: Sun Aug 21, 2011 12:03 pm
by sba
Restart done, my receiver is still recognized as "Generic Media Receiver" and gets assigned the default view...
DaemonBeetle wrote:You will almost certainly need to restart Twonky after you changed the clients.db file.
Re: Fixing device recognition using DD in clients.db
Posted: Sun Aug 21, 2011 5:20 pm
by parnott
Have you reset the list in the Media Receivers config page?
I believe that media receiver MAC address to player type mappings are preserved across reboots by default.
Re: Fixing device recognition using DD in clients.db
Posted: Sun Aug 21, 2011 7:30 pm
by sba
Juste done it. Still recognized incorrectly.
parnott wrote:Have you reset the list in the Media Receivers config page?
I believe that media receiver MAC address to player type mappings are preserved across reboots by default.
Re: Fixing device recognition using DD in clients.db
Posted: Sun Aug 21, 2011 8:53 pm
by parnott
Umm, I am starting to run out of ideas. But-
Have you tried turning on Twonky logging to see if anything useful shows up in then logs?
Re: Fixing device recognition using DD in clients.db
Posted: Mon Aug 22, 2011 11:18 am
by sba
Here's what seems to be relevant in the log captured when the receiver powers up:
Code: Select all
12:08:25:084 [Info] - LOG_HTTP: HTTP_accept_Impl : entering receive module
12:08:25:090 [Trace] - LOG_CLIENT_DB: upnp_client_db_check_header : Checking http header to find a matching client.db entry (GET /TMSDeviceDescription.xml HTTP/1.1
Host: 192.168.1.3:9000
User-Agent: AV_Receiver/3.0 (RX-V1067)
Accept: */*
Content-Length: 0
)
12:08:25:094 [Trace] - LOG_CLIENT_DB: upnp_client_db_check_header : Checking http header to find a matching client.db entry (DLNADOC/1.50)
12:08:25:095 [Trace] - LOG_CLIENT_DB: upnp_client_db_check_header : Found matching candidate for client using the http header (DLNADOC/1.50) id=1
12:08:25:096 [Trace] - LOG_CLIENT_DB: upnp_client_db_add_by_ip : no entry found in known clients list for ip=192.168.1.25, mac=00:A0:DE:71:26:C4 creating new entry
12:08:25:098 [Info] - LOG_HTTP: HTTP_send_receive : header = GET /TMSDeviceDescription.xml HTTP/1.1
Host: 192.168.1.3:9000
User-Agent: AV_Receiver/3.0 (RX-V1067)
Accept: */*
Content-Length: 0
and some time later:
Code: Select all
12:08:25:320 [Info] - LOG_HTTP: HTTP_accept_Impl : entering receive module
12:08:25:331 [Trace] - LOG_CLIENT_DB: upnp_client_db_check_header : Checking http header to find a matching client.db entry (POST /TMSContentDirectory/Control HTTP/1.1
Host: 192.168.1.3:9000
User-Agent: AV_Receiver/3.0 (RX-V1067) UPnP/1.0 DLNADOC/1.50
Content-Type: text/xml; charset="utf-8"
Content-Length: 297
SOAPACTION: "urn:schemas-upnp-org:service:ContentDirectory:1#GetSortCapabilities"
Cache-Control: no-cache
Pragma: no-cache
)
12:08:25:338 [Trace] - LOG_CLIENT_DB: upnp_client_db_check_header : Found matching candidate for client using the http header (POST /TMSContentDirectory/Control HTTP/1.1
Host: 192.168.1.3:9000
User-Agent: AV_Receiver/3.0 (RX-V1067) UPnP/1.0 DLNADOC/1.50
Content-Type: text/xml; charset="utf-8"
Content-Length: 297
SOAPACTION: "urn:schemas-upnp-org:service:ContentDirectory:1#GetSortCapabilities"
Cache-Control: no-cache
Pragma: no-cache
) id=1
12:08:25:355 [Info] - LOG_HTTP: HTTP_send_receive : header = POST /TMSContentDirectory/Control HTTP/1.1
Host: 192.168.1.3:9000
User-Agent: AV_Receiver/3.0 (RX-V1067) UPnP/1.0 DLNADOC/1.50
Content-Type: text/xml; charset="utf-8"
Content-Length: 297
SOAPACTION: "urn:schemas-upnp-org:service:ContentDirectory:1#GetSortCapabilities"
Cache-Control: no-cache
Pragma: no-cache
12:08:25:358 [Trace] - LOG_HTTP: HTTP_send_receive : next locate handler for the request (type 4=POST)
12:08:25:367 [Trace] - LOG_HTTP: HTTP_send_receive : need to get HTTP body for the command
12:08:25:376 [Info] - LOG_HTTP: HTTP_send_receive : received doc = <?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><m:GetSortCapabilities xmlns:m="urn:schemas-upnp-org:service:ContentDirectory:1"></m:GetSortCapabilities></s:Body></s:Envelope>
12:08:25:379 [Trace] - LOG_HTTP: upnp_soap_server_dispatcher : client=1 [Generic Media Receiver] ip=192.168.1.25 header=POST /TMSContentDirectory/Control HTTP/1.1
Host: 192.168.1.3:9000
User-Agent: AV_Receiver/3.0 (RX-V1067) UPnP/1.0 DLNADOC/1.50
Content-Type: text/xml; charset="utf-8"
Content-Length: 297
SOAPACTION: "urn:schemas-upnp-org:service:ContentDirectory:1#GetSortCapabilities"
Cache-Control: no-cache
Pragma: no-cache
12:08:25:392 [Info] - LOG_HTTP: HTTP_send_header : sending HTTP/1.1 200 OK
Content-Type: text/xml; charset="utf-8"
Content-Length: 737
Date: Mon, 22 Aug 2011 10:08:25 GMT
Pragma: no-cache
Cache-control: no-cache
Accept-Ranges: bytes
Connection: keep-alive
EXT:
Server: Linux/2.x.x, UPnP/1.0, pvConnect UPnP SDK/1.0, TwonkyMedia UPnP SDK/1.1
this reflects the fact no match for the UserAgent is found in client.db, but does not really give [me] a hint on what the client.db needs to contain for a match to be found...
Re: Fixing device recognition using DD in clients.db
Posted: Mon Aug 22, 2011 5:01 pm
by parnott
Well maybe we could try matching on the User Agent HTTP header. So instead of DD and D2 try-
HH:AV_Receiver/3.0 (RX-V1067)
or
HH:AV_Receiver/3.0 (RX-V1067) UPnP/1.0 DLNADOC/1.50
(Seems odd that the User Agent changes between requests, but it maybe just the way it is logged)
So the clients.db entry would be something like-
NA:Yamaha RX-V1067
HH:AV_Receiver/3.0 (RX-V1067) UPnP/1.0 DLNADOC/1.50
XM:DNLA15
AV:M
DV:yamaha
DB:FIX
Make sure you have the last entry which has not been mentioned so far. I also see that Yamaha devices in clients.db also have this line-
DF:devicedescription-yamaha.xml
Re: Fixing device recognition using DD in clients.db
Posted: Mon Aug 22, 2011 11:54 pm
by Twonky_Rick
If you guys are able to come up with a new device entry for this, which resolves the issues you were seeing, let me know and I'll ask that this be added to our next update. Thanks.
- Rick
Re: Fixing device recognition using DD in clients.db
Posted: Thu Aug 25, 2011 9:12 pm
by sba
It seems that:
Code: Select all
NA:Yamaha RX-V1067
HH:AV_Receiver/3.0 (RX-V1067) UPnP/1.0 DLNADOC/1.50
XM:DNLA15
AV:M
DV:yamaha
DB:FIX
fits my bill. I have to verify that recognition works at every receiver powerup, and even when TMS is restarted.
Next I will have to assume that the UserAgent will never change, even when the receiver firmware is updated.
Best regards,
Stéphane.
TMM_Product_Manager wrote:If you guys are able to come up with a new device entry for this, which resolves the issues you were seeing, let me know and I'll ask that this be added to our next update. Thanks.
- Rick
Re: Fixing device recognition using DD in clients.db
Posted: Thu Aug 25, 2011 11:03 pm
by parnott
Please keep us informed. If it has worked once then it should continue to work. Well I hope so.
PS. Also try with the DF:devicedescription-yamaha.xml option in the clients.db entry. All other Yamaha devices have this but I don't know if it is relevant in this situation. Unfortunately I don't have your player model to try this.
PPS. It would be rather unusual that the UserAgent string changes between firmware updates. Not impossible, but we could probably discover another way to do the matching.
Re: Fixing device recognition using DD in clients.db
Posted: Fri Aug 26, 2011 12:31 pm
by sba
What is the devicedescription-yamaha.xml supposed to be useful for?
My guess is that it relates to older, very much pre-DLNA, Yamaha devices, and is not relevant to my receiver, which is DLNA 1.5 certified.
parnott wrote:Please keep us informed. If it has worked once then it should continue to work. Well I hope so.
PS. Also try with the DF:devicedescription-yamaha.xml option in the clients.db entry. All other Yamaha devices have this but I don't know if it is relevant in this situation. Unfortunately I don't have your player model to try this.
PPS. It would be rather unusual that the UserAgent string changes between firmware updates. Not impossible, but we could probably discover another way to do the matching.