Welcome to Tesla Motors Club
Discuss Tesla's Model S, Model 3, Model X, Model Y, Cybertruck, Roadster and More.
Register

VisibleTesla

This site may earn commission on affiliate links.
VisibleTesla 0.15 can be downloaded here.

Changes:
  • Basic documentation has been added. Click Overview.html in the Documentation folder.
  • The overview tab now displays the proper status of the charge port door and shows whether the charging cable is connected.
  • There were cases where auto refreshes never happened. They were scheduled for 300M years into the future rather than 15 seconds. That's fixed.
  • Some code cleanup with no user-visible changes.
  • The location tab no longer re-centers the map upon refresh. If, however, you pan the map such that the car marker is not visible, it will pan the map just enough to make sure the marker is showing.

All of the sources for both the app and the underlying client library are in Github. I still need to apply an appropriate open source license to all of the files.
Just a suggestion, please update the first post of the thread with the most current version available. This is the 3rd link I've clicked on this morning!

- - - Updated - - -

On 2 separate machines I get a JavaFX error, failure to execute.
 
I have a spoiler on my car, but it does not appear in VisibleTesla, but it does appear in the iOS app.
...
Also, a small item is that the charge port door does not appear in exactly the same position as in the iOS app.

VisibleTesla doesn't support the spoiler yet. It's simple to add it, but I just haven't done it yet. I will.

All I'm really able to do is eyeball the location of the charge port door. I might be able to improve its placement with some careful scrutiny of iOS screen captures, but it's not at the top of the list.

Thanks for your continued attention to the app and for creating the Mac bundle.

- - - Updated - - -

Just a suggestion, please update the first post of the thread with the most current version available. This is the 3rd link I've clicked on this morning!

- - - Updated - - -

On 2 separate machines I get a JavaFX error, failure to execute.

I replied via PM to offer suggestions on the JavaFX error.

Good idea about updating the first post of the thread.
 
Great job and thanks for taking the time to put this together!!! :biggrin:

I put together a little desktop app called VisibleTesla that allows you to do the same things that the iPhone app does, plus a few new things as well. It is based on the great work done by the folks of the "Model S REST API" thread. In fact, I announced it in that thread and have been discussing there until now. I feel that I was cluttering that thread with topics that aren't strictly about the REST API, so I started a new thread here.
 
VisibleTesla 0.16

Note:
  • As requested, I will update the first post of the thread any time I make an update. This content will be appended there.
  • You can always find the latest version of VisibleTesla in this repository. There will usually be a number of previous versions there as well. If you have problems with the latest version, you can back off to a previous version to see if it works better.

VisibleTesla 0.16 is available for download here.

If you have a spoiler on your Model S, please give it a try. If possible, try it with your trunk open and closed.
Changes:
  • The app never used to display the spoiler on cars that had it. I've implemented experimental support for that. Since my car doesn't have a spoiler, I was only able to test through simulation. If you have a spoiler on your Model S, please give it a try. If possible, try it with your trunk open and closed and let me know if you have problems or notice anomalies. [Thanks @araxara for reminding me about this]
  • The details dialog in the Overview tab now lists the firmware version of the vehicle.
  • If your car has a black roof you may have noticed that the app displayed it as a solid body color. This should be fixed. Since I don't have this configuration, I'd appreciate some testing from someone who does. [Thanks to @JohnQ for point this out]
  • The controls for the panoramic roof (open, close, vent) used to be toggle buttons, now they are just regular buttons. This fits better with what they actually do and how they work.
  • Minor code cleanup to the app and the underlying client library with no visible changes.
  • Minor documentation changes
 
Last edited:
I'll be happy to help with that (I contributed logging to a database in teslams). The issue is that the app that does the logging needs to run 24/7.

I think it might be smarter to have VisualTesla connect to the existing database. Right now I implemented some data visualization in JavaScript for teslams, but having that as part of a Java app (that has a very attractive design) might be a much better direction.

Right now the database only stores the streaming data. If there is more that we should store, I'll be happy to add that.

I would like logging of the hvac (temps) as well as the charge state info, with configurable refresh intervals for that data. Would be nice to have some interop between the different tools being developed (common logging standards/database schema). I've never done anything with MongoDB before, so still just mucking around with the teslams scripts so far. Not having a lot of luck with the visualize.js.
 
