openhab / openhab-alexa

openHAB skill for Amazon Alexa
Eclipse Public License 2.0
152 stars 89 forks source link

[v3] Beta #123

Closed digitaldan closed 5 years ago

digitaldan commented 5 years ago

We now have the V3 version of the sill deployed in a "Beta Test" through Amazon. This will allow us to have a small group of users upgrade early to the new skill and provide feedback.

I want to use this issue to coordinate updates and communicate to users who have access to the beta.

When opening issues against the beta, please prefix "[v3-beta]" in the issue title. Include as much information about:

What you were saying or doing, include any item names or labels that could help in debugging What the expected result was What the actual result was Exact time, including seconds if possible of the issue What time zone you are in What country you are in (to identify which global lambda you are using)

For our first wave of users I want to focus on those using V2 style tags to ensure we have backwards compatibility and that we don't break it for the thousands using the current skill.

Configuration and usage can be found in at https://github.com/openhab/openhab-alexa/blob/v3/USAGE.md

SamuelBrucksch commented 5 years ago

Hi, i want to test. How can i participate?

codeaholics commented 5 years ago

Yes please!

PheiPheiPhei commented 5 years ago

I'd love to participate. I'm in Germany, if that makes any difference.

mgeramb commented 5 years ago

I am also very intested in joining the beta test!

Flole998 commented 5 years ago

Same here, I'd also love to join!

digitaldan commented 5 years ago

Thanks everyone!!! Can you send me your amazon/Alexa email (and github username in the email) to apps@openhabfoundation.org ?

digitaldan commented 5 years ago

As I mentioned in the description, would be great if people joining the Beta would test their existing V2 configuration first, and if that works, then move to using the V3 syntax and new features.

codeaholics commented 5 years ago

I've installed the new skill and it found all my devices just fine. I particularly like that Alexa can now query the status (in fact, this is the thing I was most looking forward to with the V3 skill). Seems to work well. I'll keep playing with it for a while.

I haven't tried the new tagging yet.

digitaldan commented 5 years ago

@codeaholics so you were using the v2 item tags and everything is working as expected?

codeaholics commented 5 years ago

Correct. That said, I don’t have loads of devices right now. Mostly switches configured as “Lighting” and dimmers. I’ll likely be getting Hue soon for some lights in our conservatory. Considering setting them up via OH, so that would allow me to test colours.

On 10 Feb 2019, at 23:24, Dan Cunningham notifications@github.com wrote:

@codeaholics so you were using the v2 item tags and everything is working as expected?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.

codeaholics commented 5 years ago

Having said that... I can see that lights are on or off in the Alexa app now, but when I ask her "is [...] on?" she says "[...] doesn't support that".

Flole998 commented 5 years ago

@codeaholics Same thing here, I assume that is because the skill doesn't have retrievable set and doesn't support reportState request (yet).

@digitaldan Should we report here or open new issues for all bugs/missing features we find?

digitaldan commented 5 years ago

Feel free to open a bug , I think we are advertise we support reporte state , so not sure why Alexa thinks we don’t

Flole998 commented 5 years ago

Also another thing that happened to me (I don't know if this is because of the beta version though): Alexa re-discovered all things and I had to delete them from the rooms and add them again in order to say "Alexa, light on", otherwise it would just respond that the skill is currently disabled. This might be because of the beta but I am not sure and this would definitely be annoying if this happens to all users.

codeaholics commented 5 years ago

Yes, I had that too

digitaldan commented 5 years ago

FYi, I am off skiing this week, so I may be erratic in responding, timing is not great i know :-)

SamuelBrucksch commented 5 years ago

Looks like i did not get an invitation... its the mail of my wife because that is connected to alexa. do you get a mail or is the skill active directly?

digitaldan commented 5 years ago

@SamuelBrucksch did you send me a email so I can add you to the list ? I can’t seem to find it. Send me your wife’s email ( and your github username so I know who you are to ) apps@openhabfoundation.org

SamuelBrucksch commented 5 years ago

@SamuelBrucksch did you send me a email so I can add you to the list ? I can’t seem to find it. Send me your wife’s email ( and your github username so I know who you are to ) apps@openhabfoundation.org

Looks like my mail was not sent... Will do it again.

mgeramb commented 5 years ago

