Alexa Smart Home Skill V3 is now live!

Have you tried to add a space to your group label? ("Living room Thermostat"). If that doesn’t fix your problem, you can remove the functionality from the label ("Living room")

Good point.

1 Like
4 Likes

Well I must confess as all my other devices are known as Livingroom I did not hold out much hope for the label change. To show how finicky these labels can be I have provided some examples and PASS/FAIL them.

  • Livingroom Thermostat - Fail
  • Diningroom Thermostat - Pass
  • Bedroom Thermostat - Pass
  • Hallway Theromstat - Fail
  • Living room thermostat - Fail
  • Living room - Pass
  • Hallway - Pass

Thanks once again.
Paul

Related to users having image items or a very high number of items in their configuration. We have just released a change to the live skill improving the discovery request performance.

Hopefully that will narrow down the number of users still not able to use the v3 skill.

1 Like

First of all, thank you for all of the hard work on this. I’m happy to see that I’m getting started with OpenHab just after such a major improvement.

I had a minor comment on the documentation – I believe the documentation reverses the concept of cool and heat for ThermostatController.upperSetpoint and .lowerSetpoint.

ThermostatController.upperSetpoint: Items that represent a upper or HEAT setpoint for a thermostat…

In my Alexa app, I see the “cool to” temp shown as the item linked as upperSetpoint and vice versa – intuitively, this also makes sense as if you want the temp to stay within a certain range, you would cool at the upper temp and heat at the lower temp.

Secondly, I am a little confused on what I can say to the thermostat controller. Here is my current test setup:

Group     gThermostat       "Thermostat"               (gHome)        {alexa="Endpoint.Thermostat"}
Number    ThermostatTemp    "Temperature [%.1f F]"     (gThermostat)  {alexa="TemperatureSensor.temperature" [scale="Fahrenheit"]}
Number    CoolSetpoint      "Cool Setpoint [%.0f F]"   (gThermostat)  {alexa="ThermostatController.upperSetpoint"  [scale="Fahrenheit"]}
Number    HeatSetpoint      "Heat Setpoint [%.0f F]"   (gThermostat)  {alexa="ThermostatController.lowerSetpoint"  [scale="Fahrenheit"]}
Number    ThermostatMode    "Mode [%s]"                (gThermostat)  {alexa="ThermostatController.thermostatMode" [OFF=0,HEAT=1,COOL=2,AUTO=3]}
Number    ThermostatFan     "Fan Mode [%s]"            (gThermostat)  {alexa="ModeController.mode" [supportedModes="0=Auto,1=Auto Circulate,2=On"]}

My thermostat is a Radio Thermostat CT50 that I am driving via HTTP requests in Node-Red. I am using OH 2.5 snapshot. What works:

  • Alexa can see the thermostat and tell me ThermostatTemp
  • “Alexa, what is the thermostat fan mode” → “The thermostat’s fan mode is…”
  • The thermostat mode and heat/cool setpoints show correctly in the Alexa Android app.
  • Everything seems to work as expected when controlling the thermostat from my OH sitemap.

What doesn’t seem to work:

  • Asking or telling Alexa to set the thermostat mode or any of the target temperatures
  • “Alexa, what is the thermostat mode” → “The thermostat’s fan mode is…” (tells me fan mode again)
  • “Alexa, what is the thermostat cool setpoint” → “Hmm, I don’t know that”
  • “Alexa, what is the thermostat target temperature?” → “The thermostat temperature is 72.5 degrees” (it says the actual temperature, not the set point - do I need to bind a dummy variable to ThermostatController.targetSetpoint and update it as the thermostat changes modes from COOL to HEAT and back?)

I’m probably doing something obviously wrong here, but I can’t figure out what. Any comments or ideas would be appreciated!

EDIT: Ha. “Alexa, set the thermostat to 73 degrees” sets the upper and lower setpoints to 74 and 72. Not my 100% desired behavior but it at least gives me a way to control temp for now.

  • “Alexa, what is the thermostat mode” → “The thermostat’s fan mode is…” (tells me fan mode again)

Having a ModeController.mode on a thermostat is not something we probably tested, i’m not sure how Alexa would respond to that as it seems to conflict with the “Mode” of the thermostat (ThermostatMode in your case). When using just the “ThermostatController.thermostatMode” , asking Alexa what the thermostat is set to will result in both the mode and target temperature being reported if the thermostat is ON (auto, heat, cool), or will just report that its off if set to OFF (no temperature). We don’t have any control over this, the only thing we can do is send commends and reports values when Alexa asks us to.

  • “Alexa, what is the thermostat cool setpoint” → “Hmm, I don’t know that”

