Visible Tesla 0.1
I slapped together a Java client library and a little interactive command line tool to test it out. I've been meaning to learn a little about the JavaFX library and tools so I set out to put together a simple GUI. I haven't been a programmer for a living for many years and only had little snippets of time to work on this, but I got the basics working. My lower level client library provides access to the streaming APIs, but I didn't expose that functionality in the app (yet, or maybe ever).
Moderators: I've included 12 screenshots below. If there are too many and they should be links instead, I am happy to edit the post. I wasn't sure about the etiquette for this.
The app has a tabbed interface with one tab per functional area. When you launch you start out in a login tab and the other tabs are disabled until you log in. If you've logged in before then it automatically logs you in again based on stored cookies. This screenshot shows the logged-in state:
The Overview tab shows basic state about the vehicle and gives access to commands like lock/unlock, operating the panoramic roof (if you have one), flashing the lights, etc. These screen shots show the overview tab reflecting various states of the car. The roof was vented using the "Vent" button.
Next we have the HVAC tab which shows the state of that system. It also allows you to set the target temperature and turn on/off the system.
The location tab embeds a Google map to show the current location and the marker is rotated to show the current heading. There is a "Browse" button that will launch a browser displaying a Google map with the car's location so you can get directions, etc.
The last tab shows the charge state and allows you to set the charge target (max or std) and start/stop charging. The screen shots show the car when not connected to a charger, connected but not charging, and charging. In this case it is connected to an HPWC which is still limited to 60A.
This screen shot shows the "spinner" that is displayed when the app is communicating with the vehicle. Each tab has a refresh button and the app auto-refreshes once 15 seconds have elapsed since the last manual or automatic refresh. Switching tabs does an auto refresh on the newly selected tab.
Finally, I added a simulation menu so I could look at vehicle configurations other than my own. These screen shots show changing the color to red and using dark rims. I don't have images for every possible configuration including the 19" wheels which I happen to have.
It's been a fun exercise. I wish they would add a few more bits of functionality to the API. For example, I'd love to be able to send a destination to the nav system.