Heos (Denon) support

This is a known issue. And to be honest I don’t know where the problem is.
As a workaround you can install the hue binding and then also the HEOS binding starts. It seems that the hue binding is able to load the required components.


Thanks, it’s work after HUE install.

Thanks! It works fine now!

My items:

Switch Heos_EV_FitnessruimteBridge_FitnessPlayer "Denon Fitness Player Activate" <text> (gEV_Fitnesssruimte, gDenonAVR) {channel="heos:bridge:22bfc68e-5082-6a13-268c-a7770bd6c29a:P872704895"}
Switch Heos_EV_FitnessruimteBridge_Favorite1 "Denon Fitness Favorite (Topradio)" <text> (gEV_Fitnesssruimte, gDenonAVR) {channel="heos:bridge:22bfc68e-5082-6a13-268c-a7770bd6c29a:s81078"}

Part of my rule:

sendCommand(Heos_EV_FitnessruimteBridge_FitnessPlayer, ON)
sendCommand(Heos_EV_FitnessruimteBridge_Favorite1, ON)


nice job
did you try also to get working with apple home kit ?
some command like input change ?


I haven’t tried it. But it shouldn’t be no problem.
The way I would do it is creating a new item which I would map to a HomeKit item (switchable) and give it the name you want.
I think you need a rule to map the specific inputs to an HEOS action.

Just used your binding in my Openhab setup. Works great until now, thank you!.
As I’m currently too stubborn to use openhabian / paperui and have to do many things by hand I also ran into this issue. The solution/work-around I found online https://community.openhab.org/t/creating-a-binding-with-upnp-discovery/37839 is the following.
It seems that as long as bindings are placed in the addon folder and are not fully merged with the Openhab database, dependencies are not automatically installed.
By opening the karaf console and adding the dependency (UPNP) yourself it works. Command to do so is: feature:install esh-io-transport-upnp
Unfortunately each user to do a clean install has to do so (unless other bindings are installed that already have this dependency installed, like HUE). I did not find any other ways to have it installed automatically.
It seems that, until the binding gets fully included in the openhab installation, people will be bound by using either this karaf method or installing other UPNP-dependent bindings.

1 Like


Thank you for that input. I thought the same. So currently the way you do it would be the right way until the binding is merged into the OpenHab branch.

Thank you very much.


Is it possible to explain how PlayUrl works ?
For instance, use one of the Player to play a sound (a MP3 somewhere on the LAN, accessible through HTTP, let’s say http://mysoundserver/welcome.mp3) when an item state changes (with a rule).


I’m testing this binding since december and It works nearly perfectly.
I just can notice that playing a sound from console (smarthome:audio play doorbell.mp3 for example) doesn’t work.
Even when the heos speaker is configured as default sink in system>audio (PaperUI) and callback URL defined as localhost in binding.
Altought the same config works for sonos speakers.
Any idea?


sorry for the long time without any new release and information about the state of the binding. It was some kind of time issue… :smile: :sunny:
But today I released a new version with several improvements and new features. The details are described within the release notes.
The binding can be downloaded here:

Unfortunately I was not able to merge the binding to the latest release 2.3.0 of OpenHab. But I promises I will do my best to get it merged into the official OpenHab version as fast as possible.
So please feel free to give feedback about the binding and possible issues or ideas.



The PlayURL channel accepts a string with the URL where the file is located. The way I do it is to render a Switch or Selection within the sitemap and mapping the different URLs. Something like this

Selection item=HeosKitchen_PlayURL 	label="Radio" 	mappings=["http://address/xyz.mp3" =" My Favorite Song", "http://address2/xyz.mp3" =" My Favorite Song 2", ...]

With a rule just send the URL to the item matched to the PlayURL channel:
rule "Example"
Item xy received command
sendCommand(HeosKitchen_PlayURL, "http://address/xyz.mp3")


I updated the AudioSink function with the latest version. Can you please check if it works for you now?


Hi @Wire82
seems that discovery is not working. So I’ll try to add bridge manually.
Did you notice this issue?

Ok, now Audiosink is working but in some condition:

  • callback url should be specified like 192.168.X.X:8080, localhost is not working.
  • An error remain in heos app: “unable to play media, try again later”
  • After playing the current playlist (if heos was playing something) remains paused, do you think there is a way to restore the status before Audiosink command?
  • Is it possible to specify notification sound volume for heos?


Thank you for the feedback. It seems that Denon changed something with their representation as an Upnp device with the latest firmware update. I updated the device discovery class and it should work again. Please use the latest release:

I will update the description for AudioSink and remove the localhost. Thanks for the feedback.
Notification sound volume should normally included. But to be honest I haven’t much time to test it in detail because I’m not using it.
How do you change the notification sound volume?


Yes, discovery is working again. It is just required to install other binding with upnp (like sonos one).
It is possible to set the volume, but I can’t find “notificationVolume” in channels. This one is only dedicated in controlling volume for notifications (as in sonos binding for exemple). And notificationSound is played at notificationVolume, and when finished, the volume is restored to it latest value. This way of working is quite convenient.
thanks for your support.

Problem still exists but the workaround with the HUE-Binding worked! :grinning:
Updated today to the latest version… But for the first install (0.0.2) HUE wasn´t needed.

Since i updated today, i discovered that i wasn´t able to switch on/off my HEOS via the Dummy-Switch anymore.

I had to change my rule (Play (also ON) / Pause (also OFF) )… only PLAY/PAUSE is working for
me instead of ON/OFF.



Is it possible to make a virtual switches with TuneIn radio stations
to switch the stations via Alexa?

If so, how can i realize that?


Yes you can using rules. You have to select the Heos and then select the favourite.

I have this in my sitemap to select the required input:

Selection label="Living Input" item=Heos_Living_Select_Input &#160;mappings=[Stop=Stop,AUX="AUX (TV)",MNM="MNM",MNM_Hits="MNM Hits",StuBru="StuBru",Radio_1="Radio 1",Radio_2="Radio 2",Klara="Klara",Relax_1="Relax 1",Relax_2="Relax 2",Relax_3="Relax 3"]

Corresponding item:

String Heos_Living_Select_Input "Living: Kies input" (G_Heos,G_Heos_Living)

This triggers a rule:

rule “Heos_Living_Select_Input”
when Item Heos_Living_Select_Input received command

} else if ( Heos_Living_Select_Input.state == ‘MNM_Hits’ ) {
sendCommand(Heos_Living_Volume, 0) // Mute volume before switching
sendCommand(Heos_Living_Select, ON) // Select Heos Living
sendCommand(Heos_Favorite_MNM_Hits, ON) // Select Favorite MNM Hits
sendCommand(Heos_Living_Volume, 10) // Set volume
sendCommand(Heos_Living_Select, OFF) // Deselect Heos Living

The most important item is ‘Heos_Favorite_MNM_Hits’:

Switch Heos_Favorite_MNM_Hits “Favorite: MNM Hits” {channel=“heos:bridge:14b824d6-361a-1fce-0080-0005cd546840:s69137”}

And you also need an item to select the Heos:

Switch Heos_Living_Select “Select Living” {channel=“heos:bridge:14b824d6-361a-1fce-0080-0005cd546840:P1640960381”}

The channel names can be found in the logs or the inbox. The favourites will be detected when you enter your username/password in openhab.
You also need to only add 1 bridge if you have multiple Heos boxes in your network. Each box can be a bridge, but only one is needed.

I hope this helps.


1 Like