Alexa Skill question - presets for RangeController

I am trying to configure my speaker system to be controlled via the Alexa Skill.

Group OfficeSpeaker "Office Speakers"  {alexa="Endpoint.Speaker"}
Switch russound_rnetzone_1_2_status "Power" (OfficeSpeaker,AudioZonesGround) { alexa="PowerController.powerState", channel="russound:rnetzone:rnet:1_2:status" }
Dimmer russound_rnetzone_1_2_volume "Volume" (OfficeSpeaker,AudioZonesGround) { alexa="Speaker.volume", channel="russound:rnetzone:rnet:1_2:volume"}
Number russound_rnetzone_1_2_source "Source Input"   (OfficeSpeaker)  {alexa="RangeController.rangeValue" [friendlyNames="Input", supportedRange="1:6:1",presets="1=RADIO,2=ITUNES"] }

I am having issues with the last mapping, for _source. I know the channel mapping is missing, I just want to see the events to show without actually changing my speaker system until I get it working.

I am based in Canada, so my understanding from the Amazon documentation is I cannot use ModeController, which appears to be a good fit as well.

The issue I have is I want to say something like ‘Alexa set Office Speakers Input to Radio’, or ‘Alexa set Office Speakers Input to iTunes’. This corresponds to a numbered source input for the stereo, which can be deduced by looking at my mapping.

I can currently say ‘Alexa set office speakers to 1’, or ‘Alexa set office speakers to 2’, but not ‘Alexa set office speakers to Radio’ - I get response ‘office speakers doesn’t support that’

Any ideas much appreciated.

Amazon just extended the mode, range and toggle controllers to other regions. They have started to slowly update their documentation but it is still not 100% clear what is supported or not related to these interfaces. So currently, it is best to give it try than to rely on the documentation, especially since as you mentioned, the ModeController would be the best fit for what you are trying to achieve.

My guess here is there is an ambiguity between the numbered speaker volume and range capabilities. This might go away when you switch to a mode controller. Anyway, it always best to include the controller defined friendly name when requesting a command.

Hi Jeremy, thanks for the reply.

I’m not really getting to a point where I can set up my russound speakers to be controlled by Alexa in a fashion I would expect.

Group OfficeSpeaker "Office Speakers"  {alexa="Endpoint.Speaker"}
Number russound_rnetzone_1_2_source "Source"   (OfficeSpeaker)  {alexa="RangeController.rangeValue" [friendlyNames="Input", supportedRange="1:6:1",presets="1=RADIO,2=ITUNES"],channel="russound:rnetzone:rnet:1_2:source"}

Something that doesn’t make sense is if I say Alexa set Input for Office Speakers to Radio. “Alexa responds I didn’t find anything called Office Speakers that could play music.”

I’m thinking Alexa is inferring from the word Radio that I need a music playing device, instead of just looking at the Alexa metadata I have set up in the items file. I would have expected the Endpoint.Speaker would have suggested that the item could play music to Alexa as well. Maybe I am running into some impedance mismatch with calling a zone within my russound audio device a speaker as it has attributes such as source, which the Alexa documentation doesn’t overtly support for a speaker.

Would there be anyway to for us to retrieve the Alexa internal representation for the smart devices? Then we could compare that to what we would expect? I have trace turned on for the org.openhab.io.openhabcloud, but I am not seeing all the info for the devices on discovery, but maybe that is all done in the myopenhab code.

So I ran additional tests since my last reply on this thread, as other users had issues using these controllers in other regions. Unfortunately, these aren’t available as of yet even though Amazon has updated their documentation. This is the reason you are getting these errors. You can follow this issues to get additional information.

You should be able to use this link to get a JSON representation of the smarthome devices linked on your Alexa’s account.

Unfortunately, the logs are only happening at the skill lambda function level. So, you would need to deploy your own private skill and set debug level to do additional troubleshooting.

Jeremy,

thanks for looking into this, and your work on this. I will try and deploy the skill myself and poke around a bit.

:+1:

Keep in mind that the limitation with RangeController is on the Amazon side. There isn’t much that can be done with the skill at the moment until they open the functionality to other locales.