Requesting thermostat set points like this do not seem to be supported by Alexa,

Alexa, set the thermostat to 73 degrees” sets the upper and lower setpoints to 74 and 72. Not my 100% desired behavior but it at least gives me a way to control temp for now.

From our Documentation:

comfortRange=<number>. When dual setpoints (upper, lower) are used this is the amount over the requested temperature when requesting Alexa to set or adjust the current temperature. Defaults to comfortRange=1 if using Fahrenheit and comfortRange=.5 if using Celsius. Ignored if a targetSetpoint is included in the thermostat group.

@heycmo Based on my previous testing, there are some issues around utterances when having both of these capabilities setup in the same endpoint group causing some conflicts. I noticed that using the term “mode” would always point to the ModeController device, or having some of the supported modes named the same between the two (e.g. Auto) would always point to the thermostat mode.

I think that Amazon didn’t push the support for ModeController that far and their expectation seems to be to use that capability for all modes of a given device. My recommendation would be to either setup a separate endpoint for your fan mode or you could try to convert the thermostat mode to ModeController but you would loose some of the thermostat integration especially in the app.

As @digitaldan mentioned, the comfort range is used to define the setpoints spread based on a given target setpoint. Out of curiosity, what would be your expected behavior when making that request?

hi, having some issues since v3 of the Skill.
i removed all my items on Amazon to rediscover my openhab items with the new metadata feature.
however i can’t get Amazon Alexa to discover any openhab items now.

what i did till now:

  • restart of openhab
  • remove. re-add and re-linked openhab Skill

running openhab on the last stable 2.4 version
my items look like this:

Group:Switch:OR(ON, OFF) H_Lamps_S "All Lights" <light>	(PR_All_OFF)    {alexa="Lighting"}
Dimmer S_BR_LIGHT_Ceiling_D "Bedroom Ceiling" (R_BR_LIGHT_D, R_BR_LIGHT, gLights)  	{channel="hue:0220:0017884e88f5:12:brightness", alexa="Lighting"}
Switch network_device_nas_switch "NAS" {alexa="Switchable"}

Based on the skill logs, I can see that your last discovery attempt was successful, while previous ones were timing out along with one of them failing due to the Echo Control binding known issue with 2.4 release.

Anyway, you should be able to see your devices in your Alexa account. You may have to refresh the device page.

the refresh of the page i already did, without any luck.

got it working, had to install the latest Echo Control binding Snapshot version

The Skill and the Echo Control Binding are two different things, they have nothing in common:

ok, but strangely its working after that. :thinking:

1 Like

This is due to the Echo Control binding packaged in the 2.4 release affecting the REST API service which the Alexa skill is dependent on.

1 Like

Setup freshly 2.5m2 recently,
followed the FAN from the example.

Group Fan “Fan” {alexa=“Endpoint.Other”}
Number Speed “Speed” (Fan) {channel=“mqtt:topic:7df5a6d8:CeilingFan”, alexa=“RangeController.rangeValue” [supportedRange=“0:3:1”,presets=“1=@Value.Minimum:@Value.Low:Lowest,2=@Value.Medium,3=@Value.Maximum:@Value.High:Highest”,friendlyNames=“@Setting.FanSpeed,Speed”]}
Switch Power “Power” (Fan) {channel=“mqtt:topic:7df5a6d8:CeilingFan_Light”, alexa=“ToggleController.toggleState” [friendlyNames=“@DeviceName.Fan”]}

The Speed works great, and turning “Fan Off” also,
however when i say 'Turn fan on" - i get fan doesnt support that…
seems odd considering that Off command works…

This is weird indeed. Can you try to update the power item to use the PowerController.powerState capability instead? Since you labelled the group endpoint as “Fan”, the toggle controller is not really necessary and probably causing some conflict on the Alexa side due to the same name.

Switch Power "Power" (Fan) {channel="mqtt:topic:7df5a6d8:CeilingFan_Light", alexa="PowerController.powerState"}

Before doing so, i just figure that if i say:

“Turn Off Fan” = “Fan doesnt support That”
“Turn On Fan” = Works

“turn Fan Off” = Works
“Turn Fan On” = “Fan doesnt support that”

Using powercontroller.powerstate works well

Sense the update to the skill I cant get any new devices to discover. Is there something I need to do to make new devices discoverable?

Are you just having an issue with discovery? Are you able to control your existing discovered devices?

Existing devices work fine. Any new items I add are not discovered.