I'am running the beta version now since two days with the old tagging without any problems. It was not necessary to change anything in the configuration. The devices are remained assigned in the groups. I have Lighting and CurrentTemperature tags in use. Getting and setting values through the alexa app works fine, including to see state changed immediately in the alexa app if the device is open. Also getting the value and changing the value by voice works as expected.

SamuelBrucksch commented 5 years ago

@SamuelBrucksch did you send me a email so I can add you to the list ? I can’t seem to find it. Send me your wife’s email ( and your github username so I know who you are to ) apps@openhabfoundation.org

Hi, i got this message:

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

  ***@***
    (ultimately generated from apps@openhabfoundation.org)
    host gmail-smtp-in.l.google.com [108.177.15.27]
    SMTP error from remote mail server after pipelined end of data:
    550-5.7.1 [80.67.18.30      12] Our system has detected that this message is
    550-5.7.1 likely unsolicited mail. To reduce the amount of spam sent to Gmail,
    550-5.7.1 this message has been blocked. Please visit
    550-5.7.1  https://support.google.com/mail/?p=UnsolicitedMessageError
    550 5.7.1  for more information. z18si10159271wrs.315 - gsmtp
  ***@***.***
    (ultimately generated from apps@openhabfoundation.org)
    host aspmx.l.google.com [74.125.71.26]
    SMTP error from remote mail server after pipelined end of data:
    550-5.7.1 [80.67.18.30      12] Our system has detected that this message is
    550-5.7.1 likely unsolicited mail. To reduce the amount of spam sent to Gmail,
    550-5.7.1 this message has been blocked. Please visit
    550-5.7.1  https://support.google.com/mail/?p=UnsolicitedMessageError
    550 5.7.1  for more information. z77si2125991wmc.15 - gsmtp

Looks like your mail is somehow on the spamlist of my provider...Guess i need to try another mail adress then.

digitaldan commented 5 years ago

Hmm, google/gmail seems to be rejecting that, since my personal email is also google hosted, PM me on community.openhab.org , my username is digitaldan

digitaldan commented 5 years ago

So its been pretty quiet around here, not sure if thats a good thing or not :-) Let me know how the skill is working so far, if all is well then I will start advertising the beta on our community site.

Flole998 commented 5 years ago

Right now I am getting "The device doesn't respond" message when I am trying to do something using Alexa, on myopenhab.org it says Online though, not sure what is causing this.

digitaldan commented 5 years ago

@Flole998 can you give me the item name, time, timezone and location for one of the devices that is not responding?

digitaldan commented 5 years ago

@Flole998 wait, I deployed a bad config file, one sec !!!

Flole998 commented 5 years ago

Working now again, thanks!

digitaldan commented 5 years ago

Yep, sorry about that.

Flole998 commented 5 years ago

No problem, this is still beta so everyone knows that something like this can happen at any time :)

To get comment on this:

if all is well then I will start advertising the beta on our community site.

I think we should find out what's going on in #126 first, especially since this "spams" the karaf console (and by that also the log files) and produces high load on your servers aswell most likely (to pass through a bunch of requests per second).

jmccoy555 commented 5 years ago

So its been pretty quiet around here, not sure if thats a good thing or not :-) Let me know how the skill is working so far, if all is well then I will start advertising the beta on our community site.

I've just deployed to AWS and all appears to be working with v2 tagging. Will try and get some v3 tagging done to test that out too.

Just a note that some of the terminology in the Create and Deploy Lambda app section of the Readme doesn't quite match the Lambda function set up anymore. If you've not done it before it may be a bit confusing, it was for me a few years ago the first time I did this (and just now as I've not needed to touch it for a good year or so)!

And thanks for the skill.......

SamuelBrucksch commented 5 years ago

So its been pretty quiet around here, not sure if thats a good thing or not :-) Let me know how the skill is working so far, if all is well then I will start advertising the beta on our community site.

Unfortunately we did not get a mail or we missed it or whatever, guess i'll just wait until v3 is public then...

digitaldan commented 5 years ago

@SamuelBrucksch I added the email which you sent to me, is this the same you use for your Amazon account? If not, please send me that one.

SamuelBrucksch commented 5 years ago

Yes its the one, no hurry i can wait as long as i know it will eventually come.

jmccoy555 commented 5 years ago

