Does anyone have this working over a serial to LAN adapter?
I donāt have any personal experience to offer, but I can point you in a good direction. Bajansenās library on github uses pyserial to establish serial connections, which allows you to supply a URL as the serial port. The formats supported are documented here:
https://pyserial.readthedocs.io/en/latest/url_handlers.html#urls
If you want to guess whether a particular adapter works, look for peopleās experiences with it and pyserial.
About to try this out. hopefully still working⦠@virtualbitzz - let me know how you got on
Thanks lmk how it goes. Still interested in doing this. I almost spent $700 on a new receiver the other day because of the lack of IP control on my current receiver from 2012. Basic power automation is the only major inconvenience with this thing, everything else works great.
I was able to get this working again with my Denon 2310ci receiver with a custom component after support was removed from Home Assistant. Iāve been meaning to create a public Github repository for awhile and your message gave me a butt kick. Hopefully it will work for you. I did have to use a particular type of usb to serial adapter (FTDI) to get it all to work. GitHub - doucga/denon232
just linked it up. works!!! Thanks to the authors for this integration. @PixelAlarm @bajansen
I only have two controls (per each zone) i)turn on/off; and iiā) volume control.
Not that i need it yet (if ever), but wonder if this integration also allows changing sources?
thanks - will also check this out. trying to, but when i try to add the (@doucga ) intergration, i get the below error:
Error
Config flow could not be loaded: {āmessageā:āInvalid handler specifiedā}
should i try to add the intergration via with webgui/ settings>> intergrations etc or no need.
Also to confirm the name of the folder within the Custom Components folder is denon232-main
is that correct?
You wonāt be able to install it through the integrations page of Home Assistant. Iām not smart enough to make that happen.
This procedure should work: from the repository, download the zip file and unzip it somewhere on your system so you can grab the unzipped files later. The directory you get will be called denon232-main. Github added the"-main" part. You could rename the directory to denon232 if you want. Thatās what mine is. Set up the āSamba Shareā addon in Home Assistant. Once thatās done, if your on a Windows machine elsewhere on the network type ā\\(IP of your Home Assistant)ā in File Explorer (note the double backslashes in front of the ip). That should get you to your Home Assistant file system. From there find the config/custom_components directory of your Home Assistant install. Then copy the directory you got from the Github repo (denon232 if you renamed it) over to the config/custom_components folder in Home Assistant. Add the configuration yaml settings to your configuration.yaml file with a unique name for the media player and restart Home Assistant. Then if you go to Developer Tools and filter for your unique name it should show up. Mineās called āReceiverā (not that unique I know
)
Let us know how you do!
Garry
Hi Garry,
Thank you! Very clear instructions. Managed to get it up and running So far i see something similar to your screenshot above. how do I add control for Zone2? Thanks
I was afraid you might ask me that.
I donāt believe the media_player component for Home Assistant has functionality for zones unfortunately. I actually gave up trying to get Zone 2 stuff working with the custom component so I think thereās left over code in there from my attempts. I ended up controlling Zone 2 stuff with an IR blaster instead. Having the media player for the main part was most important to me anyway because of the feedback. I have the receiver statusā: power, mute, input selected and volume settings displayed in my dashboard.
agreed - thatās fine. i could combine and use the two integrations to get the best of both worlds!
Could zone2 be added as a seperate media_player entity?
Thatās probably a good idea. I never tried that myself. My Python skills are very rudimentary so I didnāt go any further with it.
well done for getting this up!
i just got my denon second hand. got two (AVR 2307, and AVR-2808) I have an ir blaster, but neither came with remotes. i wonder if you might be able to share the ir codes, or where i can find the IR codes?
@virtualbitzz , @simondotau , @bajansen @Sp4rc , @PixelAlarm , @stonith , will open the question to you too, if you are able to help. Thanks
Thanks
oh no! i think i broke the integration by upgrading to 2025.05
I havenāt upgraded yet. Maybe Iāll have a chance on the weekend and see if mine breaks too.
@doucga turns out it wasnāt yhe update, dev path switch from /dev/ttyUSB0 to /dev/ttyUSB1.
How are you guys handling it when this happens? surely there must be a way for me not to have to delete and re-add the integration each time?
This happens to me occasionally as well. Iām running HAOS in a VM on Proxmox. I find I have to go and remap the USB passthrough once in a while for whatever reason. Iām using a 4 port USB serial device. My Denon is on the second port, port 1 of the device. This is my Proxmox USB hardware setting for the first 2 ports from my notes:
usb0: host=1-3 <-Insteon FT232R USB UART
usb1: host=1-4.1 <-Denon
But the first part of the number can change on occasion. For example, the above is from my notes on the topic but when I look at current settings in Proxmox they are set to:
usb1: host=2-3.1 <-Denon
After the change and restart of the VM things usually line up and start working again.
Donāt know if that helps at all. I know this can be frustrating.
Garry
What youāre experiencing is true for all USB-attached devices using the usb serial path. Basically, dev/tty is subject to change on restart, but /dev/serial/by-id/ isnāt.
Itās extremely common for people using serial adapters for zigbee, which is why the docs for ZHA state:
" Most devices need at the very least the serial device path, like /dev/ttyUSB0 , but it is recommended to use device path from /dev/serial/by-id folder, e.g., /dev/serial/by-id/usb-Silicon_Labs_HubZ_Smart_Home_Controller_C0F003D3-if01-port0 A list of available device paths can be found in Settings > System > Hardware > dot menu > All Hardware ."
Maybe try checking if switching to /dev/serial/by-id works with the integration youāre using (it should). If that doesnāt work, it might be time to file an issue on that github page.
thanks both - very helpful. it worked!

