mekolowich / nikola-tesla-alexa

Nikola: An Alexa Skill (and Python intent handler) for Monitoring and Managing a Connected Tesla Automobile
MIT License
9 stars 5 forks source link

Nikola

Nikola is a python application for monitoring and managing a Tesla connected automobile from an Amazon Alexa natural language device

Authors: Michael Kolowich, Andrew Payne; Additional contributions: Wayne Kozun October/November, 2016

Requires:

Notes

The Python program application.py contains the intent handlers required to accept an Alexa Intent, query and post to the Tesla API for a specific car, and return a text response to be spoken on Alexa devices such as the Echo and Dot.

The Alexa skill we designed has not been published because we have not (yet) deployed a public server and a way to handle credentials for multiple cars. We have, however, included two files -- intents.txt and utterances.txt -- that would allow an Alexa intent to be deployed easily by anyone who sets up an Amazon developer account.

The following need to be entered as Environment Variables because they contain private information:

The function DataDump() creates a file named tesladata.txt, which contains a complete dump of the data provided by the Tesla API. An example of this file is provided in this repository. (Note: location and vehicle name data is deleted for privacy reasons.)

Deploying the Nikola Skill using Cloud9

I have written up a procedure on how to deploy the Nikola skill on a personal instance of the Amazon developer console and a free server instance on Cloud9. Included are instructions on how to provision a free Cloud9 account and the steps to take in order to get the application/skill up and running. You will find this in the file: how-to-cloud9.txt. Please note that free instances of Cloud9 terminate after two hours; paid accounts will run indefinitely.

Key Files in this repository

Here are the most important files and what they do:

Credits

Much credit goes to Tim Dorr for documenting the Tesla JSON API. Also to Greg Glockner for his teslajson.py approach to unlocking that API's power.

Disclaimer

This software is provided as-is. This software is not supported by or endorsed by Tesla Motors. Tesla Motors does not publicly support the underlying JSON API, so this software may stop working at any time. The author makes no guarantee to release an updated version to fix any incompatibilities.