Hi @digitaldan I've done some v3 testing, thermostat is working great, but speaker volume has me stumped. Does this look right, Alexa just says Bathroom Volume doesn't support that (although I'm not quite sure what I am meant to be telling her to do!!);

Dimmer BathroomSqueezeVolume "Bathroom Volume [%.1f %%]" <soundvolume> { channel="squeezebox:squeezeboxplayer:squeeze:Bathroom:volume",alexa="Speaker.volume" }

It use to work fine using the v2 Switchable tag.

I have got the PlaybackController.playback working.

digitaldan commented 5 years ago

@jmccoy555 its not woking for me either and I can't figure out why, I'll keep looking today.

scott-vincent commented 5 years ago

Thanks for access to v3. It discovered all my devices again so I had 24 instead of 12 ! If anybody else does this just go through and "forget" all the offline devices. You will have to setup your Groups again though as all the devices are new again.

Going to try and set up a TV device that can change channel.

jsetton commented 5 years ago

@jmccoy555 I just tried speaker volume and I had no issue. I initially thought that it could have been because you setup it by itself opposed of using a speaker group endpoint. Your configuration is fine so it might be just the way you asked 😄 I would also change the label name not to include "volume" as it may be confusing although this is the reason why using a group endpoint makes it easier.

"Alexa, set the volume to 10 on bathroom speaker" "Alexa, increase the volume on bathroom speaker"

Group gBathroomSpeaker "Bathroom Speaker" {alexa="Endpoint.Speaker"}
Dimmer BathroomSqueezeVolume "Bathroom Volume [%.1f %%]" <soundvolume> (gBathroomSpeaker) { channel="squeezebox:squeezeboxplayer:squeeze:Bathroom:volume",alexa="Speaker.volume" }

@scott-vincent re: Duplicates, it might be by design since this is a new version. I opened #139 so we could update the documentation to warn users about this behavior.

codeaholics commented 5 years ago

I didn’t end up with duplicate devices. Mine just worked as simple devices. But when I tried to use them as part of an Alexa group (not an OH group), I had to remove them from the group and re-add them.

digitaldan commented 5 years ago

@jsetton you are correct about the stereo issue, you have to say it just the right way (as you stated), Alexa is not too smart about variations on it. @jmccoy555 you might be able to play with adding "PercentageController.percentage" as well to the item, it might help make it respond to "Alexa, set Bathroom speaker to 32 percent", but i have not tried it yet

jmccoy555 commented 5 years ago

@jsetton @digitaldan it does work thanks!! Although I think I need to learn the language of Alexa... that doesn't feel very natural to me.

So if I set an end point for the location name, lets go with Bathroom Speaker, and then just name the items with the function, like "volume", "player" I should be able to

"Increase the volume on Bathroom Speaker" "Play on Bathroom Speaker" "Next on Bathroom Speaker"

Any more tips???? Or is there a full set of examples somewhere in the Alexa docs? I tried to find them earlier but failed!

jsetton commented 5 years ago

@jmccoy555 you can find some utterance examples related to the player capability on this page.

Keep in mind of the context-awareness feature; so you should only need to mention the device name on the first request and any subsequent commands would be determined to be on that device as well. This is why using group endpoints make this feature very powerful since Alexa considers the whole group as one single item.

"Turn on the bathroom speaker" "Set the volume to 10" "Play" "Turn the volume up"

digitaldan commented 5 years ago

@jsetton beat me to it, but here was what i was going to say :-)

So if I set an end point for the location name, lets go with Bathroom Speaker, and then just name the items with the function, like "volume", "player" I should be able to

actually no, Bathroom speaker should be a group in this case, its label "Bathroom speaker" is the only addressable name. Any items that are part of this group and tagged for alexa will have their label ignored. But they do represent "capabilities" for that name. So if you say "Alexa, set Bathroom speaker to 32 percent", Alexa will will see if "PercentageController.percentage" is on that endpoint, so one item in that group should have "PercentageController.percentage" in its meta data . Clear as mud, i know :-)

Take a look at https://github.com/openhab/openhab-alexa/blob/v3/USAGE.md#group-items it has a example of a speaker,

Group Stereo    "Stereo"            {alexa="Endpoint.Speaker"}
Number Volume   "Volume"  (Stereo)  {alexa="Speaker.volume"}
Switch Mute     "Mute"    (Stereo)  {alexa="Speaker.muted"}
Switch Power    "Power"   (Stereo)  {alexa="PowerController.powerState"}
String Input    "Input"   (Stereo)  {alexa="InputController.input"}
String Channel  "Channel" (Stereo)  {alexa="ChannelController.channel"}
Player Player   "Player"  (Stereo)  {alexa="PlaybackController.playback"}

