Kategorieauswahl

Tesla Model S und X per PowerShell fernsteuern, mithilfe der Restful WebAPI von TESLA

Ich liebe meinen Tesla Model S und ich liebe PowerShell. Na dann bringe ich doch mal beides zusammen. 😀

Für die Anmeldung beim Tesla Restful Webservice müssen Sie dieselben Anmeldeinformationen (Benutzername und Kennwort), wie auf mytesla (https://my.teslamotors.com/de_DE/user/login) angeben. Also zunächst mal zur Authentifizierung:

# Fenster für Anmeldeinfos anzeigen
$Credential=Get-Credential
# Kennwort für die SSL-gesicherte Übergabe „vorbereiten“
$ptr=[Runtime.InteropServices.Marshal]::SecureStringToBSTR($Credential.Password)
$pwd=[Runtime.InteropServices.Marshal]::PtrToStringAuto($Ptr)

# Notwendige Anmeldeinformationen zusammensetzen
$LoginInfo=@{
‚grant_type‘ = ‚password‘
‚client_id‘ = „e4a9949fcfa04068f59abb5a658f2bac0a3428e4652315490b659d5ab3f35a9e“
‚client_secret‘ = „c75f14bbadc8bee3a7594412c31416f8300256d7668ea7e6e7f06727bfb9d220“
‚email‘ = $Credential.UserName
‚password‘ = $pwd
}

Dann können Sie die Verbindung unter Angabe der Anmeldeinfos herstellen:

$Connect = Invoke-RestMethod -Uri „https://owner-api.teslamotors.com/oauth/token“ -Method Post -Body $LoginInfo

Als Rückgabewert erhalten Sie dann einen Zugriffsschlüssel (Token) mit dem alle weiteren Aktionen durchgeführt werden können:

$Token=$Connect.access_token

Hier noch ein paar allgemeine, notwendige http Header Informationen zusammen schrauben:

$Header=@{
„Authorization“=“Bearer $Token
„Accept-Encoding“=“gzip,deflate“
}

Gehen wir mal davon aus, Sie haben nur einen Tesla, dann finden Sie mit dem nachfolgenden Kommando in $car allgemeine Informationen zu Ihrem Fahrzeug wie Farbe, Name u.v.a.m.

$car = (Invoke-RestMethod -Uri „https://owner-api.teslamotors.com/api/1/vehicles“ -Method Get -Headers $Header).response

Falls Ihr Dornröschen noch schläft, müssen Sie es erst mal wach küssen:

if ($car.state -ne „online“) {Invoke-RestMethod -Uri „https://owner-api.teslamotors.com/api/1/vehicles/$($car.id)/wake_up“ -Method Post -Headers $Header}

Jetzt können Sie Ihren Liebling mal etwas genauer untersuchen, wie z.B. die eingestellten Einheiten (gui_settings) abfragen:

(Invoke-RestMethod -Uri „https://owner-api.teslamotors.com/api/1/vehicles/$($car.id)/data_request/gui_settings“ -Method Get -Headers $Header).response

Den Teil gui_settings können Sie gegen die folgenden Begriffe austauschen:

charge_state = Zeigt den Akkustatus an

climate_state = Klima Anlage

drive_state = GPS Infos

vehicle_state = Zustandsinformationen: km-Stand, Schiebedach auf? etc…

Sie dürfen natürlich auch gerne Einstellungen vornehmen (z.B. hupen):

Invoke-RestMethod -Uri „https://owner-api.teslamotors.com/api/1/vehicles/$($car.id)/command/honk_horn“ -Method Post -Headers $Header

Auch hier gibt’s wieder einen ganzen Sack voll weiterer Begriffe, die Sie gegen honk_horn austauschen können:

flash_lights = Lichthupe

charge_port_door_open = Ladeanschluß öffnen

charge_standard = Ladelimit auf Standard setzen

charge_max_range = Ladelimit auf max. Reichweite (100%) setzen

set_charge_limit?percent=75 = Ladelimit beliebig einstellen

charge_start und charge_stop = Ladevorgang starten bzw. beenden

door_lock und door_unlock = Türen auf bzw. zu

set_temps?driver_temp=23.7&passenger_temp=18.1 = wie warm soll’s darf’s denn sein?

auto_conditioning_start und auto_conditioning_stop = Klima an bzw. aus

sun_roof_control?state=open&percent=50 = Schiebedach steuern

remote_start_drive?password=StrengGeheim = Kennwort für den Start ohne Schlüssel im Fahrzeug festlegen. Verfällt nach 2 Minuten, wenn das Fahrzeug nicht bis dahin gestartet wird.

 

Eine Antwort auf Tesla Model S und X per PowerShell fernsteuern, mithilfe der Restful WebAPI von TESLA

    Schreibe einen Kommentar zu Anonymous Antworten abbrechen

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert