[funktioniert!] Tesla REST API von timdorr

Hallo zusammen,

ich fummle gerade ein bisschen quick&dirty mit der Rest API von Tesla herum, in PHP und der PHP-Curl-lib:

docs.timdorr.apiary.io/

Ich kann mich schon einloggen und die noch nicht vorhandenen Fahrzeuge ( :wink: ) auflisten lassen (ab Dienstag dann). Denke der Rest funktioniert ganz gut.

<?php
//error_reporting(E_ALL); ini_set('display_errors', 1);

function curlexec($command,$mode="GET",$params="") {
        $url = 'https://portal.vn.teslamotors.com/';
        $init=0;
        do {
                if ( $init == 1 ) {
                        login();
                }
                $ch = curl_init();
                curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($ch,CURLOPT_COOKIEJAR, "cookie.txt");
                curl_setopt($ch,CURLOPT_COOKIEFILE, "cookie.txt");
                curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);

                if ( $mode == "POST" ) {
                    curl_setopt($ch,CURLOPT_URL, $url.$command);
                    curl_setopt($ch,CURLOPT_POST, 1);
                    curl_setopt($ch,CURLOPT_POSTFIELDS, $params);
                } else {
                    curl_setopt($ch,CURLOPT_URL, $url.$command.$params);
                }
                $result = curl_exec($ch);
                $rc=curl_getinfo($ch,CURLINFO_HTTP_CODE);

                $init++;
                curl_close($ch);

        } while ( $rc != "200" && $command != "login" && $init<2 );

        return $result;
}

function login() {
        curlexec("login","POST",array("user_session[email]" => "[email protected]","user_session[password]" => "deinpasswort"));
}

print curlexec("vehicles");

…und so funktionierts - kommt halt nix zurück:

[root@localhost 16:29:54 /var/www/cron]# php -q teslatest.php [] [root@localhost 16:29:58 /var/www/cron]#

Verdammt, das sieht spannend aus (vor allem die weiteren dokumentierten Funktionen).
Jetzt fehlt nur noch eine api sowie Installationsmöglichkeit für Apps im Fahrzeug :wink:

Ich will das nachher auch in die Haussteuerung integrieren. Termin - Fahrtzeit - 30 Minuten: Vorklimatisieren und so… :slight_smile:

Wenn man dies auf einem kleinen Homeserver laufen lässt und man einen am Internet angeschlossenen PV-Wechselrichter hat sollte es doch auch ganz einfach sein, die Ladeleistung an die aktuelle PV-Energie anzupassen?

Eigentlich wär’s schon cool, die Mobile-App als Website zur Verfügung zu stellen - hättet ihr da Interesse dran? Ggf. würde ich dies dann umsetzen.

JA!

Ja klar !

Na gut… gibt’s von Tesla eine offizielle Aussage zur Nutzung des APIs? Geht das „in Ordnung“ oder wurde einfach reverse engineered?

Ich hatte es schon mal hier verlinkt. Es gibt bereits ein Projekt auf github

[url]https://github.com/hjespers/teslams[/url]

Hier ist sicherlich etwas verwendbar.

Das gibt es fast - such mal im Chrome Store nach „Tesla“ :slight_smile:

Einige Links zum alten API gibt es hier: teslamotorsclub.com/showwiki … s+and+Apps

Ein neues API scheint zu kommen (wird in den App von Tesla scheinbar schon benutzt). Authentisierung neu über OAuth. Es kann aber legal nicht benutzt werden, da ein API-Key nötig ist.
Infos in teslamotorsclub.com/showthre … API/page99

In n Tesla-Monaten wissen wir mehr :wink:

Ich baue es auch in meine Haussteuerung (Verbund Linux-Server/GIRA Homeserver/KNX), das spart mir die Hardwareladesteuerung, ich kann dann einfach an meiner festinstallierten CEE-16 laden und steuere die Ladung vom Model S aus.

Das ist ja cool. Mit der API wäre es möglich scheduled charging zu realisieren. Leider habe ich keinen Befehl gefunden mit der man die Stromstärke regulieren kann. Wenn es das auch noch gäbe, wäre es die Krönung.

Da QuickTesla die Stromstärke regeln kann, muss es eine API-Möglichkeit geben…

Ich hatte auch geplant mit der API etwas zu machen, insbesondere Einbindung in KNX. Weiß jemand ob das Verbindungsproblem was wohl in letzter Zeit mit VisibleTesla auftritt auch mit der „rohen“ REST API besteht?

Ich habe mein MS leider noch nicht. Bitte entschuldige daher die doofe Frage. Meinst du qtes.la ?

sorry, ich meinte VisibleTesla.

Schade. VisibleTesla ist eine Java-App. Java kann ich nicht, will ich nicht, mach ich nicht.

VisibleTesla kann die Stromstärke (und weitere Parameter) anzeigen, aber wo/wie kann es die Stärke regeln?
Dann wäre PV-gesteuertes Laden rein Software-technisch ohne Wallbox möglich.

Welchen Browser verwendet das MS eigentlich? Gibt es eventuell einen Emulator ?

Der useragent- String wäre interessant

Nein, visibletesla kann nich die Ladestromhöhe regeln. Ist wohl einfach nicht übertragbar:
visibletesla.com/Documentati … s/FAQ.html