Alexa-Lambda-Kegbot is an Alexa Skill for communication with your Kegbot. Currently is supports the following:
- What's on tap?
- How much is left?
For a more home friendly setup, maybe the alexa-app version is better: alexa-app-kegbot
- node - NodeJS http://nodejs.org
- request - NodeJS package https://www.npmjs.com/package/request
- alexa-sdk - NodeJS package https://www.npmjs.com/package/alexa-sdk
- AWS account with a connection to your Kegbot server to run the lambda
- AWS Developer account from https://developer.amazon.com to create skill
- Setup a new custom Alexa Skill on https://developer.amazon.com/
- Login
- In the ALEXA tab, choose Alexa Skills Kit
- Add a New Skill
- Skill Information
- Skill Type as Custom Interaction Model
- Name - Give it a name
- Invocation Name - Give it an Invocation Name. For "Alexa, Ask Kegbot..." use Kegbot.
- Next
- Note ID at the top of the page
- We'll come back to this later
- Download Code
- Clone Repo:
git clone https://github.org/patfreeman/alexa-lambda-kegbot.git
cd alexa-lambda-kegbot
npm install
cp config_example.js config.js
vi config.js
- Set your Kegbot configuration. Protocol, host, port, API key (if required)
zip -r ../alk.zip ./
- Clone Repo:
- Create Lambda
- In the AWS Lambda console https://console.aws.amazon.com/lambda/home?region=us-east-1#/
- Create a Lambda Function
- Choose a blank function
- Click the box and choose Alexa Skills Kit, then Next
- Name - Give it a name
- Description - if you care
- Runtime - Choose NodeJS 4.3
- Upload a .ZIP file
- Function Package - Choose the ZIP you created above
- Handler needs to stay as index.handler
- Role - lambda_basic_vpc_execution should be enough.
- Memory - 128MB is more than enough
- Timeout - Set this to greater than the value you defined in config.js
- Choose your VPC, Subnet, and Security Groups that have access to your Kegbot server
- Click Next, then Create Function
- Note ARN in upper right corner
- Go back to Alexa Skill setup on https://developer.amazon.com/
- Interation Model
- Paste intent_schema.txt into Intent Schema
- Paste sample_utterances.txt into Sample Utterances
- Next
- Configuration
- Choose AWS Lambda ARN
- Paste the ARN for your Lambda created above
- Test
- Try it with a sample utterance
- Interation Model
- Try talking to Alexa