[SOLVED] Alexa can´t reach devices exposed and added to the Alexa app

Hi there,

i´m currently trying to get my Homematic thermostats working with Alexa.
I only want to ask Alexa “What´s the temperature in the kitchen” and not actually change the temperature.
This already worked when i first implemented it but stopped working some time ago.
Currently Alexa answers “kitchen isn´t responding currently” (German: “Küche reagiert grade nicht”).

What do i have?
-Homematic items with ["CurrentTemperature"] tag
-Same items exposed to myopenhab,org
-Items and values are visible in myopenhab,org
-Items are found in the Alexa and added to rooms
-Also tried the same procedure with an zwave thermostat, same result

Item:
Number:Temperature itmHeizung_Kueche_IST "Temperatur Kueche [%.1f °C]" <heating> (Kueche, Temperatur, gPersist, gCharts) ["CurrentTemperature"] {channel="homematic:HG-HM-CC-RT-DN:default:<SERIALNUMBER>:4#ACTUAL_TEMPERATURE"}

openhabcloud.cfg

baseURL=https://myopenhab.org/
mode=remote
expose=itmHeizung_Kueche_IST

myopenhab,org
Today at 11:58 AM itmHeizung_Kueche_IST 21.80 °C

Alexa app

I already asked around the Homekit and Amazon Echo Control Binding but it seems to be something locally or inside the openHAB skill.
I already found this thread and informations about a v3 Skill that can be “build” by myself.
I´ve to say that i didn´t really understand the installation guide provided at GitHub here.

I´ve also found another about this issue but without answers or solutions

Any ideas?

kind regards
Michael

You need to define all four items including the group:

Group gDownstairsThermostat "Downstairs Thermostat" (gFF) ["Thermostat","Fahrenheit"]
Number DownstairsThermostatCurrentTemp "Downstairs Thermostat Current Temperature" (gDownstairsThermostat) [ "CurrentTemperature" ]
Number DownstairsThermostatTargetTemperature "Downstairs Thermostat Target Temperature" (gDownstairsThermostat) [ "TargetTemperature" ]
String DownstairsThermostatHeatingCoolingMode "Downstairs Thermostat Heating/Cooling Mode" (gDownstairsThermostat) [ "homekit:HeatingCoolingMode" ]

You can do that but it is not necessary for the skill to work.

The documentation says i need to expose the items like it‘s described in the Homekit documentation.
And the Homekit documentation says i could use CurrentTemperature only or the the group if i need TargetTemperature.

What‘s correct?

I did it the way I told you and it works … :grinning:

I tried it the same way but it´s not working…

  • Creating a group called gHeizung_Kitchen tagged as ["Thermostat"]
  • Adding the current and target temperature channels to the group and tagging them
  • Adding the mode state channel as tag homekit:HeatingCoolingMode

Items:

Group gHeizung_Kueche "Heizung Küche" ["Thermostat"]
Number:Temperature itmHeizung_Kueche_IST "Temperatur Küche [%.1f °C]" <heating> (Kueche, gHeizung_Kueche, Temperatur, gPersist, gCharts) ["CurrentTemperature"] {channel="homematic:HG-HM-CC-RT-DN:default:<SERIALNUMBER>:4#ACTUAL_TEMPERATURE"}
Number:Temperature itmHeizung_Kueche_SOLL "Soll [%.1f °C]" <heating> (Kueche, gHeizung_Kueche, gPersist) ["TargetTemperature"] {channel="homematic:HG-HM-CC-RT-DN:default:<SERIALNUMBER>:4#SET_TEMPERATURE"}
String itmHeizung_Kueche_Mode_State "Modus [MAP(heatingmode.map):%s]" <settings> (Kueche, gPersist, gHeizung_Kueche) ["homekit:HeatingCoolingMode"] {channel="homematic:HG-HM-CC-RT-DN:default:<SERIALNUMBER>:4#CONTROL_MODE"}

The log says everything is fine:

==> /var/log/openhab2/openhab.log <==
2019-02-09 18:48:54.230 [DEBUG] [penhab.io.homekit.internal.Debouncer] - Debouncer action update-homekit-devices invoked after delay 1000  (4 calls)
2019-02-09 18:48:54.236 [DEBUG] [mekit.internal.HomekitChangeListener] - Adding homekit device gHeizung_Kueche
2019-02-09 18:48:54.239 [DEBUG] [o.homekit.internal.HomekitTaggedItem] - Constructing gHeizung_Kueche of accessoryType THERMOSTAT
2019-02-09 18:48:54.243 [INFO ] [o.homekit.internal.HomekitTaggedItem] - gHeizung_Kueche isGroup? true
2019-02-09 18:48:54.251 [WARN ] [al.accessories.HomekitThermostatImpl] - The tag homekit:TargetHeatingCoolingMode has been renamed to homekit:HeatingCoolingMode; please update your things, accordingly
2019-02-09 18:48:54.255 [WARN ] [al.accessories.HomekitThermostatImpl] - The tag homekit:TargetTemperature has been renamed to TargetTemperature; please update your things, accordingly
2019-02-09 18:48:54.323 [DEBUG] [it.internal.HomekitAccessoryRegistry] - Added accessory 852564800
2019-02-09 18:48:54.327 [DEBUG] [mekit.internal.HomekitChangeListener] - Added homekit device gHeizung_Kueche

I removed the item after every change and readded it into the Alexa app.
The Alexa app now recognize the item as an thermostat but still can´t get the current temperature.

I removed the items from the openhabcloud.cfg as you said it´s not necessary.

Looks all good … no more ideas, sorry.

Try to use only “Number” instead of “Number:Temperature” in your items definition and see if anything changes.

Thanks for the hint!
I‘m going to try this once i‘m back home.

Other hints:

  • Rename your item from “Temperatur Küche [%.1f °C]” to simply “Küche [%.1f °C]” (you can first try another name by renaming the item directly from the Alexa app).
  • in my configuration I have temperature items with the same name of other items/groups, but Alexa correctly understand commands like “What’s the temperature in the living room” or “Turn off the living room”.

As i‘m putting the items in Alexa groups of the corresponding room, the name in openHAB doesn‘t matter.
I already tried different names in oH and Alexa but it made no difference.
Alexa always says the same.
I also tried to directly call the name of the oH item and Alexa item, same result.
And the three temperature items are unique.

Thanks!

Thanks for this hint Grabriele!
It only works with Number but not with Number:Temperature

And now it works when only using CurrentTemperature without the whole thermostat group :slight_smile:

kind regards
Michael