Come interrogare una Tesla con PowerShell
Come alcuni di voi sapranno, avevo bisogno di sostituire la mia auto, quindi l'ho sostituita con una Modello Tesla 3 (modello base). C'è una lunga storia sul motivo per cui volevo vedere quali informazioni potevo richiedere alla mia Tesla in cui non ho intenzione di entrare. Quello che ti dirò è che durante la ricerca su questo argomento, ho scoperto che potevo interrogare una Tesla con PowerShell! È fantastico quello che puoi fare con una Tesla tramite l'API. In questo post, ti do il mio script, in modo che tu possa interrogare la tua Tesla anche con PowerShell. Di seguito sono riportati i passaggi che è necessario eseguire.
API Tesla
Per quanto ne so, non esiste un elenco API ufficiale per Tesla. La documentazione API non ufficiale, tuttavia, può essere trovata su https://tesla-api.timdorr.com/. Sulla base del documento API non ufficiale, puoi determinare cose come il modello e il colore dell'auto e persino applicare aggiornamenti software all'auto da remoto!
Moduli Tesla PowerShell
Esistono due diversi moduli PowerShell:
• JonnMsft
• andylyonette
Ai fini di questo post sul blog, sto utilizzando il modulo JonnMsft.
Installazione di un modulo Tesla PowerShell
Avviare l'installazione del modulo eseguendo un'interfaccia PowerShell con privilegi elevati.
Modulo di installazione tesla
Se vedi il Repository non attendibile messaggio, è sufficiente fare clic su sì pulsante per continuare. Una volta installato il modulo, chiudi PowerShell e poi riaprilo.
Provider NuGet
Se ricevi una notifica relativa a un provider NuGet mancante o obsoleto, aggiorna prima il provider NuGet e quindi installa il modulo Tesla.
Usa questo codice per aggiornare il provider NuGet.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Messaggio di errore
Se ricevi un messaggio di errore simile a quello sopra, assicurati di impostare SecurityProtocoltype su TLS12 prima di provare a installare il modulo.
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Script disabilitati
Esistono un paio di modi per risolvere questo messaggio di errore, ma il modo più semplice è modificare la politica di esecuzione come segue:
Set-ExecutionPolicy -ExecutionPolicy Bypass
Clic sì quando richiesto.
Modulo Tesla
Ora che hai l'ultimo provider NuGet e hai gestito tutti i messaggi di errore, vedi che il modulo Tesla ha tre comandi.
• Connect-Tesla
• Get-Tesla
• Set-Tesla
I comandi Get e Set hanno ciascuno dei sottocomandi. Non ho intenzione di entrare in nessuno di essi, quindi invece, se vuoi saperne di più, ecco il link nei documenti al Modulo dove puoi vedere degli esempi
Codice
Di seguito è riportato un semplice script che recupera i dettagli sulla tua Tesla. Notare che la prima sezione è commentata. Per eseguire lo script più e più volte, puoi incorporare nome utente e password, MA non è una buona pratica. Ecco perché ho commentato la prima sezione. Il comando Connect-Tesla richiede il nome utente e la password in modo sicuro. Questo è ottimo per una query una tantum.
#
# $username = “account tesla”
# $password = “password tesla”
#
# $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 -Credenziale $cred
#
Connect-Tesla
$vehicles = Get-Tesla -Veicoli di comando
$charge_state = Get-Tesla -Command charge_state
$climate_state = Get-Tesla -Comando clima_state
$drive_state = Get-Tesla -Comando drive_state
$gui_settings = Get-Tesla -Comando gui_settings
$vehicle_state = Get-Tesla -Comando veicolo_state
$veicoli
$charge_state
$clima_state
$drive_state
$gui_settings
$vehicle_state
Risultati
Inutile dire che ci sono alcuni dettagli interessanti che puoi ottenere dalla tua Tesla. Non ho intenzione di entrare in tutti loro, ma qui ci sono alcune impostazioni.
Puoi persino ottenere informazioni su latitudine e longitudine sulla posizione attuale dell'auto! Il che, nel mio caso, dimostrerebbe che la mia macchina è parcheggiata in ufficio. ?
Come interrogare una Tesla con il riepilogo di PowerShell
Perché volevo farlo? Bene, c'è un altro progetto a cui sto lavorando. Questo progetto POC doveva acquisire i dettagli da una fonte esterna. Usare i risultati della mia macchina è stato un buon esempio come qualsiasi altra cosa. Dal momento che ha funzionato, sto usando questo script come fonte esterna per il mio altro progetto. Più a venire su quel progetto POC quando sarà completato. Se hai domande su come interrogare una Tesla con PowerShell, non esitare a contattarmi @GarthMJ oppure puoi cercarmi qui: https://myredtesla.com/.
Scopri come Right Click Tools sta cambiando il modo in cui vengono gestiti i sistemi.
Aumenta immediatamente la produttività con la nostra Community Edition limitata e gratuita.
Inizia oggi con Right Click Tools: