[RELEASE] Ask Alexa

At the current time, no ‘non-prompted’ output can be sent to Alexa without first a voice prompt. That will change in the next few weeks, but it may just be a ‘tone’ to indicate when a message is available. That is the how the message queue plays into it. The message queue is a holding area for all kinds output. While the main intention is the Alexa, there is also Sonos notification, visual (i.e. turn lights on when there is a message) and SMS/Push where the output can go to your phone.

Hope that explains it a bit more clear. Sorry this was confusing.

Happy Friday…It has been a mostly uneventful week as I have been busy at work. However, I am pleased to report that @erocm1231 has updated his Device Monitor application to be FULLY Message Queue compliant. In fact, Eric is the one who first who suggested the expiring of messages function. Great idea! And, as I mentioned in his thread, he now has AUTOMATIC compatibility with Alexa when they release their push notification. Great work, Eric…

I did update one piece of Ask Alexa this week, but it is minor. Information about this is at the very bottom of this post (If you sync your IDE, you should see it…). However, this week, outside of Device Monitor being updated, I wanted to give a status report of the work done this week on Ask Alexa. If we go into the ‘way back machine’ and look at the roadmap I laid out: [RELEASE] Ask Alexa you will see we are keeping on track, with the scheduling app being released as 2.2.6 last week. Going forward will be a more ‘quiet time’ for the app itself. I already have 2.2.7 working as there was one long term app with a specialized DTH that needed fixing. I am also adding some VERY cool logging features that will be invisible to the end user, but allow even MORE partner apps to integrate with Ask Alexa. One of them will be deeper integration with WebCoRE. This DOES mean I may intentionally break the integration with “CoRE Classic”. I would be curious who among you use CoRE to ‘listen’ for an Ask Alexa Macro running, or inversely, uses Ask Alexa to run a CoRE Piston. PM me soon if you want to discuss as I haven’t stripped out the code yet, but want to in lieu of the new logging feature which will give WebCoRE the same functionality.

I continue to optimize the code and add little features that people have requested. One ‘interesting’ one is the “whisper” ability. I have had feedback that this mode is certainly ‘creepy’ sounding, but I can see a couple use cases for it. Because of some changes coming down the pike from Amazon, I have changed all of the output of Ask Alexa to SSML. This does nothing for the user directly, but it DOES allow me to add some cool little personality features in the future easily. How easy? The whisper mode was only a couple lines of code in the smartapp and it took me 5 minutes to add two more features that allow for speed and pitch changes in the output! All of this is coming soon….

Also, I am getting VERY positive feedback, public and private, about the Schedules extension…more than I expected! This was NOT an easy extension to write as the number of days in the year, days in a month, etc are inconsistent. However, it appears I got it right! However, there are still some folks PMing me asking questions about Schedules as the name (and what it implies) is very broad. As such, here is a small Q&A about them if you haven’t already investigated them:

What Ask Alexa Schedules is:

Schedules is an EXTENSION to Ask Alexa that allows you to set up one-time or recurring schedules that utilize the Ask Alexa message queues to alert in a variety of method to your schedules. In addition to verbal alerts, you can run actual macros or perform other Ask Alexa actions at a certain time. More importantly than the schedule of actions, Schedules also allows to you set up REMINDERS prior to the Action. Even Amazon misses this important aspect of setting up a schedule.

What Ask Alexa Schedules Is NOT:

Schedules is NOT a stand alone app…There is no built-in functionality for DIRECT notifications in the code of Schedules. This is by design as using the Ask Alexa Message Queues allows direct and immediate access to output via the Alexa speaker when Amazon releases push notification the functionality. In fact, all ALL Ask Alexa partner apps (like Device Monitor above), will benefit from their relationship and integration with Ask Alexa.

In addition, Schedules does its alerting via time-based schedules. There is no alerting on events as this is better handled by apps such Big Talker, a partner app for Ask Alexa.

Finally, Ask Alexa Schedules is NOT just a reminder application. Based on feedback from users, sometimes you want to have things happen on a schedule. We can do that! This could include running as Ask Alexa Macro, a weather report, or even clearing the Ask Alexa Message queue.

Advantage of Schedules:

Schedules is (are?) versatile: Your time-based schedules can range from one-time events, simple or complex schedules (starting and stopping alerting or runnin based on all types of parameters or restrictions). In addition, for super-advanced users, Schedules is the first app to allow for direct cron input for schedules and reminders. This, coupled with reminders of actions, make this one of the most powerful SmartApps for SmartThings.