The only label that matters is "Stereo", The other labels ("Volume", "Mute", "Power", etc..) are ignored and in fact could be omitted. When you want to control the volume, those commands will be redirected to the group member "Volume" item b/c it has "Speaker.volume" associated to it.

scott-vincent commented 5 years ago

I was also going to comment on the speaker example as I was slightly confused by it too. I think this would be a better example:

Group  kitchen_tv       "Kitchen TV"               {alexa="Endpoint.TV"}
Number kitchen_volume   "Volume"     (kitchen_tv)  {alexa="Speaker.volume"}
Switch kitchen_mute     "Mute"       (kitchen_tv)  {alexa="Speaker.muted"}
Switch kitchen_power    "Power"      (kitchen_tv)  {alexa="PowerController.powerState"}
String kitchen_input    "Input"      (kitchen_tv)  {alexa="InputController.input"}
String kitchen_channel  "Channel"    (kitchen_tv)  {alexa="ChannelController.channel"}
Player kitchen_player   "Player"     (kitchen_tv)  {alexa="PlaybackController.playback"

Notice I've changed the example from a speaker to a tv with Endpoint.TV. I think this better represents what the sample is and one huge advantage of doing this (for me) was that, if I add different TVs to Alexa groups I can say "Alexa, turn on the TV" and it will turn on the correct TV for the room I'm in.

jmccoy555 commented 5 years ago

Thanks @digitaldan @jsetton the mud is starting to become a little less murky, and indeed the endpoints look very powerful.

I don't get a 'Speaker' section in the Alexa App though, lust 'Echo & Alexa', 'Lights', 'Switches', 'Thermostats' and 'All devices'??

Looks like I've found a job for today, lets get those config files updated.......

One last thing that is on my mind.... is the 'alexa' part of the metadata tag hard coded into the main part of openHAB, or could an alternative be used?

I'm thinking of a sort of filter for Alexa as I'm running my home's openHAB but also my parents too linked via a VPN and don't rally want two separate setups as we also share my Unifi Controller, MQTT brokers etc. and its just less things for me to look after and easier to edit.

They have no openHAB Alexa functionality at the moment as we both have a dining room light etc. etc. and extending the name to 'parents dining room light' is silly and likely going to result in us turning each others lights on and off :laughing:

So for example would something like this be possible;


Switch homeDiningRoomLight "Dining Room Light" {alexa-home="PowerController.powerState"}
Switch parentsDiningRoomLight "Dining Room Light" {alexa-parents="PowerController.powerState"}

The Alexa skill code could then be updated accordingly to only look for aleax-home or aleax-parents and then I'd run two endpoints in AWS / Alexa one for each etc. etc.

I'm guessing this is a bit of an edge case, so am expecting a no!

Cheers.

Flole998 commented 5 years ago

As far as I know that is part of the js stuff running on AWS, so if you use your own skill it should work perfectly fine. Also you can rename items in the Alexa App, maybe that would be useful for you aswell.

jmccoy555 commented 5 years ago

That's what I was hoping, but so far I've only managed to break it!!

SamuelBrucksch commented 5 years ago

When i enabled the beta service, i had to remove my old items and search new ones. It did not work with the existing ones. However thermostats and lights still work as before after searching new devices with old notation. Did not change it to the new notation yet, but will do it in the next few days and come back with more feedback.

All in all it seems to be a bit faster, but not sure if its the new service or openhab cloud was slow before or whatever might have changed.

codeaholics commented 5 years ago

Is the skill down right now? I'm getting "sorry, lounge lights is not responding". I've restarted OH (and subsequently the OH Cloud connector), but no joy. Locally (i.e. via PaperUI, etc.) everything is working fine.

digitaldan commented 5 years ago
2019-02-19T16:28:35.434Z    ba351ac0-32eb-4bfb-b881-2be1e73da1bd    TypeError: Cannot convert undefined or null to object
at Function.assign (<anonymous>)
at setPowerState (/var/task/ohConnectorV3.js:154:25)
at Object.exports.handleRequest (/var/task/ohConnectorV3.js:56:7)
at exports.handler (/var/task/index.js:22:12)

Seems to be a bug, i'll take a look

digitaldan commented 5 years ago

Can you ask alexa to "discover devices" again? She will say she can't find any, but I'm hoping it fixes the issue under the hood