Hur man frågar en Tesla med PowerShell

Som några av er kanske vet behövde jag byta ut min bil, så jag bytte ut den mot en Tesla Model 3 (basmodell). Det finns en lång historia om varför jag ville se vilken information jag kunde fråga från min Tesla som jag inte kommer att komma in på. Vad jag kommer att berätta för dig är att när jag undersökte detta ämne, fick jag reda på att jag kunde fråga en Tesla med PowerShell! Det är lite coolt vad du kan göra med en Tesla via API: et. I det här inlägget ger jag dig mitt manus, så att du också kan fråga din Tesla med PowerShell. Nedan följer stegen du måste vidta.

Tesla API

Så vitt jag vet finns det ingen officiell API -lista för Tesla. Den inofficiella API -dokumentationen finns dock på https://tesla-api.timdorr.com/. Baserat på det inofficiella API -dokumentet kan du bestämma saker som bilens modell och färg, och till och med applicera programuppdateringar på bilen på distans!

Tesla PowerShell -moduler

Det finns två olika PowerShell -moduler:

JonnMsft
andylyonette

För detta blogginlägg använder jag JonnMsft -modulen.

Installera en Tesla PowerShell -modul

Börja installera modulen genom att köra ett förhöjt PowerShell -gränssnitt.

Installationsmodul tesla

Tesla med PowerShell - Otillförlitligt arkiv

Om du ser Otillförlitligt arkiv meddelande, klicka helt enkelt på Ja knappen för att fortsätta. När modulen är installerad stänger du PowerShell och öppnar den igen.

NuGet Provider

Tesla med PowerShell - NuGet Provider

Om du får ett meddelande om en saknad eller föråldrad NuGet -leverantör, uppgradera NuGet -leverantören först och installera sedan Tesla -modulen.

Använd den här koden för att uppdatera NuGet -leverantören.

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

Felmeddelanden

Tesla med PowerShell - Felmeddelande

Om du får ett felmeddelande som liknar det ovan, se till att du ställer in SecurityProtocoltype till TLS12 innan du försöker installera modulen.

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

Skript inaktiverade

Tesla med PowerShell - Skript inaktiverade

Det finns ett par sätt att lösa detta felmeddelande, men det enklaste sättet är att ändra din körningspolicy till följande:

Set -ExecutionPolicy -ExecutionPolicy Bypass

Tesla med PowerShell - Ändring av körningspolicy

Klick Ja när du uppmanas.

Tesla -modul

Nu när du har den senaste NuGet -leverantören och hanterat eventuella felmeddelanden ser du att Tesla -modulen har tre kommandon.

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

Kommandona Get and Set har alla underkommandon. Jag kommer inte att gå in på någon av dem, så istället, om du vill lära dig mer, här är länken i dokumenten till Modul där du kan se exempel.

Koda

Nedan finns ett enkelt skript som hämtar detaljer om din Tesla. Lägg märke till att det första avsnittet kommenteras. För att köra skriptet om och om igen kan du bädda in ditt användarnamn och lösenord, MEN det är inte bra. Det är därför jag kommenterade det första avsnittet. Kommandot Connect-Tesla uppmanar dig att ange ditt användarnamn och lösenord på ett säkert sätt. Detta är bra för en engångsfråga.

#
# $username = "tesla -konto"
# $password = "tesla lösenord"
#
# $secstr = New -Object -TypeName System.Security.SecureString
# $password.ToCharArray () | ForEach-Object {$secstr.AppendChar ($_)}
# $cred = new -object -typename System.Management.Automation.PSCredential -argumentlist $username, $secstr
# Connect -Tesla -Credential $cred
#

Connect-Tesla

$vehicles = Get -Tesla -Command -fordon
$charge_state = Get -Tesla -Command charge_state
$climate_state = Get -Tesla -Command klimaat_stat
$drive_state = Get -Tesla -Command drive_state
$gui_settings = Get -Tesla -Command gui_settings
$vehicle_state = Get -Tesla -Command vehicle_state
1TP2Fordon
$charge_state
$climate_state
$drive_state
$gui_settings
$vehicle_state

Resultat

Onödigt att säga, det finns några häftiga detaljer som du kan få från din Tesla. Jag kommer inte att gå in på dem alla, men här är några inställningar.

Tesla med PowerShell - Inställningar

Du kan till och med få information om latitud och longitud om bilens nuvarande plats! Vilket i mitt fall skulle visa att min bil står parkerad på kontoret. 😊

Hur man frågar en Tesla med PowerShell -sammanfattning

Varför ville jag göra det här? Tja, det finns ett annat projekt som jag arbetar med. Detta POC -projekt behövde fånga detaljer från en extern källa. Att använda resultaten från min bil var ett lika bra exempel som allt annat. Eftersom det fungerade använder jag detta skript som den externa källan för mitt andra projekt. Mer kommer om det POC -projektet när det är klart. Om du har några frågor om hur du frågar en Tesla med PowerShell, är du välkommen att kontakta basen med mig @GarthMJ eller så kan du leta efter mig här: https://myredtesla.com/.

Se hur Right Click Tools förändrar hur system hanteras.

Öka produktiviteten direkt med vår begränsade, kostnadsfria Community Edition.

Kom igång med Right Click Tools idag:

Dela detta:

Support

  • Detta fält används för valideringsändamål och ska lämnas oförändrat.

Kontakt

  • Detta fält används för valideringsändamål och ska lämnas oförändrat.
sv_SESwedish