So, das ganze nimmt nun Form an, anbei ein paar kurze Erklärungen.
Hier erstmal das Komponentendiagram:
Der Obere Zweig ist stable und funktioniert mit Model S, X und 3. Die Logik ist wie folgt:
Scraperdaemon wird gestartet. Je nach Config fängt er sofort an die Owner API abzufragen, oder wartet auf Befehl durch die App (a_start_disabled).
Der Befehl an die Scraper-Api durch die App kann manuell ausgelöst oder durch einen Bluetooth Connect auf das Fahrzeug automatisch getriggert werden. Verlasse ich das Fahrzeug bzw kommt es zu einem Bluetooth Disconnect kann ich nach einer vorgegeben Karenzzeit automatisch das scrapen beenden. (Die Karenzzeit beugt unbeabsichtigtem Bluetooth Disconnect vor (Akku Leer, Beifahrer koppelt sich etc). Der Timeout kann immer manuell abgebrochen werden.
Übergangen werden kann das „disableScrape“ Kommando ebenfalls durch Ladevorgänge. Das heisst, wenn ich das Fahrzeug irgendwo anstecke und mich entferne, der Python Daemon aber einen Ladevorgang mitbekommt, läuft der Scraper weiter, bis der Ladevorgang beendet wird.
Ist ein fahrzeugseitig scheduled Charging eingestellt, fängt der Scraper zum geplanten Zeitpunkt an, die API abzufragen.
Wer die Scraper Api mit der App nutzen will sollte diese auf jeden Fall per Reverseproxy hinter einem Webserver verbauen, da der http-thread im Pythondaemon kein SSL implementiert hat, und somit der Scraper Api Key im Klartext durchs Internetz fliegen würde. Weiterführende technische Infos gibts auf GH.
[url]https://github.com/lephisto/tesla-apiscraper[/url]
App:
[url]https://play.google.com/store/apps/details?id=to.mephis.apiscrapercontrol[/url]
Der CAN3/OBD Teil ist optional, und derzeit nicht im Produktivrelease, ich warte derzeit noch auf mein OBD2 Kabel zum testen. Hier wird man interessante Detaildaten zu den Batteriemodulen, BMS Metriken, Beschleunigungswerte, AP-Status etc. über die restlichen Metriken legen können, die aus der Owner-API fallen. Die Daten werden über die RestAPI in den Scraperdaemon übertragen und von dort aus in der InfluxDB landen, von wo aus sie dann im Grafana visualisiert werden können. Voraussichtlich wird dieser Teil erstmal nicht im Model 3 funktionieren, da noch kein Zugang zum CAN Bus gefunden wurde.
besten gruß