Entwicklung und Integration der Tesla Fleet API

Hallo @pierre-gilles,

Könntest du uns eine Callback-Route für eine API-OAUTH2-Authentifizierung bereitstellen?

Wir haben mit der Entwicklung der Tesla-Fleet-Integration begonnen, aber die ursprünglichen URLs und die Umleitungs-URIs für die Autorisierung müssen HTTPS-Öffentliche URLs sein. Wenn ich das richtig verstehe, bedeutet das, dass wir sie nur über Gladys Plus verwenden können, im Gegensatz zu Netatmo.

Damit die OAuth-Autorisierung funktioniert, müssen Sie in Ihrer Tesla-Anwendung denselben redirect_uri angeben, den Sie im Moment des Aufrufs von /authorize verwenden. Ohne dies wird der Server Ihre URL systematisch ablehnen.
Tesla akzeptiert keine HTTP-URLs (oder eine lokale IP), Sie können Ihre Gladys-Instanz über einen Tunnel (ngrok, localtunnel…) als HTTPS exponieren und die öffentliche URL registrieren, die vom Tunnel bereitgestellt wird.

Ich habe es mit der lokalen Adresse http://localhost:1444/dashboard/integration/device/tesla/setup versucht, es funktioniert und man kann sich mit dem Konto verbinden, aber es leitet mich zu dieser Adresse weiter, was bedeutet, dass es in der Produktion nicht funktionieren wird.

Hallo @Terdious,

Ich dachte, Sie nutzen Tessie?

Wenn Sie Tesla Fleet über Gladys Plus nutzen möchten, benötige ich Ihre Antworten auf mehrere Fragen, um zu bestimmen, auf welches Integrationsmodell wir uns einigen :smiley:

Zur Tesla Fleet API:

  • Ist es komplex, eine Tesla Fleet-Anwendung zu erstellen?
  • Erlaubt Tesla mehreren Anwendungen, dieselben Umleitungs-URLs zu nutzen?
  • Ist die API hauptsächlich für Unternehmen oder auch für Privatpersonen gedacht?
  • Sind die generierten Tokens wirklich spezifisch für jeden Benutzer mit Zugriff nur auf seine eigenen Fahrzeuge?

Zwei Möglichkeiten bei Gladys Plus:

  1. Jeder Benutzer erstellt seine eigene Tesla Fleet-Anwendung.
  2. Eine zentrale Tesla-Anwendung wird von Gladys Assistant SAS erstellt, ähnlich wie die aktuelle Integration mit Enedis.

Falls Sie darüber sprechen möchten, bin ich heute verfügbar :slight_smile:

Héhé !!

Ich schon, zumindest im Moment, aber die App ist teuer. Ich denke, sie ist gut für mobile Geräte geeignet. Aber mehrere Personen fragten sich, ob es möglich ist, direkt über Tesla Fleet zu gehen (ich denke zum Beispiel an @tiboys). Und @S-Axel wäre auch interessiert. Ich auch.

Ich werde nichts mit Sicherheit bestätigen. Aber:

  • Ist es komplex, eine Tesla Fleet-App zu erstellen? Genauso einfach wie für Netatmo.
  • Erlaubt Tesla, dass mehrere Apps dieselben Umleitungs-URLs verwenden? Gute Frage…
  • Ist die API hauptsächlich für Unternehmen oder auch für Privatpersonen gedacht? Sie geben an « (empfohlen nur für Unternehmen) » bei der zweiten Option.

    Und in der API-Beschreibung sprechen sie davon, die Kontrolle über ihr Fahrzeug für alle Besitzer zu behalten.
  • Sind die generierten Tokens wirklich spezifisch für jeden Benutzer mit Zugriff nur auf seine eigenen Fahrzeuge? Praktisch zu 100% sicher, da man seine eigene Anwendung erstellt!

Mit großem Vergnügen wie immer, sag mir einfach wann. Ich könnte nur von meiner Tochter unterbrochen werden ^^ Wir können auch schnell über die Einheiten sprechen, wenn du möchtest.

PS: ChatGPT-Tipp sonst - aber nicht für uns umsetzbar ^^

Eine weitere Frage: Ist die Tesla Fleet API nur in die Richtung „Gladys → Tesla“ oder gibt es einen Webhook-Mechanismus, damit Tesla Gladys kontaktieren kann?

Denn wenn es keinen Webhook gibt und es nur für OAuth ist, dann muss ich auf der Backend-Seite keine API-Route erstellen, sondern du musst bei der Entwicklung in Gladys eine Seite im Frontend (auf plus.gladysassistant.com) hinzufügen, die dann über Gladys Plus zugänglich ist :slight_smile:

Es muss nur sichergestellt werden, dass die Seite nur funktioniert, wenn das Frontend über Gladys Plus erfolgt!

Ja, es gibt Webhooks, das war genau die nächste Anforderung ^^ Tesla Fleet Telemetry: https://developer.tesla.com/docs/fleet-api/fleet-telemetry

@Terdious Tesla Fleet ist das zum direkten Kommunizieren mit Tesla-Servern ohne Drittanbieter-Apps?
Ich nutze ABRP (kostenlos), um mich zu verbinden und einige Infos von der Tesla abzurufen. Geht es hier um die gleiche Funktionsweise, aber direkt über Gladys? Wenn ja, dann bin ich dabei!
Bei HA haben sie Warnungen über die potenziellen Kosten der Nutzung.

Ja, genau das ist es! Nur im Gegensatz zu ABRP gibt es auch die Befehle und alle Informationen.
Ja, genau, deshalb müssen wir testen. Aber normalerweise gibt es bei guter Nutzung keine Probleme.
Was die Kosten betrifft, wenn du keine Kreditkarte angibst, gibt es kein Problem, es ist nur danach gesperrt. Jeder hat also die Kontrolle.
Dann gibt es noch Fleet Telemtry, das offensichtlich viel umfassender ist, da es sich um Echtzeitdaten handelt, die nur Statusänderungen senden!

Okay, das können wir später machen, aber kein Problem, eine Gladys Plus-Brücke für den Webhook zu erstellen :slight_smile:

Also, was OAuth angeht, liegt der Ball jetzt in deinem Feld, du kannst alles ohne mich machen :wink:

Tut mir leid, ich verstehe nicht ganz … Ich verwende einfach wie bei Enedis die Variable gladysgateway?

Denn im Code sehe ich:

  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);
    }
  };

Aber das ruft eine Funktion auf, die ich für Tesla nicht habe: ‹ initializeEnedis ›.

Nein, die Enedis-Integration hat damit nichts zu tun.

Du brauchst nur eine URL zur Weiterleitung, das ist Frontend, nicht Backend :slight_smile:

Wir haben das bereits im Frontend-Code für die Alexa- und Google-Home-Integration.

Du hast URLs:

/dashboard/integration/device/alexa/authorize

Die nur über Gladys Plus zugänglich sind

Du musst nur deine Integration erstellen und eine URL definieren:

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

Und dann kannst du auf dieser Seite deinen Zauber wirken, aber das ist eindeutig Frontend :wink:

Zum Testen lokal kann ngrok praktisch sein!

Oki! Ich teste das mal!!

Mmmh ich habe noch ein Gladys für die Entwicklung ^^

Du wirst es nicht brauchen, das ist hier nicht nötig! Noch einmal, es ist Frontend, es wird kein Backend benötigt.

Hallo @pierre-gilles,

Es hat geklappt, wir haben die Verbindung im localhost hergestellt.