TMonitor.app - Tesla Powerwall monitoring app for macOS
Monitoring Tesla Powerwall via macOS Menubar
TMonitor.app is a macOS menubar utility that lets you see information about your Powerwall system(s) at a glance. I made this to scratch my own itch -- specifically, I wanted to be able to view data about multiple Energy Sites and see a small slice of historical data (yesterday & last month).
Download TMonitor-0.2.9-mac.zip (77.9MB)
- IMPORTANT NOTES
- Currently macOS only -- tested on macOS 12.13.1 though should be resillient (+/-).
- Autoupdate is ON and currently cannot be disabled; I'll eventually add a boolean option.
- If the app sponaneously restarts that just means newer version(s) were released.
- MFA is not yet supported.
- It IS fully code-signed and notarized.
High Level Caveats / Disclaimer
Some caveats since I'm releasing it for free! :)
- I can't promise that it will always be free. The version you download will be free, but I may decide to charge for future versions. I may even open-source it in the future, who knows. Right now it solves my "current need" but that may change over time.
- I can't promise that I continue to maintain it, though I do wholly intend to since I use it every day across all of my macOS machines!
- Tesla's Multi-Factor Auth (MFA) is NOT yet supported -- likely will add support in the future.
- If you encounter bugs, please let me know -- I can't promise a fix but I'll certainly try my best to get it fixed.
- TMonitor currently always has auto-updates ENABLED and they can't be turned off right now. This is so I can ship fixes to all my computers without any fuss.
- The app has no analytics, doesn't phone home, etc -- the update check simply pings an AWS S3 bucket, to see if a newer version is available and, if a new version is available it is downloaded immediately & then the application will auto-restart into the new version. If you DO NOT want this behavior then the only way to turn it off, right now, is to block external connections to non-Tesla servers by TMonitor.app -- it'll continue working without issue.
TMonitor.app was made to satiate my thirst for data & monitoring capabilities -- though I also chose some tech that I wanted to play with so that I could learn things along the way. Those decisions have some drawbacks but that's just how it goes when working on side-projects & trying to kill multiple birds with a single toss. Here's how TMonitor.app is built:
- Electron JS
- Electron Cross-Platform Menubar Sample/Demo
- VueJS (Vue 3x)
- TeslaJS API Helper Lib (custom fork is used because not all energy-related endpoints are in the upstream repo)
Biggest Downside of the Tech Stack: Filesize
The MAIN major downside here is that the app is "heavier" than is optimal though it's still quite lightweight; really the main practical drawback, for day-to-day/consumer use, is that the binary itself is way larger (filesize) than it needs to be. It's MUCH larger than the same app would/could be if written in native code, obviously.
On the "Plus side" of the coin: it would only take a few hours of work, mainly QA & visual tweaks, to get the app running on Windows & Linux! :)
Other macOS Tesla Energy 'Monitoring Apps'
There is another tool out there, Powerwall Monitor, which is very good and performs a similar function. I purchased a license for it and have corresponded a bit with the developer, who is great & super responsive.
Unfortunately, if you have more than 1 'energy site' (gateway) on your Tesla account then the Powerwall Monitor app will just "pick" one of the two and show you data about that one, you can't view aggregated data nor can you choose which 'Energy Site' you are viewing data for.
That said, it's a much simpler application & performs a nearly identical function -- though it only shows you information about 'current state' and does not provide any options for viewing historical data -- it does display the data in a much nicer layout. For this project, I was personally all about function-over-aesthetics; in the future I'll probably improve it further but for now it's highly usable. :)