All you need to integrate your PicoBrew Zymatic (and Pico?) with the Amazon Echo (Alexa)
DISCLAIMER: I am not in any way affiliated with PicoBrew Inc. This is an UNSUPPORTED, UNOFFICIAL application written because I wanted it.
You: "Alexa, ask PicoBrew..."
"...what the current state is"
"...what's the status"
"...what it's doing"
"...what the status is"
Alexa: "Your machine is currently brewing 'Beer Name'. The current step is 'Step Name'"
Alexa: "Your machine is currently Cleaning. The current step is 'Heat Water'"
Alexa: "Your machine is idle"
"...how much time is left"
"...when this brew will end"
"...when it will be finished"
Alexa: "You are not currently brewing"
Alexa: "You have been brewing for about 2 hours and 10 minutes. You have approximately 1 hour and 47 minutes left"
NOTE: This is a rough estimate and doesn't take into account pauses, etc.
"...when my last brew was"
"...when the last brew was"
"...when's the last time I brewed"
"...when did I brew last"
Alexa: "You have never brewed on this machine"
Alexa: "Didn't you know? Your machine is currently brewing 'Hop Bomb 5000'. The current step is 'Dough In'"
Alexa: "The last time you brewed was Last Wednesday at 4:36pm. It was called 'Nasty Boh'"
Alexa: "The last time you brewed was December 25th, 2016 at 11:07am. It was called 'Meister Chow'"
"...if I rinsed after my last brew"
"...did I rinse after my/the last brew?"
"...if I rinsed"
Alexa: "No, You did NOT rinse after your last brew"
Alexa: "You are brewing now. Though after your previous brew you did. Don't forget to rinse this time!"
Alexa: "No you didn't, but you cleaned, so you're OK"
"...how many times I have brewed since the last clean(ing)"
"...how many brews since it was cleaned"
"...how many brews I've done since it was cleaned"
"......when it was last cleaned"
Alexa: "You have never cleaned or brewed on this machine"
Alexa: "You last cleaned Last Friday at 8:05pm. You have brewed one time since then"
**more to come**
WARNING: This only works for Zymatics and only if you have ONE Zymatic
I personally own a single Zymatic and zero Picos. Therefore, I don't have the ability to work with/test a situation with more than one Zymatic or any Picos.
If you have more than one Zymatic, it will just pick the first one returned from the picobrew website.
If anyone out there wants to help me with that, please contact me by email: tommck at gmail dot com
TODO
- Install NodeJS (latest LTS is probably fine, though Amazon currently uses 4.2)
- Either download the code or use
git
if you're familiar. - In the
alexa-picobrew
folder runnpm install
-- This will install all the dependencies - Edit the
src/config.ts
file to the following fields:- appId - your Amazon Skill ID - can be fake to start with, but will need to be updated before deploying to AWS
- picobrew.auth.user - the ID you use to login to the PicoBrew website
- picobrew.auth.pass - the password for that ID
- run
npm run build
-- This should result in no errors - run
npm run test
-- this will run unit tests (not real connection)
In order to test everything without Alexa involved, you can run things from your own machine.
To do this, edit the spec/picobrew-service.spec.ts
file and change the following line near the top of the file
var USE_FAKE_CALLS = true;
to
var USE_FAKE_CALLS = false;
This will cause the 'test' code to actually make calls to the PicoBrew website instead.
Now, if you run npm run test
, all the tests will actually hit PicoBrew's servers.
TODO
TODO
TODO
First recommendation is to follow the instructions in the "Testing the code" section above to run then locally on your machine.
TODO: More Info
This is written using TypeScript and NodeJS.
Thanks to the following for inspiring this project:
- Ryan Graciano and his echo-sonos project, and
- Todd Quessenberry and his whatspicobrewing project