{"id":15704089,"url":"https://github.com/timdorr/teslalexa","last_synced_at":"2025-10-10T16:44:59.788Z","repository":{"id":66464672,"uuid":"79294762","full_name":"timdorr/teslalexa","owner":"timdorr","description":"Control your Tesla with Alexa","archived":false,"fork":false,"pushed_at":"2017-01-21T03:49:16.000Z","size":9,"stargazers_count":6,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-10T16:44:59.266Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/timdorr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-01-18T02:23:59.000Z","updated_at":"2023-12-28T17:34:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"50d6fe37-c6b8-4894-8018-69aa2c61e5aa","html_url":"https://github.com/timdorr/teslalexa","commit_stats":{"total_commits":8,"total_committers":1,"mean_commits":8.0,"dds":0.0,"last_synced_commit":"6ccf7813070e474a547b21c3645430c307e35ded"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/timdorr/teslalexa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timdorr%2Fteslalexa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timdorr%2Fteslalexa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timdorr%2Fteslalexa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timdorr%2Fteslalexa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/timdorr","download_url":"https://codeload.github.com/timdorr/teslalexa/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timdorr%2Fteslalexa/sbom","scorecard":{"id":885704,"data":{"date":"2025-08-11","repo":{"name":"github.com/timdorr/teslalexa","commit":"6ccf7813070e474a547b21c3645430c307e35ded"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":0,"reason":"Found 0/8 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Info: FSF or OSI recognized license: MIT License: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-24T09:57:23.987Z","repository_id":66464672,"created_at":"2025-08-24T09:57:23.987Z","updated_at":"2025-08-24T09:57:23.987Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279004705,"owners_count":26083751,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-03T20:10:18.135Z","updated_at":"2025-10-10T16:44:59.743Z","avatar_url":"https://github.com/timdorr.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Teslalexa [![npm][npm-badge]][npm]\n\nControl your Tesla from Alexa. Uses the [Tesla JSON API](https://github.com/timdorr/model-s-api).\n\n## Prerequisites\n\n- [NodeJS](https://nodejs.org/) (4.3 or higher)\n- An [AWS (Amazon Web Services) account](https://portal.aws.amazon.com/gp/aws/developer/registration/index.html)\n- An [Amazon Developer account](https://developer.amazon.com/edw/home.html)\n- [awscli](https://aws.amazon.com/cli/) installed and configured\n\n## Install\n\n**Yes, I know this is huge. I'm looking to automate this more in the future. PRs to help are appreciated!**\n\n1. Go to the [Releases tab](https://github.com/timdorr/teslalexa/releases) and download the zip or tar.gz of the latest release.\n2. Unzip to somewhere and open up a terminal console in that location.\n3. Run `npm install` to obtain any dependencies.\n4. In AWS, [create a function in Lambda](https://console.aws.amazon.com/lambda/home?region=us-east-1#/create/select-blueprint):\n  1. Choose the Blank Function blueprint.\n  2. Select Alexa Skills Kit as your trigger.\n  3. Name the function TeslaControl and make sure the Runtime is Node 4.3.\n  4. Leave the code section alone.\n  5. Set the following Environment Variables:\n    - TESLA_EMAIL - Your tesla.com email address\n    - TESLA_PASS - Your tesla.com password\n    - TESLA_VIN - The VIN of the vehicle you want to control\n    - TESLA_CLIENT_ID - You can get these two [here](http://pastebin.com/fX6ejAHd)\n    - TESLA_CLIENT_SECRET\n  6. Under Role, Create a new role from a template. Name it TeslaControl and choose the Simple Microservice permission.\n  7. Create the function and grab the ARN from the top right of the screen.\n  8. Head over to [the IAM section](https://console.aws.amazon.com/iam/home) of the AWS Console and go to Roles.\n  9. Select the TeslaControl role and click on the policy that starts with `AWSLambdaMicroserviceExecutionRole-`.\n  10. Edit the policy and change the Action section it so it reads:\n  ```json\n  \"Action\": [\n      \"dynamodb:*\"\n  ]\n  ```\n  11. Validate the policy to be sure it's right and Save it.\n5. In the Amazon Developers Console, [create a new Alexa skill](https://developer.amazon.com/edw/home.html#/skill/create/):\n  1. The Skill Type is Custom Interaction Model, you can name it whatever you want, and the Invocation Name should be \"my car\" (\"my Tesla\" will also work. I wouldn't recommend \"my Model S\")\n  2. In the Interaction Model tab, copy the contents of `intents.json` into the Intent Schema, and `utterances.txt` into the Sample Utterances box.\n  3. Create two Custom Slot Types:\n    - LOCK_UNLOCK\n    ```\n    lock\n    unlock\n    ```\n    - START_STOP\n    ```\n    start\n    stop\n    ```\n  4. On the Configuration tab, choose the AWS Lambda ARN as Service Endpoint Type, region of North America, and enter the ARN from the AWS Lamda function you created.\n  5. On the Test tab, it should be enabled for testing on your account.\n  6. Grab the ID at the top of the page (starts with ` amzn1.ask.skill`).\n6. Head back to the AWS Lambda function you created and add a new APP_ID environment variable with the Skill ID you just copied.\n7. Back in the terminal console, run `npm run lambda` to publish the code to your Lambda function.\n8. Back in the Amazon Developer Console, you should be able to test with an utterance of \"Tell my car to log in\" and get back some code that says something about being logged in.\n9. Also run \"Tell my car to get vehicle\" to make sure it can find your vehicle.\n\n[npm-badge]: https://img.shields.io/npm/v/teslalexa.svg?style=flat-square\n[npm]: https://www.npmjs.org/package/teslalexa\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimdorr%2Fteslalexa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimdorr%2Fteslalexa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimdorr%2Fteslalexa/lists"}