Do you plan on adding logging of telemetry info or historical vehicle info to this app? Something compatible with teslams perhaps?

I wasn't planning on it since the app typically isn't running all the time in order to collect the telemetry. It seems like it may make more sense to use the work that has been done by @hans and @dirkhh for this.

I'm interested in how people think this sort of functionality could effectively be integrated into VisibleTesla.
 
I wasn't planning on it since the app typically isn't running all the time in order to collect the telemetry. It seems like it may make more sense to use the work that has been done by @hans and @dirkhh for this.

I'm interested in how people think this sort of functionality could effectively be integrated into VisibleTesla.

I thought this would be fairly easy. Have VisibleTesla connect to the database. Then you can give people all the statistics they want. Things like
  • miles driven per day
  • time spent charging
  • total charge amount
  • ...
I don't think you want the replay feature (watch the car's path on a map in 'fast forward' mode) that I implemented in the javascript version, but there are a ton of other visualizations that I am planning and I think most of them would be better delivered in Visible Tesla (it's only I barely speak JS and no JavaFX at all...)

I am trying to add some more data to the database interface, but sadly had a script run amok on me last night (in Europe right now) and have since received a very nice email from Tesla informing me that my IP address was blocked as I was causing substantial load on their servers. So be warned when playing with the API (and don't be silly like me and let this run over night without being 100% sure that it does what you think it does...)

- - - Updated - - -

I would like logging of the hvac (temps) as well as the charge state info, with configurable refresh intervals for that data.
Danger, danger. I was implementing just that last night. The problem is that these data don't come in the streaming API so you have to make individual API calls to track them - and Tesla clearly doesn't want that to happen at high frequency. After getting my IP address blocked by Tesla I asked them what they would consider reasonable use of those APIs :)
Would be nice to have some interop between the different tools being developed (common logging standards/database schema). I've never done anything with MongoDB before, so still just mucking around with the teslams scripts so far. Not having a lot of luck with the visualize.js.
The DB part is really easy. I picked mongo because it's so much easier than a full blown SQL database. There are only a hand full of calls that you need in order to get the data out of the database.
Can you let me know what's not working for you (either here or in email)? I'll be happy to try to explain / fix things... The whole point of making this open source is so that others can play with it and make it better!
 
Note:
  • As requested, I will update the first post of the thread any time I make an update. This content will be appended there.
  • You can always find the latest version of VisibleTesla in this repository. There will usually be a number of previous versions there as well. If you have problems with the latest version, you can back off to a previous version to see if it works better.

VisibleTesla 0.16 is available for download here.

If you have a spoiler on your Model S, please give it a try. If possible, try it with your trunk open and closed.
Changes:
  • The app never used to display the spoiler on cars that had it. I've implemented experimental support for that. Since my car doesn't have a spoiler, I was only able to test through simulation. If you have a spoiler on your Model S, please give it a try. If possible, try it with your trunk open and closed and let me know if you have problems or notice anomalies. [Thanks @araxara for reminding me about this]
  • The details dialog in the Overview tab now lists the firmware version of the vehicle.
  • If your car has a black roof you may have noticed that the app displayed it as a solid body color. This should be fixed. Since I don't have this configuration, I'd appreciate some testing from someone who does. [Thanks to @JohnQ for point this out]
  • The controls for the panoramic roof (open, close, vent) used to be toggle buttons, now they are just regular buttons. This fits better with what they actually do and how they work.
  • Minor code cleanup to the app and the underlying client library with no visible changes.
  • Minor documentation changes

The black roof does render successfully. Note that the pano roof appears first then gets overlaid with the black roof within 0.5s ...

Just a note, the title bar on the app still shows v0.15.
 
Last edited:
@JohnQ: Thanks for testing the black roof. Let me explain why the pano roof renders first and is then replaced by the black roof.

To acquire all of the information required by the Overview Tab I need to make a number of REST API calls to Tesla. I could display nothing (just the spinner) until I get all of the required information and then display it all at once. That's what I did originally and is more like the iPhone app when it first starts. I didn't like seeing a big empty space so I decided to display what I could with the basic data that I had by the time you were logged in, then refine it. I launch a number of background requests to Tesla and as the information arrives I refine what is displayed. That's why the Odometer reading, the wheel selection, and the roof type might get updated shortly after the Overview Tab is first loaded.

Long story short, this is an expected behavior based on a conscious choice - which may be the wrong one :)

