Alexa Smart Home Skill Generic Attribute "RangeValue" "supportedRange" is not discoverable

I have four Alexa Smart Home Skill Generic Attribute ITEM configurations per below. The 1st three are "Modes" / "supportedModes" and are discoverable by Alexa; the 4th is "RangeValue" / "supportedRange" and is NOT discoverable. For this I am expecting to set the Hot Tub Temperature Setpoint on the range 55 to 103, and to utter: “Alexa, set the <Hot Tub Temperature> <Setpoint> to <100>” or similar.

The documentation reference is openHAB Skill For Amazon Alexa | openHAB

supportedRange=<range>

  • range formatted as <minValue>:<maxValue>:<precision> (e.g. supportedRange="0:100:1")

Something very basic in the configuration must wrong but I don’t see it.
Any help will be appreciated.

Number OHC_System_Health            "Security System Equipment [%d]"   (gControl){alexa="Mode" [capabilityNames="Restart", nonControllable="False", supportedModes="1=Unlock,3=Lock,4=Network,5=WatchMan,6=OpenHAB,7=Shutdown"],  channel="mqtt:topic:hsbroker:WatchManThing:WMC35"}

Number OHC_Master_Control           "Security System Control [%d]"      (gControl) {alexa="Mode" [capabilityNames="Mode", nonControllable="False", supportedModes="1=OFF,2=Pause,3=ON,6=Lights"], channel="mqtt:topic:hsbroker:WatchManThing:WMC39"}

Number OHC_HotTub                   "Hot Tub Control [%d]"      (gControl) {alexa="Mode" [capabilityNames="Mode", nonControllable="False", supportedModes="1=OFF,2=Cold,3=Warm,4=Hot:ON,5=Hi,6=Hold"], channel="mqtt:topic:hsbroker:WatchManThing:WMC29"}

Number OHC_HotTub_SP				"Hot Tub Temperature [%.1f °F]"				{alexa="RangeValue" [capabilityNames="Setpoint", nonControllable="False", supportedRange="55:103:1"]}

Based on the configuration you provided, it should work. Have you made sure to trigger Alexa discovery after each Alexa metadata configuration changes you made on the OH side?

As far as recommendation, why don’t you use the TargetTemperature attribute instead? Also, you should roll up all the functionalities for your hot tub into one group endpoint. You can use the PowerState attribute to support turn on/off utterances.

As a side note, no need to specify the nonControllable metadata parameter since it defaults to false

Items

Group gHotTub "Hot Tub" {alexa="Other"}

Number OHC_HotTub "Hot Tub Control [%d]" (gHotTub) {alexa="PowerState,Mode" [OFF=1, ON=4, capabilityNames="@Setting.Mode", supportedModes="1=OFF,2=Cold,3=Warm,4=Hot:ON,5=Hi,6=Hold"]}

Number OHC_HotTub_SP "Hot Tub Temperature [%.1f °F]" (gHotTub) {alexa="TargetTemperature" [setpointRange="55:103"]}

Utterances
Alexa, turn on the hot tub
Alexa, turn off the hot tub
Alexa, set the hot tub to warm
Alexa, set the hot tub mode to off
Alexa, what’s the hot tub mode?
Alexa, set the hot tub to 100
Alexa, set the hot tub target temperature to 95
Alexa, what’s the hot tub target temperature?

Jeremy,

Thanks for your help again. :slight_smile:

I don’t understand why but I was able to get my posted configuration working by removing nonControllable="False" from the OHC_HotTub_SP Item configuration.

I like your suggestion, implemented it, and really like the result. I did need to add nonControllable="False" to the OHC_HotTub Item configuration because of the mqtt channel binding.

I also added a temperature monitor, the OHS_HotTub_Temp Item

Here is what I now have configured:

Group gHotTub "Hot Tub" {alexa="Other"}
Number OHC_HotTub       "Hot Tub Control [%d]"          (gControl, gHotTub) {alexa="PowerState, Mode" [OFF=1, ON=4, capabilityNames="@Setting.Mode", supportedModes="1=OFF,2=Cold,3=Warm,4=Hot:ON,5=Hi,6=Hold", nonControllable="False"], channel="mqtt:topic:hsbroker:WatchManThing:WMC29"}
Number OHS_HotTub_Temp  "Hot Tub Reading [%.1f °F]"     (          gHotTub) {alexa="RangeValue" [capabilityNames="Temperature", supportedRange="55:103:1"], channel="mqtt:topic:hsbroker:WatchManThing:WMSHTT"}
Number OHC_HotTub_SP    "Hot Tub Temperature [%.1f °F]" (          gHotTub) {alexa="TargetTemperature" [capabilityNames="Setpoint", setpointRange="55:103"]}
setpointRange="55:103"]}

Not all the utternaces you suggest work. It appears “set” is a key word, and “turn” is not although the item configuration suggests it should work ???

Alexa, turn on the hot tub → The hot tub doesn’t support that
Alexa, turn the hot tub on → The hot tub doesn’t support that
Alexa, set the hot tub to on → This works
Alexa, set the hot tub to warm → This works
Alexa, set the hot tub to 100 → The hot tub doesn’t support that
Alexa, set the hot tub target temperature to 95 → This works
Alexa, what’s the hot tub target temperature? → This works
Alexa, what’s the hot tub temperature? → This works

Is it possible to change the Item labels such that I can us more natural utternaces such as:
Alexa, turn on the hot tub
Alexa, turn the hot tub on
Alexa, what is the hot tub temperature? → This currently works !
Alexa, what is the hot tub setpoint?
Alexa, set the hot tub setpoint to 101 degrees? → This currently works !

I missed that part again.

My mistake, when configuring generic attributes such as Mode, the actionMappings metadata parameter should be used in this case.

Number OHC_HotTub       "Hot Tub Control [%d]"          (gControl, gHotTub) {alexa="Mode" [capabilityNames="@Setting.Mode", supportedModes="1=OFF,2=Cold,3=Warm,4=Hot:ON,5=Hi,6=Hold", actionMappings="TurnOff=1,TurnOn=4", nonControllable="False"], channel="mqtt:topic:hsbroker:WatchManThing:WMC29"}

Make sure to trigger a discovery on the Alexa side after saving your configuration changes.

This one may not work. Maybe if you specify the temperature unit, it might. Bottom line, this will depend on how it is interpreted on the Alexa side. Short-handled utterances don’t always work.