Official Alexa Smart Home Skill for openHAB 2

Hi,
it works perfekt, even in german. But do not use the input controller! Use the mode controller:

Group  TV_Bedroom_LG   "Fernseher"                                                         { alexa="Endpoint.Tv"}
Number  TV_Bedroom_Input "Fernseher"                        (TV_Bedroom_LG)        {alexa="ModeController.mode" [supportedModes="0=aus, 1=Satellit,2=Amazon, 3=Netflix, 4=Yamaha, 5=Computer, 6=DVB-T, 7=Miracast, 8=Youtube, 9=ARD Mediathek, 10=ZDF Mediathek,11=Dazn,12=Disney+",friendlyNames="Eingang" ,ordered=true]}

The use is like: “Alexa schalte Eingang Fernseher auf Netflix”. If room awareness is activated. “Alexa schalte Eingang auf Netfilx” should work too.
Of course you need a rule to set the Input based on the values set by the mode controller.

Regards,
Olli

1 Like

Is there a way to get rid of routines I have set up in the Alexa app itself and solve such things via the Alexa skill directly in openhab ?

For a specific use case I need to create 8 routines because of the different ways someone could ask a question which should then triggger an item in openhab.

What I am trying to achieve is to get rid of those routines and solve it in openhab directly to cover all these questions.

Is that possible with the current skill ?

If you are looking for a way to control/manage Alexa routines, this is more in the realm of the Amazon Echo Control binding, although I am not sure if such feature is available as of yet.

In terms of handling routines from the OH side, although it is hard to know since you weren’t specific, only routines falling under the semantic extensions concept would work via the skill at this point.

Thank you for your response.

I am currently in the process of creating a self build multi room timer setup via alexas while the timer is handled by openhab.

Currently my approach needs to use routines for example my rountines are.
I translated it to english examples see below:

Alexa, how many minutes are left on the Kitchentimer -> triggers openhab item
Alexa, how long is the kitchen timer? -> triggers openhab item
Alexa, how long kitchen timer? -> triggers openhab item

Would that be possible with semantic extensions?

That skill concept wouldn’t help you much with what you are trying to achieve.

Like I mentioned before, using the Amazon Echo Control binding would be your best bet based on the use-case you provided. There are channels that would give you access to your echo device timer and also last voice command.

Anyway, I would recommend that you start a separate post since I don’t believe what you trying to setup is achievable through the Alexa skill.

Hi all,

I am trying to get two temperature sensors to give me their values when triggered via Alexa, but so far I can only get my bedroom one to respond. The living room sensor keeps saying that it’s not supported.

I can see the living room sensor in Alexa, and it’s giving me the correct reading. All 4 items are discovered as well, but the GRPalexaTempDWN item goes immediately to unresponsive.

Is there something wrong with my definition of my items? Can I only use one group for thermostats?

When I add TemperatureLivingroom to GRPalexaTempUPS, it still can’t get the temperature of my living room sensor, but it strangely enough gives me the average temperature of my home(?), which is exactly the average of the two values from my temperature sensors.I don’t have the item or group home setup anywhere.

Any help would be greatly appreciated.

Here’s my items file:

Group GRPalexaTempUPS “Temperature Upstairs” [“Thermostat”] {alexa=“Endpoint.Thermostat”}

Group GRPalexaTempDWN “Temperature Downstairs” [“Thermostat”] {alexa=“Endpoint.Thermostat”}

Number TemperatureBedroom “Temperature in my bedroom [%.0f C]” (GRPalexaTempUPS) [“CurrentTemperature”] {alexa=“TemperatureSensor.temperature” [scale=“Celsius”], channel=“mihome:sensor_weather_v1:temp1:temperature”}

Number TemperatureLivingroom “Temperature in my living room [%.0f C]” (GRPalexaTempDWN) [“CurrentTemperature”] {alexa=“TemperatureSensor.temperature” [scale=“Celsius”], channel=“mihome:sensor_ht:temp2:temperature”}

You should check the troubleshooting guide. Your TemperatureLivingroom item probably doesn’t have a proper state.

Not sure to fully understand your question. However, if you just want to expose temperature sensors, no need to use a group endpoint for that. You should model each sensor item as a single endpoint. The idea behind a thermostat endpoint is to model a thermostat device that would include a temperature sensor along with mode and setpoint settings.

Hi,

Thanks for the quick response.

The state of the 2nd sensor is working, because when I switched it with the first one, it did give me a reading.

So, if I just use this in my items file, without the group items, it should work?
Number TemperatureBedroom “Temperature in my bedroom [%.0f C]” [“CurrentTemperature”] {alexa=“TemperatureSensor.temperature” [scale=“Celsius”], channel=“mihome:sensor_weather_v1:temp1:temperature”}

Number TemperatureLivingroom “Temperature in my living room [%.0f C]” [“CurrentTemperature”] {alexa=“TemperatureSensor.temperature” [scale=“Celsius”], channel=“mihome:sensor_ht:temp2:temperature”}

Not completely sure what the groups are for to be honest.

Thx.

Correct

Thanks Jeremy.

Hello Jeremy, sorry for my late reply.

I have tried the PlaybackController as you have suggested and it is working in French except for “Play” that has a weird behavior:

The Play utterance indicated in the alexa documentation “alexa met lecture sur orange” never works.

If I say first “alexa pause orange” then “alexa lecture” will send a Play command to my Orange device but on occasion this interfere with the Spotify player instead of the Orange one.

Any idea why “Play” is not working properly in French?

