My thermostat only has 2 channels that are required in alexa, however if i ommit the switch item below the device does not get added and instead shows up as 2 separate items (setpoint and temperature). Is this a bug within the openhab skill or a requirement of channels from amazon. since the switch is a readonly value (which doesnt work in alexa, allows control) this seems very strange that i have to have it present for the thermostat to be discovered.
Couple observations related to the item definitions you provided:
No need to specify a category on group endpoint as its name explicitly defines the category. Additionally, no need to specify categories on items associated to a group endpoint. Likewise, the scale parameter can be omitted since you have it defined in your item state description (e.g. "Setpoint [%.1f °C]")
If I understand correctly, you control the heat on/off setting of your thermostat via the BathroomRequesting item and the target temperature via BathroomSetPoint. Moreover, it has a temperature sensor via BathroomTemperature. You should be using ThermostatController.thermostatMode to control the heat on/off setting. Whatâs the reasoning for adding the nonControllable parameter? (this one is reserved for building blocks APIs controllers only).
Alexa, whatâs the bathroom temperature? Alexa, whatâs the bathroom thermostat set to? Alexa, set the bathroom temperature to 20 Alexa, set the bathroom thermostat to heat Alexa, set the bathroom thermostat to off
If you only have one thermostat discovered: Alexa, turn on the heat Alexa, set the temperature to 22
No worries. Did you mean you swapped with ThermostatController? If not, Iâm curious of what you were trying to achieve with your BathroomRequesting item. If you indeed changed to ModeController and kept the nonControllable=true parameter, that would mean you just want to query for the status of that item but not control it.
My heating system has no on/off switch, itâs purely status, it turns on and off via the setpoint, hence I only really wanted setpoint and temperature but it doesnât work with just the two channels.
A lot in my example was me playing and testing, I meant swapping thermostatMode for the PowerController.
BathroomRequesting was the closest item I could put in to get it to work, adding it as a PowerController was the first working solution I found (albeit I shouldnât be able to toggle it), but itâs good now
I am surprised that a Thermostat endpoint group wouldnât work with just a setpoint and temperature sensor. As a matter a fact, now that I understand what you intended to do, modeling BathroomRequesting as ModeController is actually discarded by the skill since that interface doesnât support the Switch item type. So only the other two items are actually associated with your thermostat endpoint group.
Technically, the proper way to model a Switch item type as non controllable item is to use toggleController but unfortunately it doesnât play well with a thermostat endpoint group. This is why I would still recommend using the Thermostat.thermostatMode capability I mentioned above. That way you can still ask Alexa if the thermostat is on (heat) or off (Alexa, is the bathroom thermostat on?).
If you donât care about having that ability, then you donât need to configure that item. If you are concern that Alexa thermostat mode command requests (Alexa, set bathroom thermostat to heat) will incorrectly update the item state then you can use a proxy item and set an item sensor to return the proper state. That way the command requests will discarded and the proper state will always be returned to Alexa.
To avoid opening another topic:
My thermostat can either be set to AUTO, forced heating (HEAT) or OFF. So iâm using this approach: Number AlexaTestHeatingMode "Heating" {alexa="ThermostatController.thermostatMode" [AUTO=8,OFF=2,HEAT=4]}
However i would also like to be able to use commands like âTurn heating ONâ to set it to HEAT mode. It this possible?
I like the fact that Echo confirms the new state of the thermostat instead of just saying OK - this gives additional confidence that the command was understood.
I know that i could go with Number AlexaTestHeatingMode "Heating" {alexa="ModeController.mode" [category="THERMOSTAT", supportedModes="8=Automatic:@Setting.Auto,2=Off:Night,4=On:Day:@Setting.Heat"]
However Alexa only confirms this with OK which i donât like.
Is it possible to activate HEAT mode by using word ON when using ThermostatController.thermostatMode approach?
Any suggestions?
Thanks Jeremy, it works for obtaining the temperature and setting the temperature, but if I say Alexa, set the ensuite floor to heat it doesnt support it.
The mapping you configured is incorrect. The proper value is OFF="OFF",ON="HEAT". However, since you are using a Switch item, you technically donât need to specify it, as it defaults to controlling a heater.