Alexa Smart Home Skill V3 is now live!

Have you tried to increase your Lambda function log level, as per my instructions, and look if any possible log lines that could explain your issue? Usually, a device not responding error indicates that the updated state wasn’t available when the command was issued. This can happen either if the item you send the command doesn’t report a state or it hasn’t been initialized yet. On rare occasion, it could happen on low powered server (e.g. RasPi) where a command received may take longer to update the associated item state. If this is the case, you can try to disable any of the bindings that you aren’t using to free up resources for your OH server to function optimally.

You mentioned about the Lambda function errors you are getting but you didn’t mention the responses you are getting on the relevant Alexa requests. Depending on the Alexa error message you get back, it could be a network/socket error or just an item state error on the OH side. Make sure to go over the troubleshooting guide as well.

1 Like

Hello guys,

this is my current items file and everything is working perfectly execpt “Höher” (Raise) and “Tiefer” (Lower). It is inverted. (“Höher” and “Tiefer” are german words)

Group gWZR                   "Wohnzimmer Rollo"                {alexa="Endpoint.INTERIOR_BLIND"}

String Wohnzimmerrollo_stop   "Stopp"       (gWZR)  {alexa="ModeController.mode" [supportedModes="STOP=stopp,UP=0,DOWN=100", autoupdate="false"]}

Rollershutter Wohnzimmerrollo  "DummyName Rollo" (gWZR)  {alexa="RangeController.rangeValue" [category="INTERIOR_BLIND", friendlyNames="@Setting.Opening",supportedRange="0:100:10", unitOfMeasure="Percent", actionMappings="Close=100,Open=0,Lower=(+10),Raise=(-10)", stateMappings="Closed=100,Open=0:99", itemSensor="WohnzimmerrolloLinks_Position"]}

I tried both of these settings Lower=(+10),Raise=(-10) and Lower=(-10),Raise=(+10) already. It still does it inverted.
When I say tiefer (lower) it goes up and if I say höher (raise) it goes down.

Any suggestions on what to try ?

It should work as you had initially setup Lower=(+10),Raise=(-10). Make sure to trigger a discovery when making configuration changes and use the utterance examples listed here.

Thank you for the quick answer.
I changed it again but after discovering it again it is still inverted/wrong.

When I use the German sentences as in the examples it is still inverted/wrong.

Any other suggestions?

Not much else. Maybe you have another item configuration that causes the Alexa discovery to fail. Try to make another change and see if it was applied. If it doesn’t, go over the troubleshooting guide in order to resolve that one.

I just tried it on an completely new openhab installation.
The rollershutter is successfully discovered.
And when I change other things they are applied.
Also have gone through the troubleshooting guide but the issue still persists.

Maybe it is possible to add an option to the binding to specify inverted behavior like @rlkoshak suggested here:

Is there anything else what I could try ?

It’s plan but in the background it will end up converting to the same configuration settings.

If both of Lower=(+10),Raise=(-10) and Lower=(-10),Raise=(+10) settings are giving you the same behavior, I am not sure what else can be done. You should check your OH event logs to see the command received from your Alexa requests.

What happens if you invert everything not just raise and lower 100 0:10 etc?

Tried that just now, sadly not working :confused:

Hi, i have a question regarding the alexa ios app: is it possible to show rollershutters inside a group as rollershutter? Like the light switches for example?

item config:

Rollershutter Elternbad_Nord “Elternbad Nord [%d %%]” { channel=“knx:device:652ac361:Rollladen_D6:Elternbad_Nord”, alexa=“RangeController.rangeValue” [category=“EXTERIOR_BLIND”, friendlyNames="@Setting.Opening", supportedRange=“0:100:10”, unitOfMeasure=“Percent”, actionMappings=“Close=100,Open=0,Lower=(+10),Raise=(-10)”, stateMappings=“Closed=100,Open=0”]}

Rollershutter Elternbad_Ost “Elternbad Ost [%d %%]” { channel=“knx:device:652ac361:Rollladen_D6:Elternbad_Ost”, alexa=“RangeController.rangeValue” [category=“EXTERIOR_BLIND”, friendlyNames="@Setting.Opening", supportedRange=“0:100:10”, unitOfMeasure=“Percent”, actionMappings=“Close=100,Open=0,Lower=(+10),Raise=(-10)”, stateMappings=“Closed=100,Open=0”]}

This is unfortunately not supported on the Alexa as of yet. It seems that only light and switch items are listed under a named group. Any other items would just be listed individually. I use the Android app and I am seeing the same behavior.

Ok thank you. I thought it could be handled by the property “category”.

