After getting an EV many years ago (not a Tesla) which had a truly terrible phone app for checking charge status, starting charging and turning on the heater remotely, I reverse engineered the API and wrote my own web-based tool to control the car. It worked great until 3G was disabled last year.
The Tesla app is great, but with one caveat: it won't let you turn on climate controls until the car has "woken up". Upon opening the app, this usually takes 5-15 seconds, but when I first got the car, sometimes took a full minute.
Someone else had already reverse-engineered the Tesla API, and I wrote a quick app that would just let me press a button and it would wait for the car to wake up and turn on the climate controls in the background.