Développement Intégration Tesla Fleet API

Bonjour @pierre-gilles,

Pourrais-tu nous fournir une route de callback pour une authentification API OAUTH2 ?

Nous avons débuté le développement de l’intégration Tesla fleet, mais les URL d’origine et URI de redirection pour l’autorisation ne peuvent être que des URL HTTPS publique, si je comprends bien, cela signifie qu’on ne peut seulement l’utiliser via Gladys Plus, contrairement à Netatmo.
https://developer.tesla.com/docs/fleet-api/authentication/third-party-tokens

Pour que l’autorisation OAuth fonctionne, il faut absolument déclarer dans votre application Tesla le même redirect_uri que celui que vous utilisez au moment de l’appel à /authorize. Sans ça, le serveur refusera systématiquement votre URL`` Tesla n’accepte pas d’URL en HTTP (ou une IP locale), vous pouvez exposer votre instance Gladys en HTTPS via un tunnel (ngrok, localtunnel…) et enregistrer l’URL publique fournie par le tunnel.`

J’ai bien tenté avec l’adresse local http://localhost:1444/dashboard/integration/device/tesla/setup, cela fonctionne et on peut se connecter au compe, mais me renvoi donc vers cette adresse qui fait que ça ne fonctionnera pas en prod.

Salut @Terdious,

Je pensais que vous utilisiez Tessie ?

Si vous voulez utiliser Tesla Fleet via Gladys Plus, j’ai besoin que vous répondiez à plusieurs questions pour déterminer sur quel modèle d’intégration on part :smiley:

Côté Tesla Fleet API :

  • Est-ce complexe de créer une application Tesla Fleet ?
  • Tesla autorise-t-il plusieurs applications à utiliser les mêmes URLs de redirection ?
  • L’API est-elle principalement destinée aux entreprises ou aussi aux particuliers ?
  • Les tokens générés sont-ils bien spécifiques à chaque utilisateur, avec un accès restreint à ses seuls véhicules ?

Côté Gladys Plus, 2 possibilités :

  1. Chaque utilisateur crée sa propre application Tesla Fleet.
  2. Une application Tesla centralisée est créée par Gladys Assistant SAS, à l’image de l’intégration actuelle avec Enedis.

Si besoin d’en discuter de vive voix, je suis disponible aujourd’hui :slight_smile:

1 « J'aime »

Héhé !!

Moi oui, en tout cas pour le moment, mais l’application coute cher. Je pense qu’elle est bien adaptée sur mobile. Mais plusieurs personne se demandaient si il était possible de passer directement par Tesla Fleet directement (je pense à @tiboys par exemple). Et @S-Axel serait plus intéressé également. Moi également.

Je ne vais rien confirmer avec assurance. Mais :

  • Est-ce complexe de créer une application Tesla Fleet ? Aussi simple que pour Netatmo.
  • Tesla autorise-t-il plusieurs applications à utiliser les mêmes URLs de redirection ? Bonne question …
  • L’API est-elle principalement destinée aux entreprises ou aussi aux particuliers ? Ils précisent « (recommandé pour les entreprises uniquement) » sur la 2ème option.

    Et sur le descriptif de l’API, ils parlent bien de garder le contrôle sur son véhicule pour tous les propriétaires.
  • Les tokens générés sont-ils bien spécifiques à chaque utilisateur, avec un accès restreint à ses seuls véhicules ? Pratiquement sûr à 100% puisqu’on crée sa propre application !

Avec grand plaisir comme toujours, dis moi quand. De mon côté je peux juste être interrompu par ma fille ^^ On pourra rapidement parler des unités également si tu le souhaites.

PS : Astuce chatGPT sinon - mais non viable pour nous ^^

Autre question: Est-ce que l’API Tesla Fleet est uniquement dans le sens « Gladys → Tesla » ou est-ce qu’il y a une mécanique de webhook ou Tesla peut contacter Gladys ?

Parce qu’en fait, si il n’y a pas de webhook, et que c’est juste pour faire de l’OAuth, ce n’est pas côté backend que j’ai à créer une route d’API, c’est toi en développant dans Gladys qui doit rajouter une page dans le front (sur plus.gladysassistant.com) qui sera accessible du coup via Gladys Plus :slight_smile:

Il faudra juste faire en sorte que la page ne fonctionne que si le frontend est via Gladys Plus !

Yes il y a du webhook, c’était tout à fait la demande suivante ^^ Tesla Fleet Telemetry : https://developer.tesla.com/docs/fleet-api/fleet-telemetry

@Terdious Tesla Fleet c’est pour discuter directement avec les serveurs Tesla sans passer par des apps tierces ?
De mon côté j’utilise ABRP (gratuit) pour me connecter et récupérer qq infos de la Tesla, on parle du même type de fonctionnement mais à partir de Gladys directement ? Si oui alors je suis preneur !
Chez HA, ils ont mis des alertes sur le coût potentiel de l’utilisation.

Oui c’est tout à fait cela ! Sauf que contrairement à ABRP, il y a également les commandes et toutes les infos.
Oui, en effet, c’est pour cela que l’on doit tester. Mais normalement sur un bon usage pas de soucis.
Concernant les coûts, si tu ne rentres pas de CB, pas de soucis, c’est juste bloqué ensuite. Bref chacun à la maitrise.
Ensuite il y a Fleet Telemtry qui est beaucoup plus large visiblement puisque c’est de la data en direct qui n’envoi que les changement d’état !

1 « J'aime »

Ok, on verra dans un second temps pour ça, mais pas de soucis pour créer un pont Gladys Plus pour le webhook :slight_smile:

Du coup, côté Oauth la balle est dans ton camp, tu peux tout faire sans avoir besoin de moi :wink:

Sorry, je ne comprend pas du coup … j’utilise juste comme dans Enedis la variable gladysgateway ?

Parce que dans le code je vois :

  getRedirectUri = async () => {
    try {
      if (!this.props.session.gatewayClient) {
        this.setState({
          notOnGladysGateway: true
        });
        return;
      }
      const response = await this.props.session.gatewayClient.initializeEnedis();
      this.setState({
        redirectUri: response.redirect_uri
      });
    } catch (e) {
      console.error(e);
    }
  };

Mais ça appel une fonction que je n’ai pas pour Tesla ‹ initializeEnedis ›

Non, l’intégration Enedis n’a pas de rapport.

Toi tu as juste besoin d’une URL de redirection, c’est du frontend, pas du back :slight_smile:

On a déjà le cas dans l’intégration Alexa et Google Home dans le code du front.

Tu as des URLs:

/dashboard/integration/device/alexa/authorize

Qui sont accessible uniquement via Gladys Plus

Toi tu dois juste créer ton integration, et définir une URL:

/dashboard/integration/device/tesla-fleet/authorize

Et ensuite tu fais ta tambouille dans cette page, mais c’est clairement du front :wink:

Pour tester en local, ngrok peut-être pratique !

1 « J'aime »

Oki ! Je teste ça !!

Mmmh j’ai un gladys plus pour le dev ^^

Tu n’en auras pas besoin, ça ne sert pas ici ! Encore une fois, c’est du front, il n’y a pas besoin de backend