Hallo zusammen,
ich habe mich mal mit der Tesla API auseinandergesetzt und mir eine kleine Apple Watch geschrieben, mit der ich die wichtigsten Dinge auf die schnelle machen kann.
Das ganze ist jetzt schon eine ganze Weile her und hat sich zu einer ausgewachsenen App entwickelt. Diese wird ständig weiterentwickelt, es lohnt sich also hier immer mal wieder reinzuschauen
Aktuell gibt es eine offene TestFlight Version um die neue API zu testen. Hier der Link dazu;
App ist jetzt im App Store verfügbar:
Grüße,
Stefan
Planungen nächste Versionen:
Version 2.4
- Einbau der neuen Tesla API
- Einige Verbesserungen der Premium Services.
- Bug Fixes
Ich bekomme keine Komplikationen auf der Watch angezeigt
Bitte mal folgendes probieren:
1.) Neustart Apple Watch
2.) Start der S3XY App auf der Apple Watch
3.) Schauen ob die Komplikationen da sind.
TestFlight Einladung (aktuell mit Version 2.2) :
TestFlight ist aktuell nur noch per Einladung möglich.
Wer teilnehmen möchte, bitte ein PN an mich.
Prei/Abo:
Da die Funktionen zum steuern des Teslas keinen Service im Hintergrund benötigen, wird es auch kein Abo benötigen. Denn meine Einstellung dazu ist ganz klar: Kein Service, kein Abo…
Der Preis beträgt 5.99€…
Die Funktionen zum Sammeln der Daten (z.B. Fahrten und Laden) benötigen natürlich einen Service, welcher im Hintergrund die Daten unabhängig von iPhone sammelt. Dafür wird das Premium Services Abo benötig.
Was zum technischen Ablauf:
Es gibt zwei Möglichkeiten mit dem Tesla zu kommunizieren:
1.) Bluetooth. Da wird immer zuerst versucht, da es die schnellste Methode ist. Jedoch funktionieren nicht alle Befehle über Bluetooth.
2.) Die API. Dafür müssen die Befehle über das Internet verschickt werden. Auch hier gibt es ein paar Befehle, die nicht per API gehen.
So wird vorgegangen.
1.) Prüfen ob Bluetooth verfügbar (also gekoppelt und verbunden)
2.) Prüfen ob der Tesla wach ist, wenn nicht wird er aufgeweckt. Wenn der Befehl per Bluetooth ausgeführt werden kann, geht das sofort, da der Tesla nach dem aufwecken per Bluetooth sofort wach ist.
3.) Wenn der API aufgeführt werden kann, muss in Intervallen geprüft werden, ob der Teslas wach ist. Das kann bis zu 40 Sekunden dauern.
4.) Jetzt wird erstmal der aktuelle Status des Teslas abgefragt, da ja entschieden werden muss, ob z.B. der Befehl zum öffnen oder verschliessen ausgeführt werden muss.
5.) Jetzt wird der Befehl’ per API versendet, das gibt im optimal Fall eine Erfolgsmeldung zurück. Jedoch nicht den neuen Status.
6.) Jetzt wird der neue Status des Teslas geholt. Das kann auch nicht sofort gemacht werden, da manchmal trotz Erfolgsmeldung noch der alte Status zurückgeliefert wird,.
7.) Erfolgs- oder Fehlermeldung ausgeben.
So mal der „vereinfachte“ Flow, wenn ein Befehl ausgeführt wird.
Zum Thema Watch:
Auch hier wird zuerst Bluetooth verwendet, geht das nicht, passiert folgendes:
Wenn das iPhone verbunden ist, wird der Befehl immer über das iPhone ausgeführt, da das die beste Performance gibt.
Ist das iPhone nicht verbunden, wird der Befehl direkt auf der Watch ausgeführt. Das würde dann entweder über WLAN oder Mobilfunk passieren. Wenn beides nicht verfügbar ist, kann der Befehl natürlich nicht ausgeführt werden.