Also, Schedules allows you to self-manage/clean up your time-based schedules…Maybe you have a one time event, or multiple events on a weekly basis, but ends at a certain time, or after a certain run count. The app can allow you (verbally, or by expiration of the schedule) to ‘self destruct’ and delete itself from your application.

With its tight integration with Ask Alexa, you can also query the schedules from Ask Alexa, run or pause the schedules actions (and reminders), and even delete the schedule with your voice. And don’t worry…you can always override a delete command if necessary (within the time you specify in the app)

Updates to 1.0.1-Available now!

In addition to small syntax and bug fixes, the biggest addition is actually improved simplicity; while I tout the virtues of doing Schedules for the biggest use case (birthdays/anniversaries), you actually had to choose a COMPLEX schedule for a seemingly ‘simple’ task. So, I have improved upon this by giving you an easy anniversary/birthday schedule option…you simply set the start date of the event and the action, and away you go. In addition, I added some features that allow you to go WAY back in time to the beginning of an event. Why is that important? Well, let’s say you want Alexa to not only remind you of the event but tell you how old someone is or how many years they have been married…I recommend giving this option a try. More options using these new function will become available when I release an update to the main app.

With this new addition, if you already set up your schedules, you DON’T have to go back and change them. However, you will want to check them; I improved upon the complex schedules as well to allow you to set them up once and if they are daily or longer recurrences even if the start date expires you still keep the date and schedule you originally set up. This may not make a lot of sense until you install the app, but this was a flaw in the logic of how this particular schedule was using the input.

If you sync you IDE with GitHub, you should already see the color change. If not, here is the code for Schedules: https://github.com/MichaelStruck/SmartThingsPublic/blob/master/smartapps/michaelstruck/ask-alexa-schedule.src/ask-alexa-schedule.groovy

1 Like

I am not much for surveys…I think they are most of the time biased and honestly are used more to justify a pre-determined position than to make a decision based on feedback. However, Andrea seems to truly want feedback. My personal interest is in the results as I have toyed with monetizing some apps.

Please take some time to fill this out truthfully and help Andrea out:

I appreciate your support in gaining data for developers. I would consider you one of the top developers and contributors to our community, although there are many really great developers here who I amazed at. Interesting enough I do not and will not publish ANY apps, and therefore have no agenda for monitizing apps. I am very interested in uniting those developers who have common ground and sharing information to make the community stronger.

1 Like

To sweeten the offer, please read Andrea’s post here:

For those that have been waiting for WebCoRE connectivity, here you go. Be sure to read the release notes as I have deprecated a few items that now can be completed with message queues:

Hi,

I’ve been using the Ask Alexa app for over a year now and it’s definitely my most-used function of my Alexa!
I received the following email, the other day from Amazon Web Services and I’m wondering if this is going to affect my “Ask Alexa” interface/capabilities?

Dear Amazon Web Services Customer,

Thank you for using Amazon Web Services. The AWS Free Tier includes service offers that are only available for 12 months following your AWS sign up date, as well as additional service offers that do not automatically expire at the end of your 12 month AWS Free Tier term. We wanted to let you know that the AWS Free Tier for service offers limited to the 12 month introductory period is set to expire on June 30, 2017 for account 442350280319.

For those service offers with a 12 month introductory AWS Free Tier, your resources will continue to run once your AWS Free Tier has ended, but you will begin to be charged at the standard, pay-as-you-go service rates for the following services: Amazon EC2, Amazon S3, Amazon RDS, Amazon CloudFront, Amazon AppStream, AWS Data Pipeline, Amazon EBS, Amazon ElastiCache, Elastic Load Balancing, Amazon SES, Amazon API Gateway, Amazon ES, and Amazon ECR.

For those service offers that do not expire at the end of your 12 month AWS Free Tier term, they will remain free within their Free Usage Tier limits. These services include Amazon DynamoDB, Amazon Cognito, AWS CodeCommit, Amazon Simple Workflow Service, Amazon SQS, Amazon SNS, Amazon Elastic Transcoder, Amazon CloudWatch, Amazon Mobile Analytics, AWS Key Management Service, AWS Lambda, and AWS CodePipeline.

We also have an introductory free trial for AWS Device Farm. The AWS Device Farm free trial is not impacted by the 12 month introductory period, and expires when you use up your free trial device testing minutes.

If you want to estimate your monthly bill, you can use our forecasting tool in the billing console.

Sincerely,
The Amazon Web Services Team

Thanks, in advance, for your support!

Dave,

Not to worry…The only service Ask Alexa uses is the Lambda service which the note says will continue to be free. I have been doing this for close to a couple years now and have been charged only fractions of a penny. If you get a direct charge BECAUSE of Ask Alexa, let me know and I will pay your bill (that is how confident that I am that this won’t affect you).