This is the Alexa context awareness feature that allows you to send subsequent commands to your initial requested device without naming it. The conflict, you mentioned, can also happen as the Alexa language processing is most likely falling back to the music/video skill you have enabled on your account once it couldn’t determine a smart home device to send the command to.

Based on my testing with the Alexa simulator, the below utterances are working. Make sure to check your voice history to see if your commands are translated to what you expected:

Alexa, mets lecture sur orange
Alexa, remets lecture sur orange
Alexa, mets lecture orange
Alexa, lecture orange

Hi everyone,

I have a short question:

Using groups, it makes it easier to use Alexa in my smart home environment. For those I had to to change the typo of my groups from

Group:Switch:OR(ON, OFF)

to

Group

Otherwise Alexa is not finding the group as group and not able to control the corresponding items. So fare so good, I did the change and was able to control the items with Alexa.

But now I am facing the problem that all items of my group are showing status OFF, but the group is showing still ON. (e.g. a slider for color temp is on 43% which would be a problem in the Group:Switch:OR(ON, OFF) case, but is a problem right now).

image

AS you can see, the gLight_L5 item is off, but the top group item not, any hints or ideas?

the items are defined in the following:

Group:Switch:OR(ON,OFF)                 gLicht_AZ     "Alle Lichter Arbeitszimmer"              <light> (gLichter)

Group  gLight_L5                    "Gästelicht [%s]"         <lightbulb>   (gLicht_AZ)             { alexa="Endpoint.Light", ga="Light" } 
Dimmer OsrLight_L5_Dimmer		    "Dimmen"                  <slider>	    (gLight_L5)		        { alexa="PowerController.powerState,BrightnessController.brightness", ga="Light", channel="xx" }			
Dimmer OsrLight_L5_Farbtemperatur	"Farbtemperatur"	 	                (gLight_L5)				{ alexa="ColorTemperature", ga="Light", channel="xx"}

Even the subitems of gLight_L5 are off:
image
Before I had gLight_L5 defined as Group:Switch:OR(ON,OFF) and it was working, but I could control it with Alexa,…so a strange case :smiley:

thank you :slight_smile:

A group defined with a item type will be considered by the skill as a single endpoint device and any items part of that group that are exposed to Alexa will also be discovered as single endpoints. Think of it as you want to control a group of separate light devices.

A group without an item type will be considered as a group endpoint. This is to model a group of functionalities under a single device.

So you made the proper change but I am afraid you may not fully understand the difference between the two group types.

I don’t fully understand your issue and what you are trying to achieve. Do you have any issue controlling your device via Alexa?

In term of group state, the first thing I noticed with your item definition is that the only item part of gLicht_AZ is a group with no state. So that’s probably the underlying issue as the parent group is probably just stuck in its last state. You probably want to add OsrLight_L5_Dimmer as part of that group instead so it will reflect the proper state of your light.

The other option could be to revert gLight_L5 to its previous configuration, add a new functional group gLight_L5_Alexa specifically for Alexa purpose and add the relevant item to it.

Hi Jeremy,

I am aware of the differences… :wink:

Currently it is defined that I can control Alexa. But since I did the change, my top group
image shows ON even if the light is OFF. All that since I did the change.

I guess that this would be the mot suitable solution, to create another group item with item type. So one for the group endpoint, one for group controlling.

Is there a reason, the skill is not determining the items as group.endpoint using group item types?

Thanks for your help.

The state you are seeing on gLight_L5 is probably an artifact left from how the group was setup previously. If you restart OH server and clear its cache, I would be surprised if that group item would have a defined state.

Yes. For the reason I outlined above on how to differentiate a group of devices vs functionalities in OH being modeled as a single vs group endpoint on the Alexa side :wink:

…so I will create the Alexa specific group items as well…thx for the hint. :+1:

Hi,
i was wondering if one could combine multiple group-endpoints into a group with type to control them together.

Usecase: combine two rollershutters (left & right) into one.
Definition of the left-one:

Group gEZRolloLinksAlexa                 "Rollladen Esszimmer links"                  {alexa="Endpoint.INTERIOR_BLIND"}
String eg_ez_rollladen_links_alexa       "Position"                                   (gEZRolloLinksAlexa, gRollladenAlexa)  
    {alexa="ModeController.mode" [supportedModes="STOPP=stopp,0=auf:hoch,50=halb,100=runter:zu", autoupdate="false"]}
Rollershutter eg_ez_rollladen_links  "Rollo Esszimer links"   <rollershutter> (gEG, gRollladen, gRollladenNodon, gEsszimmer, gEZRolloLinksAlexa)
    {alexa="RangeController.rangeValue"  
        [category="EXTERIOR_BLIND", friendlyNames="@Setting.Opening", supportedRange="0:100:10",
        unitOfMeasure="Percent", actionMappings="Close=100,Open=0,Lower=100,Raise=0", 
        stateMappings="Closed=100,Open=0:99"] ,
    channel="enocean:rollershutter:gtwy:xxxxF:rollershutter"} 

Would that be supported by the skill or do I need to go the route of a proxy-item that is exposed to Alexa and rules ?
As a group can only be of one type, I’d need to use rollershutter but would then lose the ModeController as thus the capability to “stop” set it to “half”. Correct ?

TIA
-Markus

This post should answer your questions.

Short off-topic comment here: Due to Announcements being used for discussions / questions etc, I have restricted posting rights to maintainers only.

To allow all of you to have lively discussions on Amazon Alexa, I have created a new dedicated category at https://community.openhab.org/c/apps-services/amazon-alexa/66.