We have moved at community.getvera.com

Author Topic: HTTP interface support  (Read 3418 times)

Offline intveltr

  • Beta Testers
  • Hero Member
  • *****
  • Posts: 1741
  • Karma: +102/-5
HTTP interface support
« on: December 06, 2015, 08:11:10 am »
I've recently started messing around with this plugin, and ran into the same issue others have reported: from time to time, the plugin will lose connection, requiring a reset of the amp.  This seems to happen when Vera restarts...

Anyway, the HTTP interface that some Denon amps offer seems to be more reliable and offers more or less the same functionality.  Are there any plans to offer the HTTP interface as an option in the plugin?
HomeWave is available in the App Store!  Turn your iPhone/iPad into an easy-to-use remote control for Vera.

Offline zoot1612

  • Moderator
  • Hero Member
  • *****
  • Posts: 603
  • Karma: +21/-2
Re: HTTP interface support
« Reply #1 on: December 15, 2015, 05:58:41 pm »
I've recently started messing around with this plugin, and ran into the same issue others have reported: from time to time, the plugin will lose connection, requiring a reset of the amp.  This seems to happen when Vera restarts...

Anyway, the HTTP interface that some Denon amps offer seems to be more reliable and offers more or less the same functionality.  Are there any plans to offer the HTTP interface as an option in the plugin?

Wish I could, but I own a 3808 which does not support the newer HTTP interface. From a automation point of view I wouldn't recommend a Denon if you were going to use the Ethernet port for connectivity.

I am going to stop supporting this plugin because people are just having to many issues and I can't really help them.

« Last Edit: December 16, 2015, 05:34:14 pm by zoot1612 »

Offline intveltr

  • Beta Testers
  • Hero Member
  • *****
  • Posts: 1741
  • Karma: +102/-5
Re: HTTP interface support
« Reply #2 on: December 16, 2015, 06:59:46 am »
<quote>From a automation point of view I wouldn't recommend a Denon if you were going to use the Ethernet port for connectivity.</quote>
That's what my home automation partner told me as well, a few days I bought one on sale.

If I find a little time, I might have a stab at adding HTML support myself, at least for the basic stuff.
HomeWave is available in the App Store!  Turn your iPhone/iPad into an easy-to-use remote control for Vera.

Offline zoot1612

  • Moderator
  • Hero Member
  • *****
  • Posts: 603
  • Karma: +21/-2
Re: HTTP interface support
« Reply #3 on: December 17, 2015, 12:52:49 am »
@intveltr
If you do, I suggest you start a new plugin. I think it would be a lot cleaner and easier.

Offline a-lurker

  • Hero Member
  • *****
  • Posts: 872
  • Karma: +66/-8
Re: HTTP interface support
« Reply #4 on: January 05, 2016, 06:59:50 pm »
@zoot1612  and @ intveltr   re: HTTP control of Denon:

I had similar connections problems with a Yamaha AVR. The Yamaha original plugin used a socket connection, which just stopped working every now and then. Came to the conclusion it was a Vera problem but I can't be definite about that.

Regardless I wrote a plugin that uses HTTP for control and now have no problems. The plugin doesn't have a fancy control panel in the UI but allows control of most functions through actions called by scenes. See actions available here:

http://forum.micasaverde.com/index.php?action=dlattach;topic=23079.0;attach=28136

I got the Yamaha code and rehashed it to suit a Denon. Please note this just a mash up and I don't have a Denon. However it may at least work the On/Off, Mute and Vol Up/Dwn plus input selection? It could be a good starting point for an Denon HTTP control?

Create the plugin and assign the Denon IP address and do all the required restarts.

It would be helpful if someone could post the Denon responses to the various URL's, listed here:

https://translate.google.com.au/translate?hl=en&sl=de&u=http://blue-pc.net/2013/12/28/denon-av-reciever-ueber-http-steuern/&prev=search

as broader understanding of the functionality would be useful. Also need to know what the Denon AVR replies with, when an incorrect URL is sent to it - see commented out code in function urlRequest()

A Vera example:

http://forum.micasaverde.com/index.php/topic,24464.msg171112.html#msg171112

The attached plugin code contains Futzle's XML parser, so that can employed as needed. The debug also lists the returned pages from the Denon, so the log file is worth watching.

In particular does any one single URL provide information that indicates how many zones there are, for the Denon of interest. The code currently tries various URLs sent to different zones to see if a response occurs and counts the successes. See getConfig() function. Parsing a single URL would be a better approach. See commented out code for Yamaha example in function parseXMLconfig()

Also need to know the min and max volume levels and the minimum volume step size for the functions setVolume() and setVolumeUpDown().

I used the function fakeDenonStatusReply() to test some of the coding. The m_Marantz_Family flag does nothing so far. Functions playControl() and selectPreset() are not implemented. They could be rehashed to serve some other purpose.

