openhab / openhab-addons

Add-ons for openHAB
https://www.openhab.org/
Eclipse Public License 2.0
1.88k stars 3.59k forks source link

Thermostat works well in Google Home, but not with Alexa #5561

Closed Tobster77 closed 3 years ago

Tobster77 commented 5 years ago

I defined a thermostat.

//HomeKit syntax
Group Thermostat_Office "Heizung Büro" (Heating_Office) [ "Thermostat" ]
Number Current_Temperature_Office "Ist-Temperatur Büro [%.1f °C]" <Temperature> (Thermostat_Office, Temperatures) [ "CurrentTemperature" ] {channel="zwave:device:5fe6dd01:node3:sensor_temperature"}
Number Set_Point_Normal_Heating_Office "Solltemperatur Büro Normal [%.1f °C]" <Temperature> (Thermostat_Office) [ "TargetTemperature" ] {channel="zwave:device:5fe6dd01:node3:thermostat_setpoint_heating"}
String Homekit_HeatingCoolingMode_Office "Homekit Heizungsmodus Büro [%s]" (Thermostat_Office) [ "homekit:HeatingCoolingMode" ]

(Note, this is a dummy thermostat as I need to translate between the operation modes of my Eurotronics thermostat and the homekit:HeatingCoolingMode, but this is a different story. For the moment, the code above defines a complete thermostate group according to HomeKit rules).

I connected my OH server to myOpenHAB to use Amazon Echo and Google Home services. As you can see, the thermostat is exposed to them by HomeKit tags

This configuration works well, and if open the device in Google Home, I can see the current temperature, select the set point temperature and ask for the current temperature. This works both in the app and with voice commands. I can also switch the thermostat on (“heat” or “auto”) and off (“off”).

The same device is found in the Alexa app, but not fully functional. It is reconized as a Thermostat. Via voice, I can also choose a set temperature or ask for the current temperature. Still, I cannot choose a mode. When I say (in German) “Alexa, switch the heating off”, it responds "Heizung Büro does not support this”.

Also in the app, there seems to be an issue: I see only the device properties, not the UI for a thermostat (like choosing a set value, checking the current temperature, swiching to heat or off).

Alexa app: Alexa_Office

Google (same thermostat): Google_Office

For reference, a thermostat as it should be in Alexa app (different thermostat from innogy binding): Alexa_Livingroom

So while Google does recognize a fully functional thermostate, Alexa has issues.

There is a discussion in the OpenHAB forums here: https://community.openhab.org/t/thermostat-works-well-in-google-home-but-not-with-alexa/70351, but it did not identify a root cause on my side.

Note, I did not install the HomeKit binding. I only use the syntax at this seems to be enough. I had some discussion that a similar, buggy behaviour existed in the HomeKit binding and was resolved in some code branch, but I think this does not apply here (or does it?).

Expected Behavior

When the thermostat is properly defined, the user should be able to switch the mode via Alexa app or voice command.

Current Behavior

In the Alexa app, the thermostat is not properly shown (see above). On voice commands, Alexa responds that "Heizung Büro does not support this".

Possible Solution

I could not find a solution and I ask for help.

Workaround: Use Google Home. Here, everything works well. Not a solution, indeed. Or my current workaround: Define an additional switch that can be commanded by Alexa. Via an additional rule, this switch sets the homekit:HeatingCoolingMode to "on" or "off". But this is very ugly.

Steps to Reproduce (for bugs)

  1. Define the thermostat as given above
  2. Open Alexa app. Thermostat is not properly shown. Voice command can ask or set the temperature, but not set the mode.

Context

I want to control my Eurotronics Spirit Z-Wave plus via Alexa.

Your Environment

apica-alfred commented 5 years ago

SAme for me with 2.4.0... It used to work.

Tobster77 commented 5 years ago

Is there still any developer who is involved in the respective binding and could give a first comment?

I would be absolutely willing to support the clarification. Thanks :-)

apica-alfred commented 5 years ago

The same setup worked before, so I guess there was a change in how Alexa is interpreting the device. I don't know who's in charge to track the changes, and maybe is related to the alexa skill.

Tobster77 commented 5 years ago

@davidgraeff: Would we have to complete the tag for the Alexa skill? You just marked it as a cloud issue...

davidgraeff commented 5 years ago

Yes it is related to the alexa skill as well. It handles Alexa server requests in the most simplest way possible. We don't have an Alexa skill tag, so I used the cloud tag, it's cloud related after all.

Tobster77 commented 5 years ago

Ok, great. Thanks.

Is there someone active on that topic? Or will we have issues to find anyone being an expert?

davidgraeff commented 5 years ago

Actually I'm not sure if myopenhab is not even talking directly to Alexa. In either case you want someone with JavaScript knowledge. It's mostly copy and paste because Amazon provides extensive examples for JavaScript based Alexa skills.

hmerk commented 3 years ago

closed due to inactivity