In other news:

The version number has been fixed (now reads 0.16).

I tried VisibleTesla in a Linux vm (Mint 15) and it seemed to work fine. I did not test extensively. I was doing something else so I decided to try it. Installing java took a few steps, but after that it was smooth sailing.
 
@JohnQ: Thanks for testing the black roof. Let me explain why the pano roof renders first and is then replaced by the black roof.

To acquire all of the information required by the Overview Tab I need to make a number of REST API calls to Tesla. I could display nothing (just the spinner) until I get all of the required information and then display it all at once. That's what I did originally and is more like the iPhone app when it first starts. I didn't like seeing a big empty space so I decided to display what I could with the basic data that I had by the time you were logged in, then refine it. I launch a number of background requests to Tesla and as the information arrives I refine what is displayed. That's why the Odometer reading, the wheel selection, and the roof type might get updated shortly after the Overview Tab is first loaded.

Long story short, this is an expected behavior based on a conscious choice - which may be the wrong one :)

In other news:

The version number has been fixed (now reads 0.16).

I tried VisibleTesla in a Linux vm (Mint 15) and it seemed to work fine. I did not test extensively. I was doing something else so I decided to try it. Installing java took a few steps, but after that it was smooth sailing.

Your choice makes sense, not an issue at all.
 
To acquire all of the information required by the Overview Tab I need to make a number of REST API calls to Tesla. I could display nothing (just the spinner) until I get all of the required information and then display it all at once. That's what I did originally and is more like the iPhone app when it first starts. I didn't like seeing a big empty space so I decided to display what I could with the basic data that I had by the time you were logged in, then refine it. I launch a number of background requests to Tesla and as the information arrives I refine what is displayed. That's why the Odometer reading, the wheel selection, and the roof type might get updated shortly after the Overview Tab is first loaded.
I haven't tried the app so this may be a dumb question.

Do you cache any of the "answers" across runs of the application? If so, just remember the "car attributes" (color, roof, wheels, interior, spoiler, etc.) and use that as the initial rendering until you get updated data. I would argue that for most cars your cached answer will be right 100% of the time. (For example, I don't plan to change any of these attributes -- ever -- on my vehicle.)
 
I haven't tried the app so this may be a dumb question.

Do you cache any of the "answers" across runs of the application? ...

Not a dumb question at all. This approach makes perfect sense and I have considered it. It's actually very easy to do - in sort of a brute force way. I feel that there is a cleaner way to do it by serializing the underlying objects, but I haven't had the time to think about it carefully. It's on the list to consider, but my next chunk of continuous time will probably be spent on charge percentages.
 
VisibleTesla 0.16 is available for download here.

If you're looking for a place to host the code, I've got several slots open in my Google Code section. Git or Subversion.

BTW, I've got the source for 1.4 working with Gradle, and generating native OS X version of the app. It's pretty easy to shuffle the dirs around to what Gradle or Maven want (Gradle is nice because it can auto generate IDEA and Eclipse projects. Not sure what NetBeans has for Gradle).

Are you doing the fxml files by hand, or using Scene Builder?
 
VisibleTesla Sources

The sources for VisibleTesla are posted on github. I'm a github neophyte to say the least, so I've been following the guidance given by @dirkhh. Thank you.

There are two repos. One is for the underlying client library and the other is for the app. You need them both. The readme for each project lists other libraries that you'll need to have, where to download them, and how to set up the expected directory structure. The repos are here:

TeslaClient
VisibleTesla

I haven't gone through all the sources and added open source licenses yet, but I will do a cleanup pass on that some time soon.
 
o/t: just opened the app and was checking the fixed behavior with google maps in satellite view and noticed the image of my house was now current, for the last few years it showed an image without the solar panels on my roof, about two years old now, and all of the sudden this am, BOOM, solar panels. that was... creepy actually. not sure how i feel about it all! lol.

anyway, back to topic, thanks again for doing this! love it.