The plugin has a link to the Denon's internal web page on the UI. But I'm not sure I have the link right. See the variable "linkToDeviceWebPage".

Also in some cases the control URL's may need to be escaped - untested.

Final note - code will definitely need work - it is not by any means a finished product but I can't proceed any further without more info. Be interested to hear if any of it works.

Offline zoot1612

  • Moderator
  • Hero Member
  • *****
  • Posts: 603
  • Karma: +21/-2
Re: HTTP interface support
« Reply #5 on: January 06, 2016, 09:49:55 pm »
@a-lurker
My understanding is that this only works on 2011+ models (xx12 series).

Anyway in the interest of "giving anything a go to fix this issue" I tried and failed. It seems the older versions of the AVR use asp and feedback html/javascript pages exclusively.

Here is one an excerpt from the log: -
Code: [Select]
50 01/07/16 10:19:11.100 luup_log:473: DenonRxHTTP debug: zCmdStr: MainZone <0x2deed680>
50 01/07/16 10:19:11.101 luup_log:473: DenonRxHTTP debug: zVarStr: MainZone <0x2deed680>
50 01/07/16 10:19:11.101 luup_log:473: DenonRxHTTP debug: zNum: 1 <0x2deed680>
50 01/07/16 10:19:11.237 luup_log:473: DenonRxHTTP debug: URL = http://192.168.0.32/goform/formMainZone_MainZoneXml.xml <0x2deed680>
50 01/07/16 10:19:11.238 luup_log:473: DenonRxHTTP debug: URL request result: b = <html><head><title>Document Error: Data follows</title></head>
<body><h2>Access Error: Data follows</h2>
<p>Form formMainZone_MainZoneXml.xml is not defined</p></body></html>

 <0x2deed680>
50 01/07/16 10:19:11.238 luup_log:473: DenonRxHTTP debug: URL request result: c = 200 <0x2deed680>
50 01/07/16 10:19:11.238 luup_log:473: DenonRxHTTP debug: URL request result: h = table: 0x126b888 <0x2deed680>
50 01/07/16 10:19:11.239 luup_log:473: DenonRxHTTP debug: Returned web page data is : <html><head><title>Document Error: Data follows</title></head>
<body><h2>Access Error: Data follows</h2>
<p>Form formMainZone_MainZoneXml.xml is not defined</p></body></html>

 <0x2deed680>
50 01/07/16 10:19:11.239 luup_log:473: DenonRxHTTP debug: 1 --> Connected <0x2deed680>
50 01/07/16 10:19:11.239 luup_log:473: DenonRxHTTP debug: Successful execution of getZoneStatus for zone 1: XML is <html><head><title>Document Error: Data follows</title></head>
<body><h2>Access Error: Data follows</h2>
<p>Form formMainZone_MainZoneXml.xml is not defined</p></body></html>

 <0x2deed680>
50 01/07/16 10:19:11.240 luup_log:473: DenonRxHTTP debug: zCmdStr: MainZone <0x2deed680>
50 01/07/16 10:19:11.240 luup_log:473: DenonRxHTTP debug: zVarStr: MainZone <0x2deed680>
50 01/07/16 10:19:11.240 luup_log:473: DenonRxHTTP debug: zNum: 1 <0x2deed680>
01 01/07/16 10:19:11.242 luup_log:473: DenonRxHTTP debug: Error: updateVariable was supplied with a nil value <0x2deed680>
01 01/07/16 10:19:11.242 luup_log:473: DenonRxHTTP debug: Error: updateVariable was supplied with a nil value <0x2deed680>
01 01/07/16 10:19:11.242 luup_log:473: DenonRxHTTP debug: Error: updateVariable was supplied with a nil value <0x2deed680>
« Last Edit: January 06, 2016, 10:39:32 pm by zoot1612 »

Offline a-lurker

  • Hero Member
  • *****
  • Posts: 872
  • Karma: +66/-8
Re: HTTP interface support
« Reply #6 on: January 07, 2016, 02:25:05 am »
Quote
My understanding is that this only works on 2011+ models (xx12 series).
Yes that's my understanding too. Even so, you seem to be getting responses, so it may be possible to make some use of them? Can you control your particular AVR with any Denon app or via a browser?

Offline zoot1612

  • Moderator
  • Hero Member
  • *****
  • Posts: 603
  • Karma: +21/-2
Re: HTTP interface support
« Reply #7 on: January 07, 2016, 07:57:08 pm »
@a-lurker
Yes, pages are a mixture of html and javascript so it could be done, but I am not sure it is worth the time.

Once I am in a position to get dump from a page I will attached it here so you can get an idea of the html layout.

Attached is the index.asp and MAINZONE/r_mainzone.asp responses. A bit of a mess if you ask me lots of nested GET's.

« Last Edit: January 08, 2016, 03:05:46 am by zoot1612 »