Monthly Archives: April 2017

Starting a new Alexa skill from scratch

That’s right! I’m going to attempt the impossible.

Since I don’t have a ton of fun smart lights or windows or doors etc etc laying around my house, I figured I’d utilize Alexa for skill planning and time management. My wife and I usually have a “to do” list in our shared google calendar. This to-do list moves every day, if not to the current day then to the day when we will have time to do the things on the list. Sometimes there are busy days when we don’t have anything to do. Sometimes there are free days, and my wife will move the list to that day.

Alexa already has functionality to tell me what’s on my calendar for the day I’m asking about. Alexa doesn’t, however, have functionality to read the description of that event, parse it, and give me a list of everything on my to-do list. (or even add to it and subtract from it.) I’d like to leverage the Google Calendar API and an AWS lambda function to create a skill that will help me to read/write to the calendar and to give me an option to hear the list of things I need to do that day.

So getting started, I need to write out/create my:

  • Intent Schema: Ideas for this include “GetAllDailyItems”, “PeekDoList”, “AllDoList”, “AddToDoList”, “CompleteFromDoList”, “Help”
  • Custom Slot Types: I don’t anticipate needing to create any custom slot types but we will have to see how I can interpret data from the Google calendar API and pass it to the lambda function.
  • Built-In Slots: After a brief review of the built in slots, I might need “Day of the week” and “month”.
  • Sample Utterances:
    • “PeekDoList Alexa, What do I have to do today?”
    • “PeekDoList Alexa, What’s on my to-do list?”
    • “AllDoList Alexa, Read all of my items on my to do list.”
    • “GetAllDailyItems Alexa, What is on my calendar today?”
    • “AddToDoList Alexa, put {item} on my calendar do list today.”
    • “CompleteFromDoList Alexa, mark {item} on my calendar do list as complete.”
    • “Help Alexa, help.”
  • A Visual Representation of The Menu/Model: I’ll take a stab at this after setting up the intents and samples properly.
  • Companion App Cards: Not sure if this will be needed as the visual representation will be right in the google calendar.

I’m sure this will be messy but we’ll try to get it done.

Playing with Alexa

Today I started working on a new project – writing a simple trivia game to be played using Amazon’s Alexa service. By writing, of course, I mean copying someone else’s work as a template and following a tutorial to get the results I wanted even though I never actually knew what I was doing.

From my understand of this though, there are two sections to publishing a ‘Skill’ that can be used by an Amazon Echo/Dot/Tap/etc.
The first is a Lambda function from Amazon Web Services which contains all the code for your skill. This is connected to your Amazon developer console where you can create Alexa skills and set up instructions for how your code interacts with Alexa. From this console you can test your created skill and submit it for publishing.

The entire scope of AWS seems massive, and the Lambda function was just one of around 50 services used for computation, development, data management, security, etc. That alone was extremely intimidating, but there were also so many services that Amazon can connect to and so many different ways to use Alexa that it feels like it would be very difficult to get the hang of everything. I’m assuming that most people only focus on one kind of thing though.

For now i’d be interested to learn more about how Alexa interacts with outside services. I’m very interested in home automation and I’d love to integrate my own skills that can be used inside my house. I guess we’ll see how this goes with the next few alexa projects.