VolumeStep not recognized by Alexa

Hi everyone,
I have an issue with controlling the volume of a speaker. Alexa does not recognize the command “VolumeStep”. I have full control over the speaker for all parameters except the volume. For tests, I used “VolumeLevel”, which I can control via voice commands. However, I need to use the VolumeStep command, but I can not get it work. Alexa gives me the error message “Dieser Befehl funktioniert für das Gerät Lautsprecher nicht”.
I have this problem with OpenHAB 3.3 and OpenHAB 3.4

Here is my code:
Group Lautsprecher “Lautsprecher” {alexa=“Speaker”}
String AlexaLautsprecherVolumeS “Volume” (Lautsprecher) {alexa=“VolumeStep” [VOLUME_UP=“VOLUP”, VOLUME_DOWN=“VOLDOWN”] }
Switch AlexaLautsprecherPower “Power” (Lautsprecher) {alexa=“PowerState”}
String Har_Wintergarten_ButtonPress “Button press” (Lautsprecher) {channel=“harmonyhub:hub:Harmony_Wintergarten:buttonPress”, alexa=“ChannelStep” [CHANNEL_UP=“Channel Up”, CHANNEL_DOWN=“Channel Down”]}
Switch AlexaLautsprecherMute “Mute” (Lautsprecher) {alexa=“MuteState”}
//Number AlexaLautsprecherVolume “Lautstaerke” (Lautsprecher) {alexa=“VolumeLevel” }

Thanks, Jens

What is the voice command you are using to control the VolumeStep ability? The Alexa metadata configuration you provided looks good to me.

Hi Jens,
did you solve your problem in the meantime?
I have one question: where and how are the commands “VOLUP” and “VOLDOWN” defined?
Best regards,
Jörg

Hi Jeremy,
thanks for your reply and sorry for my late response.
I was also thinking that I used the wrong commands. However, I tried all different combinations that I could think of. I used commands like:
“Alexa, Lautsprecher lauter” - this changed the volume of the Alexa device
“Alexa, sag Lautsprecher lauter” - this is the command I expected to work
“Alexa, sag Lautsprecher Volume Up” - I tried English - just in case some language settings were mixed up
“Alexa, sag Lautsprecher increase Volume”

At the end, I gave up and used the following command:
“Number AlexaLautsprecherVolume “Lautstaerke” (Lautsprecher) {alexa=“VolumeLevel” }”

Fortunately, it is possible to set the volume of Alexa from Openhab with the following command:
“AlexaLautsprecherVolume.postUpdate(50)”
This allows me to continuously use the “Lautsprecher leiser” command to control the volume of my device.
Jens

Hi Jörg,
yes, I solved the problem in the meantime with the above mentioned workaround.

I did not define VOLUP and VOLDOWN. Maybe I don’t understand the concept correctly. My understanding is that with the string AlexaLautsprecherVolumeS will get the value VOLDOWN whenever Alexa receives the volume down voice command.
This at least worked for channel up and channel down.
Do I need to define VOLUP and VOLDOWN? If so, how can I do that?
Thanks and best regards,
Jens

Have you tried to translate the utterance examples in the documentation for VolumeStep? You need to stay as close as possible to how the requests are formulated in English. It’s unfortunate that Amazon doesn’t provide much examples in other languages.

Also, I noticed that you called your endpoint “speaker”. In some cases, this is too generic and can overlap with Alexa native functions. I would recommend to rename your device with a more specific name.

If you intend to adjust the volume in incremental discrete steps using VolumeStep, the metadata parameters VOLUP and VOLDOWN must be defined otherwise the capability will be ignored. Another important point is that you can’t have VolumeLevel and VolumeStep configured under the same endpoint. Only one or the other will be considered depending on the order the group endpoint configuration is parsed. So, make sure to remove VolumeLevel if you want to use VolumeStep and trigger an Alexa discovery every time you are making a configuration change.

Hi Jeremy,
thanks again for your quick reply.
Yes, I tried many different translations because I was thinking that this is the root cause of my problem. I also changed the name “Lautsprecher” to another name, also without success.
I believe I found my mistake: I did not define VOLUP and VOLDOWN. However, I have no idea how to do that. Do I need to do this with a .map file? Can you help me with an example?
Best regards,
Jens

The way you defined it in your original post is fine but make sure to remove the VolumeLevel configuration from your group endpoint. Don’t forget to trigger an Alexa discovery after making a configuration change.

Thanks, Jeremy