Tester(s) wanted: new denonavr component

I just stumbled on this as I was researching how to control my Denon volume using Alexa. Is there a way to raise and lower the volume by increments? For example if the volume is at 30 and it would step up by 5? Would I have to create a template switch and automation?

I have an AVR-X2000 and willing to help in any way possible. The primary functions work great so far, and displaying the custom input labels is a nice touch. Any chance of having separate volume, input and power selectors for Zone 2? If I’m understanding the class correctly, it looks like it’s hardcoded for Zone 1 at the moment.

I just started testing this component with my AVR-X1100W, and so far its working pretty well. I did have to make one modification because I was getting this error on the Bluetooth input:

Traceback (most recent call last):
  File "C:\Python34\lib\asyncio\tasks.py", line 239, in _step
    result = coro.send(None)
  File "C:\Python34\lib\site-packages\homeassistant\helpers\entity_component.py", line 335, in _async_process_entity
    new_entity, self, update_before_add=update_before_add
  File "C:\Python34\lib\site-packages\homeassistant\helpers\entity_component.py", line 204, in async_add_entity
    yield from entity.async_update_ha_state()
  File "C:\Python34\lib\site-packages\homeassistant\helpers\entity.py", line 224, in async_update_ha_state
    attr = self.state_attributes or {}
  File "C:\Python34\lib\site-packages\homeassistant\components\media_player\__init__.py", line 681, in state_attributes
    in ATTR_TO_PROPERTY if getattr(self, attr) is not None
  File "C:\Python34\lib\site-packages\homeassistant\components\media_player\__init__.py", line 681, in <dictcomp>
    in ATTR_TO_PROPERTY if getattr(self, attr) is not None
  File "C:\Users\brg46_000\AppData\Roaming\.homeassistant\custom_components\media_player\denonavr.py", line 135, in media_title
    return self.denon.nowPlaying["ARTIST"] + ": " + self.denon.nowPlaying["SONG"]
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'

This was how I fixed it:

@property
def media_title(self):
	if self.denon.input == "Bluetooth":
		return self.denon.nowPlaying["INPUT"]
	elif self.denon.nowPlaying["SONG"] == None:
		return self.denon.nowPlaying["INPUT"]
	else:
		return self.denon.nowPlaying["ARTIST"] + ": " + self.denon.nowPlaying["SONG"]

Hope this helps

I just installed your component. I’m trying it on a Denon AVR-2113, connected via LAN cable.

Turning on/off works as well as switching most sources, except for FM (Tuner), CBL/SAT, NETWORK, AUX. Also, setting the volume doesn’t work. I’ll investigate further.

@subutux What i see is, it is only working with the pre configured sources

self._source_list = {'TV': 'SITV', 'Tuner': 'SITUNER',
                             'Internet Radio': 'SIIRP', 'Favorites': 'SIFVP'}

Would be great if we could add our own source config like we add the name and host. So that only if nothing is added the pre configured source list shows up, else our list.

It looks like you only use the name and host from config

__init__(self, name, host):

This is dead, in favour if the recently added denonavr component https://home-assistant.io/components/media_player.denon/ (scroll down) Thanks everyone!

Added a Feature Request for Zone 2 support for denonavr component. Would appreciate the votes.

Hows this going? I’m trying to get the denonavr component working but I’m getting…

2017-06-03 09:16:38 ERROR (Thread-10) [DenonAVR] Missing status information from XML for: FriendlyName

I have an AVR 1912. Searching for that error hasn’t been much help.

I tried simplifying things and running the client by itself but I think I’m inputting the command wrong.

$ python3 denonavr-cli.py  --host x.x.x.x  'cmd0=PutNetAudioCommand/CurDown'
Traceback (most recent call last):
  File "denonavr-cli.py", line 12, in <module>
    main()
  File "/tmp/p/denonavr/denonavr/cli.py", line 12, in main
    MAINZONE=Denon.Connect(args.host,args.zone)
  File "/tmp/p/denonavr/denonavr/denon.py", line 30, in Connect
    return Zone(ip, zone)
  File "/tmp/p/denonavr/denonavr/denon.py", line 64, in __init__
    self.updateInputs()
  File "/tmp/p/denonavr/denonavr/denon.py", line 131, in updateInputs
    tree.findall('SourceDelete')[0]):
IndexError: list index out of range
$

I got past this error by specifying a name in the component config. The docs say it’s optional. Now to figure out how to send commands to it.

I have a 4310ci. I get:

[DenonAVR] Missing status information from XML of Main for: MasterVolume, InputFuncSelect, Mute, Power

Nice job! But I can’t get Zone 2 to appear.

EDIT: Nevermind, I upgraded HA to the latest and it’s working now. I assume the version I was running previously didn’t have the zoning improvement.

Hi,

I’ve a Denon AVR 3312 and I’m trying to make it work.

Forst of all, as it’s not WiFi enabled, I use an access point and the AVR isn’t detected every time. This is a network issue, the component can’t do anything on that.

But, when the connection is made (HA sees Denon as “home”), there are things I can do randomly : volume and input select seem to work every time, but play/pause/next/previous don’t ? Sometimes, play/next/previous even allow me to navigate in the NET menu, acting as the remote.

Is there any log or XML from the amplifier that you would need ?

And also, is there any way that the component could interact with the AVR, somehow the same way as the web interface does : display the play list, let the user choose a track, navigate through folders on the USB device or on DLNA…

See : Tester(s) wanted: new denonavr component

Thanks,

I’ve seen that there are 2 “denon” standard components, denon and denonavr. I guessed the denonavr was more suitable for my AVR 3312 ?
BEsides the “denon.py” component using the telnet connection, which seems to add more constraints.

I’ll give it a try

I’ve made a test and I found a bug, or at least the returned sources from the AVR 3312 gives an error.
I’ll open a new thread as it’s not the same component…

then remains the question of “which one to use” :wink:

I have a Denon 4308A AVR and I got this error

Missing status information from XML of Main for: InputFuncSelect, Mute, MasterVolume, Power

How could this be fixed?

I often get a timeout when restarting home assistant, even though I set the timeout value really high. The problem is that it doesn’t retry and the receiver just never gets added…

I have same AVR and Issue

Hi
It is still tested this module ?
How i can install this and also start test ?