Comment interroger une Tesla avec PowerShell

Comme certains d'entre vous le savent peut-être, j'avais besoin de remplacer ma voiture, alors je l'ai remplacée par une Tesla modèle 3 (modèle de base). Il y a une longue histoire sur la raison pour laquelle je voulais voir quelles informations je pouvais demander à ma Tesla que je ne vais pas entrer. Ce que je vais vous dire, c'est qu'en faisant des recherches sur ce sujet, j'ai découvert que je pouvais interroger une Tesla avec PowerShell ! C'est plutôt cool ce que vous pouvez faire avec une Tesla via l'API. Dans cet article, je vous donne mon script, afin que vous puissiez également interroger votre Tesla avec PowerShell. Vous trouverez ci-dessous les étapes à suivre.

API Tesla

Pour autant que je sache, il n'y a pas de liste API officielle pour Tesla. La documentation non officielle de l'API, cependant, peut être trouvée sur https://tesla-api.timdorr.com/. Sur la base du document API non officiel, vous pouvez déterminer des éléments tels que le modèle et la couleur de la voiture, et même appliquer des mises à jour logicielles à la voiture à distance !

Modules PowerShell Tesla

Il existe deux modules PowerShell différents :

JonnMsft
andylyonette

Pour les besoins de cet article de blog, j'utilise le module JonnMsft.

Installation d'un module Tesla PowerShell

Commencez à installer le module en exécutant une interface PowerShell élevée.

Module d'installation tesla

Tesla avec PowerShell - Référentiel non approuvé

Si vous voyez le Référentiel non approuvé message, cliquez simplement sur le Oui bouton pour continuer. Une fois le module installé, fermez PowerShell puis rouvrez-le.

Fournisseur NuGet

Tesla avec PowerShell - Fournisseur NuGet

Si vous recevez un avis concernant un fournisseur NuGet manquant ou obsolète, mettez d'abord à niveau le fournisseur NuGet, puis installez le module Tesla.

Utilisez ce code pour mettre à jour le fournisseur NuGet.

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

Messages d'erreur

Tesla avec PowerShell - Message d'erreur

Si vous recevez un message d'erreur similaire à celui ci-dessus, assurez-vous de définir SecurityProtocoltype sur TLS12 avant d'essayer d'installer le module.

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

Scripts désactivés

Tesla avec PowerShell - Scripts désactivés

Il existe plusieurs manières de résoudre ce message d'erreur, mais la manière la plus simple consiste à modifier votre stratégie d'exécution comme suit :

Set-ExecutionPolicy -ExecutionPolicy Contournement

Tesla avec PowerShell - Modification de la politique d'exécution

Cliquez sur Oui lorsque vous y êtes invité.

Module Tesla

Maintenant que vous avez le dernier fournisseur NuGet et que vous avez traité tous les messages d'erreur, vous voyez que le module Tesla a trois commandes.

• Connect-Tesla
• Obtenez-Tesla
• Set-Tesla

Les commandes Get et Set ont chacune des sous-commandes. Je ne vais entrer dans aucun d'entre eux, alors à la place, si vous voulez en savoir plus, voici le lien dans la doc vers le Module où vous pouvez voir des exemples.

Code

Vous trouverez ci-dessous un script simple qui récupère les détails de votre Tesla. Notez que la première section est commentée. Afin d'exécuter le script encore et encore, vous pouvez intégrer votre nom d'utilisateur et votre mot de passe, MAIS ce n'est pas une bonne pratique. C'est pourquoi j'ai commenté la première section. La commande Connect-Tesla vous demande votre nom d'utilisateur et votre mot de passe de manière sécurisée. C'est parfait pour une requête ponctuelle.

#
# $username = « compte tesla »
# $mot de passe = « mot de passe tesla »
#
# $secstr = New-Object -TypeName System.Security.SecureString
# $motdepasse.ToCharArray() | ForEach-Object {$secstr.AppendChar($_)}
# $cred = nouvel-objet -typename System.Management.Automation.PSCredential -argumentlist $username, $secstr
# Connect-Tesla -Identifiant $cred
#

Connect-Tesla

$vehicles = Get-Tesla - Véhicules de commande
$charge_state = Get-Tesla -Commande charge_state
$climate_state = Get-Tesla -Commande climate_state
$drive_state = Get-Tesla -Commande drive_state
$gui_settings = Get-Tesla -Commande gui_settings
$vehicle_state = Get-Tesla -Commande vehicle_state
$véhicules
$charge_state
$climate_state
$drive_state
$gui_settings
$vehicle_state

Résultats

Inutile de dire qu'il y a quelques détails intéressants que vous pouvez obtenir de votre Tesla. Je ne vais pas les détailler tous, mais voici quelques paramètres.

Tesla avec PowerShell - Paramètres

Vous pouvez même obtenir des informations de latitude et de longitude sur l'emplacement actuel de la voiture ! Ce qui, dans mon cas, montrerait que ma voiture est garée au bureau. ??

Comment interroger une Tesla avec le résumé de PowerShell

Pourquoi j'ai voulu faire ça ? Eh bien, il y a un autre projet sur lequel je travaille. Ce projet POC avait besoin de capturer des détails à partir d'une source externe. Utiliser les résultats de ma voiture était un exemple aussi bon qu'autre chose. Depuis que cela a fonctionné, j'utilise ce script comme source externe pour mon autre projet. Plus à venir sur ce projet POC quand il sera terminé. Si vous avez des questions sur la façon d'interroger une Tesla avec PowerShell, n'hésitez pas à me contacter. @GarthMJ ou tu peux me chercher ici : https://myredtesla.com/.

Découvrez comment Right Click Tools change la façon dont les systèmes sont gérés.

Augmentez immédiatement votre productivité grâce à notre version Community Edition limitée et gratuite.

Commencez dès aujourd'hui avec Right Click Tools :

Assistance

  • Ce champ n’est utilisé qu’à des fins de validation et devrait rester inchangé.

Contact

  • Ce champ n’est utilisé qu’à des fins de validation et devrait rester inchangé.

En soumettant ce formulaire, vous comprenez que Recast Software peut traiter vos données comme décrit dans le Recast Software Politique de confidentialité.

fr_FRFrench