Wie man einen Tesla mit PowerShell abfragt

Wie einige von euch vielleicht wissen, musste ich mein Auto ersetzen, also habe ich es durch ein ersetzt Tesla-Modell 3 (Basismodell). Es gibt eine lange Geschichte darüber, warum ich sehen wollte, welche Informationen ich von meinem Tesla abfragen könnte, auf die ich nicht eingehen werde. Was ich Ihnen sagen werde, ist, dass ich bei der Recherche zu diesem Thema herausgefunden habe, dass ich einen Tesla mit PowerShell abfragen kann! Es ist irgendwie cool, was man mit einem Tesla über die API machen kann. In diesem Beitrag gebe ich dir mein Skript, damit du deinen Tesla auch mit PowerShell abfragen kannst. Nachfolgend finden Sie die Schritte, die Sie ausführen müssen.

Tesla-API

Für Tesla gibt es meines Wissens kein offizielles API-Listing. Die inoffizielle API-Dokumentation findet sich jedoch auf https://tesla-api.timdorr.com/. Basierend auf dem inoffiziellen API-Dokument können Sie Dinge wie Modell und Farbe des Autos bestimmen und sogar Software-Updates aus der Ferne auf das Auto anwenden!

Tesla PowerShell-Module

Es gibt zwei verschiedene PowerShell-Module:

JonnMsft
andylyonette

Für die Zwecke dieses Blogbeitrags verwende ich das JonnMsft-Modul.

Installieren eines Tesla PowerShell-Moduls

Beginnen Sie mit der Installation des Moduls, indem Sie eine PowerShell-Schnittstelle mit erhöhten Rechten ausführen.

Install-Modul tesla

Tesla mit PowerShell - Nicht vertrauenswürdiges Repository

Wenn du das siehst Nicht vertrauenswürdiges Repository Nachricht, klicken Sie einfach auf die Jawohl Taste, um fortzufahren. Sobald das Modul installiert ist, schließen Sie PowerShell und öffnen Sie es erneut.

NuGet-Anbieter

Tesla mit PowerShell – NuGet-Anbieter

Wenn Sie eine Benachrichtigung über einen fehlenden oder veralteten NuGet-Anbieter erhalten, aktualisieren Sie zuerst den NuGet-Anbieter und installieren Sie dann das Tesla-Modul.

Verwenden Sie diesen Code, um den NuGet-Anbieter zu aktualisieren.

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force

Fehlermeldungen

Tesla mit PowerShell - Fehlermeldung

Wenn Sie eine ähnliche Fehlermeldung wie oben erhalten, stellen Sie sicher, dass Sie SecurityProtocoltype auf TLS12 setzen, bevor Sie versuchen, das Modul zu installieren.

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

Skripte deaktiviert

Tesla mit PowerShell - Skripte deaktiviert

Es gibt mehrere Möglichkeiten, diese Fehlermeldung zu beheben, aber die einfachste Möglichkeit besteht darin, Ihre Ausführungsrichtlinie wie folgt zu ändern:

Set-ExecutionPolicy -ExecutionPolicy Bypass

Tesla mit PowerShell - Änderung der Ausführungsrichtlinien

Klicken Jawohl wenn Sie dazu aufgefordert werden.

Tesla-Modul

Nachdem Sie nun über den neuesten NuGet-Provider verfügen und alle Fehlermeldungen bearbeitet haben, sehen Sie, dass das Tesla-Modul drei Befehle hat.

• Connect-Tesla
• Get-Tesla
• Set-Tesla

Die Befehle Get und Set haben jeweils Unterbefehle. Ich werde auf keinen von ihnen eingehen. Wenn Sie also mehr erfahren möchten, finden Sie hier den Link in den Dokumenten zum Modul wo Sie Beispiele sehen können.

Code

Unten finden Sie ein einfaches Skript, das Details zu Ihrem Tesla abruft. Beachten Sie, dass der erste Abschnitt auskommentiert ist. Um das Skript immer wieder auszuführen, könnten Sie Ihren Benutzernamen und Ihr Passwort einbetten, ABER das ist keine gute Vorgehensweise. Deshalb habe ich den ersten Abschnitt auskommentiert. Der Befehl Connect-Tesla fordert Sie auf sichere Weise zur Eingabe Ihres Benutzernamens und Ihres Kennworts auf. Dies ist ideal für eine einmalige Abfrage.

#
# $username = „tesla-Konto“
# $password = „tesla-Passwort“
#
# $secstr = New-Object -TypeName System.Security.SecureString
# $password.ToCharArray() | ForEach-Objekt {$secstr.AppendChar($_)}
# $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $secstr
# Connect-Tesla -Anmeldeinformationen $cred
#

Connect-Tesla

$vehicles = Get-Tesla -Befehlsfahrzeuge
$charge_state = Get-Tesla -Befehl charge_state
$climate_state = Get-Tesla -Befehl Klima_Zustand
$drive_state = Get-Tesla -Befehl drive_state
$gui_settings = Get-Tesla -Befehl gui_settings
$vehicle_state = Get-Tesla -Command vehicle_state
1TP2Fahrzeuge
$charge_state
$climate_state
$drive_state
$gui_settings
$vehicle_state

Ergebnisse

Natürlich gibt es einige coole Details, die Sie von Ihrem Tesla bekommen können. Ich werde nicht auf alle eingehen, aber hier sind ein paar Einstellungen.

Tesla mit PowerShell - Einstellungen

Sie können sogar Informationen zum Breiten- und Längengrad über den aktuellen Standort des Fahrzeugs abrufen! Was in meinem Fall zeigen würde, dass mein Auto im Büro geparkt ist. 😊

Wie man einen Tesla mit PowerShell-Zusammenfassung abfragt

Warum wollte ich das tun? Nun, es gibt ein anderes Projekt, an dem ich arbeite. Dieses POC-Projekt musste Details aus einer externen Quelle erfassen. Die Ergebnisse aus meinem Auto zu verwenden, war genauso ein gutes Beispiel wie alles andere. Da es funktioniert hat, verwende ich dieses Skript als externe Quelle für mein anderes Projekt. Mehr zu diesem POC-Projekt, wenn es abgeschlossen ist. Wenn Sie Fragen zur Abfrage eines Tesla mit PowerShell haben, können Sie sich gerne an mich wenden @GarthMJ oder du kannst mich hier suchen: https://myredtesla.com/.

Sehen Sie, wie Right Click Tools die Art und Weise verändert, wie Systeme verwaltet werden.

Steigern Sie sofort die Produktivität mit unserer limitierten, kostenlos nutzbaren Community Edition.

Starten Sie noch heute mit Right Click Tools:

Teile das:

Support

  • Dieses Feld dient zur Validierung und sollte nicht verändert werden.

Kontakt

  • Dieses Feld dient zur Validierung und sollte nicht verändert werden.
de_DEGerman