Be sure, not matter what, to ALWAYS check your bill to see what it is currently at. Please note Amazon has a habit of rounding up, so you MAY see a penny…that is normal. Anything above that, let me know.

I have just stumbled upon Ask Alexa on this community forum (just installed Alexa and ST, so working from a novice…I’m afraid):slight_smile:

I don’t want to go back through over 3000 posts to find it…but I would appreciate any step instructions on adding Ask ALexa. I love what Michael has done over this year or so…and appreciate these developers.

Could someone point to the sections or links that best shows how to install Ask Alexa?

p.s. I have added my first app using Github for one of my ST devices, so I’m moving up from the dummy stage i feel… ha…

Any help is greatly appreciated…Curt

1 Like

I would start with this document:

http://thingsthataresmart.wiki/index.php?title=Ask_Alexa

This SHOULD get your going…I recommend following it in order as I KNOW that works :slight_smile:

If there are any terms or processes you are not familiar with, don’t hesitate to reach out via PM to me…THOUSANDS of folks (really) have installed this at this point, so you CAN get through it!

1 Like

I can attest to this. I just installed it today as a newb. Pretty painless. Just take your time and follow directions. :slight_smile:

1 Like

Just installed Ask Alexa, amazing work, really is.

I’ve also over last few days created a ESP8266 IR remote which is sending commands to my TV via its web server. I also have webCoRE running various things, again an excellent app.

What I’m trying to do now is use webCoRE to execute the codes via Ask Alexa. I have all elements working, just cant seem to get Ask Alexa to talk to webCoRE. I have created a macro in Ask Alexa which is set to execute the webCoRE piston. Telling Alexa to turn the TV on, runs the macro, but it doesn’t seem to get through to webCoRE. Live logging shows the following…

Any help would be greatly appreciated, please excuse if i’m posting in the wrong place.

Can you share screenshots the events log? Go to your IDE, the click on My Locations (upper left) then click on “Events”. This screen does NOT refresh on its own…so run your macro, then refresh that screen (Then click on "from location)…you should see a entry called WebCore:

Please remember, you can’t run any piston that has other conditions in it unless ALL of the other conditions are true. Typically, you want to ensure you are running a DO piston.

I will play with this on my system a bit more, but give that a try.

Edit I pushed out a small update…I was testing this incorrectly…this should fix it.

I’ve applied the update, works like a treat, thank you.

Bit more work to be done for me, but thanks to you all i’ve got Alexa -> Ask Alexa -> webCoRE -> ESP8266 IR running.

Thanks again.

Nicely done! If you have a unique process you did to set this up and you would like to share I could possibly put this into the documentation. I want to include a few more examples for people.

Its very much a combination of projects from others, but will write up what I’ve done so far and reference the various projects. I currently have Ask Alexa controlling turning the tv on and off, and changing the channels using channel names. Alexa does have some challenges getting BBC1 correct!

Been looking at how to mange the various commands I want to say to Alexa to change channels etc. Its going to involve quite a few macros. Is there a way to issue a command which is for a macro which then passes an argument through to Ask Alexa and then onto webCoRE. For example, ‘Alexa, ask Kitchen TV to change to BBC1’. Kitchen TV in my instance is the Invocation name, and ‘change to’ would be the macro, BBC1 being the argument/parameter. I can then have a single webCoRE piston to send the various IR commands based on the argument/parameter.

2 Likes

Nicely done…I think you have more integration that I do with Ask Alexa!

If you can share any of it with specific examples I am sure others would love to hear about them. Most people think this is just an app to turn on and off lights :slight_smile:

1 Like

Very impressive. I too would love to know more about this. I still have obstacles with pulling in a specific channel. I am running most straight Harmony/ Alexa. The inputs I have work well, say an android box, or Fire TV, however getting a third party streaming service channels (say DirectNOW) is where I get stuck. Note, as of late, I am rarely using the Android box with Kodi right now - seeing as the law suite for Add-ons has put a damper on that (temporarily?).

Thank you for the share @dham!

1 Like

HI, I think a basic question but I just started using this. I created a report called weather, every command I try it just tells me you have one report named weather. But never actually does it

any ideas

thanks

Did you add the report name to the Amazon developer slots? Are you saying “Alexa tell Smartthings to play {weather report name}” or “Alexa, ask Smartthings about the {weather report name}”

© 2019 SmartThings, Inc. All Rights Reserved. Terms of Use | Privacy Policy

SmartThings; SmartApps®; Physical Graph; Hello, Home; and Hello, Smart Home are all trademarks of the SmartThings, Inc.