Thanks for this post.

It helped me to map the Thermostat Modes for Velbus devices

This worked

alexa="ThermostatController.thermostatMode" [OFF="NIGHT",ECO="DAY",HEAT="COMFORT"]

My only gripe is that Velbus thermostats have 4 Thermostat Modes, which are SAFE, NIGHT, DAY & COMFORT
and a ThermostatOperatingMode which flips the Thermostat between HEATING and COOLING

(So effectively, there are 8 Thermostat Modes, split across heating and cooling.

Can anyone suggest a way to get Items like these working in Alexa, or am I just wasting my time?

    Group BackBedroomGP2_Thermostat					"Back Bedroom Thermostat"													{ga="Thermostat" [roomHint="Back Bedroom"], alexa="Endpoint.Thermostat" }
    Number BackBedroomGP2_CurrentTemperature 		"Back Bedroom Current Temperature" 			(BackBedroomGP2_Thermostat,WholeHouse_CurrentTemperature		)		{channel="velbus:vmbgp2:VelbusNetworkBridge:1C:input#CH9", 								ga="thermostatTemperatureAmbient" ,		 alexa="TemperatureSensor.temperature" }
    Number BackBedroomGP2_CurrentTargetTemperature 	"Back Bedroom Current Target Temperature"	(BackBedroomGP2_Thermostat,WholeHouse_CurrentTargetTemperature	)		{channel="velbus:vmbgp2:VelbusNetworkBridge:1C:thermostat#CURRENTTEMPERATURESETPOINT", 	ga="thermostatTemperatureSetpoint",		 alexa="ThermostatController.targetSetpoint"}
	String BackBedroomGP2_ThermostatMode 			"Back Bedroom Thermostat mode"	  	 		(BackBedroomGP2_Thermostat)		{channel="velbus:vmbgp2:VelbusNetworkBridge:1C:thermostat#MODE", 							ga="thermostatMode" [modes="off=SAFE,heat=COMFORT,eco=NIGHT,on=DAY"] ,					alexa="ThermostatController.thermostatMode" [OFF="NIGHT",ECO="DAY",HEAT="COMFORT"]}
	String BackBedroomGP2_ThermostatOperatingMode 	"Back Bedroom Thermostat operating mode"	(BackBedroomGP2_Thermostat)		{channel="velbus:vmbgp2:VelbusNetworkBridge:1C:thermostat#OPERATINGMODE",																											alexa="ThermostatController.thermostatMode" [COOL="COOLING",HEAT="HEATING"]

I believe that this is also possible

    Number BackBedroomGP2_HeatingComfortTarget 		"Back Bedroom Heating Comfort Target Temperature"	{channel="velbus:vmbgp2:VelbusNetworkBridge:1C:thermostat#HEATINGMODECOMFORTTEMPERATURESETPOINT"	,		alexa="ThermostatController.lowerSetpoint#HEAT"		}
	Number BackBedroomGP2_HeatingDayTarget 			"Back Bedroom Heating Day Target Temperature"	  	{channel="velbus:vmbgp2:VelbusNetworkBridge:1C:thermostat#HEATINGMODEDAYTEMPERATURESETPOINT"		,		alexa="ThermostatController.lowerSetpoint#ECO"		}
	Number BackBedroomGP2_HeatingNightTarget 		"Back Bedroom Heating Night Target Temperature"	 	{channel="velbus:vmbgp2:VelbusNetworkBridge:1C:thermostat#HEATINGMODENIGHTTEMPERATURESETPOINT"																	}
	Number BackBedroomGP2_HeatingAntifrostTarget	"Back Bedroom Heating Antifrost Target Temperature"	{channel="velbus:vmbgp2:VelbusNetworkBridge:1C:thermostat#HEATINGMODEANTIFROSTTEMPERATURESETPOINT"	,		alexa="ThermostatController.lowerSetpoint#OFF"		}
	Number BackBedroomGP2_CoolingComfortTarget 		"Back Bedroom Cooling Comfort Target Temperature"	{channel="velbus:vmbgp2:VelbusNetworkBridge:1C:thermostat#COOLINGMODECOMFORTTEMPERATURESETPOINT",			alexa="ThermostatController.upperSetpoint#HEAT"		}
	Number BackBedroomGP2_CoolingDayTarget			"Back Bedroom Cooling Day Target Temperature"		{channel="velbus:vmbgp2:VelbusNetworkBridge:1C:thermostat#COOLINGMODEDAYTEMPERATURESETPOINT"	,			alexa="ThermostatController.upperSetpoint#ECO"		}
	Number BackBedroomGP2_CoolingNightTarget 		"Back Bedroom Cooling Night Target Temperature"		{channel="velbus:vmbgp2:VelbusNetworkBridge:1C:thermostat#COOLINGMODENIGHTTEMPERATURESETPOINT"																	}
	Number BackBedroomGP2_CoolingSafeTarget			"Back Bedroom Cooling Safe Target Temperature"		{channel="velbus:vmbgp2:VelbusNetworkBridge:1C:thermostat#COOLINGMODESAFETEMPERATURESETPOINT"	,			alexa="ThermostatController.upperSetpoint#OFF"		}

Based on my understanding it seems that what you call “thermostat mode” is more like preset target temperature settings and the “operating mode” is the actual thermostat mode. Out of curiosity, is there a way to turn off your thermostat?

The setpoint tagging example you mentioned wouldn’t work as it is limited to #eco only at this point and to thermostats supporting dual setpoint modes. Anyway, wouldn’t BackBedroomGP2_CurrentTargetTemperature point to the relevant item when the thermostat is set to a specific operating mode/preset setting?

My recommendation would be to keep the operating mode as ThermostatController.thermostatMode to control the heat/cool, and model the preset setting as ModeController interface. The downside is that you wouldn’t be able to control the preset value in the Alexa app. The solution for this one would be to set that item outside of the group endpoint.

Group BackBedroomGP2_Thermostat "Back Bedroom Thermostat" {alexa="Endpoint.Thermostat"}
Number BackBedroomGP2_CurrentTemperature "Back Bedroom Current Temperature" (BackBedroomGP2_Thermostat) {alexa="TemperatureSensor.temperature"}
Number BackBedroomGP2_CurrentTargetTemperature "Back Bedroom Current Target Temperature" (BackBedroomGP2_Thermostat) {alexa="ThermostatController.targetSetpoint"}
String BackBedroomGP2_ThermostatMode "Back Bedroom Thermostat Mode"	(BackBedroomGP2_Thermostat) {alexa="ModeController.mode" [friendlyNames="@Setting.Preset", supportedModes="SAFE=Safe,NIGHT=Night,DAY=Day,COMFORT=Comfort"]}
String BackBedroomGP2_ThermostatOperatingMode "Back Bedroom Thermostat operating mode" (BackBedroomGP2_Thermostat) {alexa="ThermostatController.thermostatMode" [COOL="COOLING",HEAT="HEATING"]}

Alexa, set the back bedroom to heat
Alexa, set the back bedroom preset to night
Alexa, what’s the back bedroom set to?
Alexa, what’s the back bedroom preset set to?

1 Like


Thanks for your detailed reply.

The Velbus Thermostat Operating Mode channel has 2 possible states, COOLING and HEATING, where each then has 4 possible Thermostat Mode states, SAFE, NIGHT, DAY and COMFORT.

Each Thermostat Mode has a Preset Target Temperature. (Changeable via openHAB)

If I’m understanding your reply correctly, you’re suggesting that it’s possible to get Alexa to swap the thermostat between it’s Cooling and Heating Modes and then call a Preset Target Temperature by name.

I’ll give this a try and report back…


Adding in the Operating Mode just didn’t work, and without all I am getting is “Customised” for the mode

I’ll keep trying

That part I understood but if, for example, your thermostat is set to HEATING and NIGHT modes, wouldn’t the relevant item BackBedroomGP2_HeatingNightTarget reflect the same value when changing BackBedroomGP2_CurrentTargetTemperature value. That was my point. It seems unnecessary to expose the individual target setpoints via Alexa if this is how it would be working.

You understood correctly. That gives the best and more natural way to control your thermostat mode matrix via Alexa.

Okay… Yes

I have caught up with your train of thought now.

I’ve removed the setpoint Items from Alexa, so now just got to get it to re-discover .

(I’ve been trying to map the thermostat modes to Google Assistant, but with even less success)

As far as I know, there is no equivalent for ModeController in the Google Assistant ecosystem as of yet. I may be wrong though as I am not fully up to date on the latest updates on their end.

I think there is going to be in the near future, as it’s mentioned in the documentation and on GitHub

Something along these lines…

ga="thermostatMode" [ Modes="off=SAFE,heat=COMFORT,eco=NIGHT,on=DAY" ]

the ThermostatMode feature works, but the mapping just seems to get ignored

My point was regarding having two separate controls one for the thermostat mode and another for presets to mirror my recommended solution. No matter what, I highly doubt that an integration with two separate items modeled as thermostat mode under the same endpoint would be supported as this is not a standard setup.