Teslabot: A virtual assistant for Tesla cars – Locate, lock and other features
teslabot.aiThe problem with doing this with Teslas, as I have had one for years and thought about building this, is trusting someone else to hold your credentials for your car. There is no authorization scoping and anyone with the credentials can find the car, unlock it, get in and drive it away. Also, plenty of mischief as well like opening the sun roof, the trunks, flashing the lights and honking the horn. I wish they had proper OAuth with scopes that could support use cases like this one.
Passage AI is using Smartcar.com (disclosure: my company) to build TeslaBot. We do the work facilitating OAuth2 and permission scopes so that developers do not need to handle usernames or passwords.
So now you need to trust Smartcar.com and Teslabot. This makes it even worse while not addressing any of the concerns.
However Tesla doesn’t provide a way to grant a token to a 3rd party so you (your application) would still need my tesla account credentials. How are you solving this?
Until Tesla provides auth scopes, they can't solve it. They can only proxy Tesla's API and build scoping on top of it.
I guess I am confused. I use ValetforTesla, granted it runs on my Mac, but I do not give anything other than token generated through an API call via a script, npx generate-tesla-token [1] ; after a NPM install through terminal. So yeah, its not official, but its open enough to know what it does
there are sites out there which claim security to generate tokens for you but I am not going to even begin to suggest them.
As long as you are running the software yourself then you are the only responsible party. (assuming they don't just send your credential to their server :) )
Looks pretty slick.
On another matter... how's the Otonomo C&D working out?
> anyone with the credentials can find the car, unlock it, get in and drive it away
While the first three are true, you can't actually drive the car without an authorized key. Adding a new authorized key requires an existing authorized key. However, if you have a Model 3 and keep a valet key card in your car, then yeah anyone who can unlock your car can also drive it.
You can definitely drive my Model S with only the credentials. I have been in a situation where I had to install the app on a new phone then unlock it and drive away. Model 3 may be different but I don't think it is.
I don't think that's true? You can enable keyless driving with just a Tesla account credentials.
You still need some sort of authentication before the vehicle will let you switch into drive. In a Model 3, those options are either an authenticated smartphone, a key card, or a key fob. You cannot enroll any of those three keys without having an authenticated key present.
I do not believe this is true. You can start the car with just the account credentials. You will have two minutes to start driving, as the GP states; it’s called keyless driving mode. I’m pretty sure as I have used it when my phone broke and started the car with unpaired iPad. You need a key fob or key card to add a new paired key/phone, a paired smartphone doesn't work for that.
I would take this comment a step further.
Why should anyone have credentials for my car, including the car manufacturer?
I do not have a Tesla, and I do not know what is available out there in terms of managing a Tesla from a remote location. But I am curious about using the chat bot-format for a status monitor application like this. What value does it provide to the user that is not fulfilled by an application just displaying the statuses to the user?
I get that in this case everything is handled inside of Facebook Messenger, and to some extent there is interaction that provides a value to the user such as the range calculation described in another comment by sahaskatta.
But I am curious about other situations where a chat bot provides an extra value, not only considering this application?
I once wrote a chat bot for a printer (think big photocopier with network printer functionality operated by student body of ~10 students and used by ~2000 students).
It had simple commands for showing the state of consumables or monitoring budget spent (calculated based on spent consumables). But the real value came from the chat bot requesting actions ("yellow toner at 12%, verify replacement is in storage", "A3 paper is running low, refill suggested", "heavy A4 paper empty, replace now", etc).
Of course all of this could have been it's own app with push notifications. But getting people to install that would have been much harder than having them use a chat bot in a messenger they already have. Using a chat bot also made it available everywhere, on Android, iOS, Windows, the Linux distribution of the week, if you desire even your watch or fridge, with synchronised notifications. And all that with a bit of code running on some server, none of the head aches of front-end development.
Thank you for sharing. I have always considered chat bots to be passive, but this opened my mind. Maybe I am narrow minded...
I think of chatbots as asking the question "what if we could put an AGI (artificial general intelligence) in here" and programming the closest approximation for the task. Sometimes that's a natural language interface, and that's what most people focus on (lots of money in customer support and sales automation). But if our office coffee machine had an AGI I wouldn't care about natural language comprehension, I want to be able to tell it to have coffee ready when I come to the office early and I want it to convince humans to clean it.
There is a huge API to telsa cars:
mostly through https://owner-api.teslamotors.com/
for example:
"Unlocks the doors to the car. Extends the handles on the S and X."POST /api/1/vehicles/{id}/command/door_unlockresponse:
details of the api people have discovered have been collected here: https://github.com/timdorr/tesla-api{ "reason": "", "result": true }Now, I personnaly wouldn't give credentials of my car out to folks, but you have to admit there is some interesting data that has come out of it.
for example, folks have discovered the details of how various tesla batteries charge:
https://forum.abetterrouteplanner.com/blogs/entry/29-faster-...
Chatbots are CLIs. (1)
(1) https://yagudaev.com/posts/chatbots-are-just-command-line-in...
I can agree on that. I guess it is the natural speech that is itching me.
I'm aware that some people do not care but for me the fact that it uses Faceboook messenger is an immediate non-starter for me.
Just curious, what platform would you trust more?
I would add Telegram if it's not too challenging.
Call in Nikola* and there will be zero controversy about naming.
* thanks for correcting my error!
Call it Nik or Niko for Nikolas
*Nikola
"TeslaBot" and "Elon" ? Aren't they poking a bear with these naming choices? Or is Tesla okay with this?
Can't see how using Elon would be a problem, just a name like Lisa, but I am sure if they get some traction using Tesla is a big no-no.
I don't know how trade-marks work, but Tesla is also just a name, isn't it? Maybe they just need to hire someone whose last name is Tesla and claim it was named after them haha.
The standards there are things like 'could one reasonably confuse your product or service with one provided by some other business, based on the names you're using' not 'do you have someone named Mercedes working in ops'.
Gotcha, makes sense. This is definitely better for the interests of the consumer.
As a user I find it mildly offensive. Elon himself probably would laugh it off. Not going to use this as I find the exploitation of the name kind of gross. Maybe in 100 years if he’s not around then fine... but for now it’s too soon.
“Tesla” is a separate issue and different.
But Tesla himself is not even 100 years dead....is it OK that there is a company named after him?
Of course. It’s also ok that this chatbot is called Elon.
Plenty of people get offended at stuff. That doesn’t mean they are right.
I think calling the virtual assistant "Elon" is the best part!
It is very clearly the best part. Some people are uptight.co.uk
How does this differ from using the app?
There are a few neat features that Tesla's app doesn't offer:
1) You can use it from your computer browser. (Anywhere that Facebook messenger works!)
2) It can find nearby ChargePoint stations.
3) You can ask it "Does my car have enough range to drive to San Francisco?" and it will check your car's range and the distance required to travel there!
I'm not involved with the development, but we know the folks at Passage AI building this and I hear a lot more exciting things are coming soon!
Neat! I wish the website explains the features a bit more - #2 and #3 aren't mentioned at all on the home page.
I agree, the website doesn't explain much. I found a blog post about the new features though: https://passage.ai/introducing-teslabot-v-2-0-a-passage-ai-c...
It requires using Facebook messenger, which is a non-starter for me.
Looks like they're using the SmartCar API (https://smartcar.com/tesla/). The app does most of the actions the API provides, but maybe the bot can help with aggregating data like previous locations or odometer readings?
Wow, SmartCar's pricing is insane. They have a free tier and that's nice, but a paid plan with support starts at $0.15 per request. And all this thing does is lock/unlock, location, odometer and vehicle info. Why would anyone use this?
Hi! I'm one of the co-founders of Smartcar. I'm happy to connect with you if you have more feedback on pricing. We're always looking to evolve it to ensure it is attractive/competitive and can work for your app or business. My email is sahas@smartcar.com
Imagine what will happen if the car owner's Facebook account is compromised
Awesome, works well!
I would pay $5/month if I could just talk and if my phone or Airpods were on I could control my car or check on it. "Teslabot, what's my range?"
Assuming you're on iOS due to airpods comment -- here are a bunch of actions you can add to the shortcuts app so that you can access all of that stuff via Siri
You could if you added a Snips on-device Voice AI to it, look at https://snips.ai
What’s the advantage to using this over the official tesla app?
Typing “please lock my car” seems like so much more effort than tapping “lock” in the app.
A few things that you can't do in the official app, but you can do in the Teslabot: (1) voice control - send a voice messages/commands to Teslabot, (2) find out whether your car can go to a destination such as San Francisco with the current charge - Teslabot figures out location of the car, distance to the destination, battery range and answers that question, and also the bot is available from your laptop/desktop.
I was wondering the same thing.. I understand that there are some additional features, but what is keeping Tesla from providing those features in a future app update? This is a cool product, but I wonder about the ability of it to compete with the official app, especially when they are relying on Tesla's API.
does this require Tesla account login and password or can we use!the Tesla API token?
It doesn't look like Teslabot is handling usernames and passwords. They are using Smartcar.com, which uses OAuth2 and permissions.
"Select * from TESLA where driver-status=FELON AND ownername=political-dissident AND because-fuck-you-thats-why=1"