Pioneer AVR integration (supporting config flow and asyncio)

Hey @crowbarz

I’m getting the same “AVR “192.168.0.106:8102” is already configured” after a reboot. Reinstalling it fixes it until the next reboot it seems.

Any tips? Pretty new to Home Assistant but will help where I can.

Cheers!

If it helps someone, got to pass the timeout from 2 to 10 and fixed issue that can’t find device.

Try increasing the timeout from 2 to 10.

Where is the timeout that needs to be changed?

How did you increase the timeout? I am having the same issue about the AVR already being configured.

Edit: To change the timeout open the const.py for the pioneer async custom component and change the timeout to 10s. Interestingly even though I thought I had the latest version of the component, my default timeout was 2s not the 5s on the Github file.

@JPA have a look at the instructions above, cannot confirm if this fixes the problem 100% but my AVR was available after making the timeout change and restarting.

2 Likes

Did you try updating “connection/command timeout” option in the UI? It’s the second option in the list. Alternatively the timeout setting if you configured the integration via YAML as documented in the GitHub README. It’s a bit easier than hacking the source.

I changed the default timeout from 2s to 5s a while ago, but just haven’t released a new version since that commit.

For some reason I didn’t find that setting when I was looking for it, I did just check right now it’s set to 10 seconds. Haven’t had an issue since

Dear @crowbarz !

First of all I would like to thanks a lot for your integration. I used the ‘official’ for a long time, never thought that there are better, but I found your solution some days ago, and I’m very happy with it. Really lot of thanks for it.

The only problem what I realised with it is the Google Assistant/Google Home exposed device_class, which with the official integration were good (with proper volume control), but with your is wrong. Currently with your integration the exposed domain is SETTOP (Set top box), while the proper should be AUDIO_VIDEO_RECEIVER (A/V receiver) based on the official documentation (Smart Home Device Types  |  Cloud-to-cloud  |  Google Home). Could you please embed a proper device_class into the corresponding ‘media_player’ entity?

If I check my TV on HA, I get the following:

If I check my Chromecast I get the same device type.

If I check my Google Home - Mini , I get the following:

But sadly when I check the media player of your integration there is no device_class what could be the problem behind the wrong exposed device domain.

Could you please define ‘A/V receiver’, or ‘amplifier’ based proper device_class for the integration entities?

Lot of thanks in advance, if it is possible, and you can do it.

If I’m right you can use the following device_class values:

Where the receiver is absolute perfect, and I really hope it could correct the corresponding Google Home exposed device domain also.

I’ve just forked and updated here if you would like to test?

Hi @11harveyj !

I made the change with ‘device customization’, but sadly Google Home does not handle ‘properly’ the ‘media players’ yet. With proper device class, Google Home handles the device really as AVR, but it handles AVRs just through voice commands without GUI/UI possibilities. It is not a big problem as my main goal is the ‘voice command’, but not perfect, and not totally comfy. We can use different device classes as ‘TV’ (for example), which could work but I don’t like such ‘hacked’ methods (as we can forget it in the future when the official solutions could already work) so I yet accepted the current state.

As there is no officially perfect method, until it I think everyone can use what she/he wants.

Anyway, thank you for your efforts, and wish you a Happy New Year!

1 Like

Yep, that’s the issue I have with Google Home too.

If you have a GH display (like the Nest for example) you can control the devices correctly.

I still think that the device_class should be set to receiver by default in the integration as that is the correct type for this device, but of course using the customisations.yaml you should be able to “override”.

I’ve got another branch open in that repo that will implement loads more features (video, tuner, speaker controls, sound modes etc.) but still requires lots of work.

1 Like

I totally agree with it as I also wrote the same, that I do not like ‘unofficial hacking methods’.

Thanks for your reply.

1 Like

Thank you very much for this integration.

I have a Pioneer VSX-923K receiver and some of the autodetected inputs are not working (they are not present on the receiver). I tried to customize the sources but those for zone_2 and zone_h are not changing. In the dashboard I see all the sources from the main zone.

My config is:

- platform: pioneer_async
  name: Pioneer AVR
  host: avr.cr.home.lan
  port: 23
  scan_interval: 60
  timeout: 5.0
  sources:
    "Wii U": "25"
    "HD1": "04"
    "PS4": "06"
    "VE1": "15"
    "PS3": "22"
    "HDMI5/MHL": "23"
    "Switch": "24"
    "XBOX360": "34"
    "Internet Radio": "38"
    "Media Server": "44"
    "Favourites": "45"
    "Ipod/USB": "17"
    "TV": "05"
    "CD": "01"
    "Tuner": "02"
    "Adapter Port": "33"
  params:
    ignore_volume_check: true
    zone_2_sources: ["04", "06", "15", "05", "01", "02", "33"]
    zone_h_sources: ["25", "04", "06", "15", "22", "23", "24", "34"]

Any idea why ?

Hi, thanks for logging the bug against aiopioneer in Zones custom inputs · Issue #10 · crowbarz/aiopioneer · GitHub , will continue the discussion there but the summary is that the HA integration needs to be updated to support those attributes.

The Google Home app seems to support interacting with receivers now :tada:

1 Like

Sadly in the last ~ 2 months with changing my home to IPv6 currently I can not use Google Assistant/Google Home for Home Assistant but I’m on the problem, and really hope that I will solve it ‘soon’.

Thanks for the report, I’m glad to hear that!!!

I’m using this with a VSX-823 and it works fine.
Question: I see that there is a service to set_fm_tuner_frequency and set_am_tuner_frequency, and a service to select the source of Tuner, but is there a service to select the band (AM/FM)?

That’s a good idea. I have added set_tuner_band and it should be available in the next release.

Thank you,
I’ll try it as soon as it’s available.