
Dieser Artikel geht auf die Details ein, wie dein Homey mit der Tesla-App (also der ClientID deines Tesla-Entwickler-Accounts) verknüpft wird und was dabei ggf. zu beachten ist.
Warum eine Client-ID?
Im Tesla-Entwickler-Konto legst du eine App an. Die Client-ID ist der eindeutige Schlüssel dieser App.
Die App dient dazu, Freigabeberechtigungen zu verwalten und die Nutzung abzurechnen.
Bei kommerziellen Produkten (Teslalogger, Teslemetry, Tessie) legt der Anbieter auch eine App an (und damit eine Client-ID).
Alle Abrufe über die Tesla-FleetAPI werden auf diese Client-ID summiert und abgerechnet. Der Anbieter gibt dann den Betrag anteilig als Abogebühr an seine Kunden weiter.
Warum eine eigene Client-ID?
Diese Homey-App ist Opensource und jeder Nutzer muss seine eigene Tesla-App anlegen (und damit seine eigene Client-ID). Der Vorteil ist, dass jeder Nutzer 10€ freies Budget je Monat nutzen kann.
Dafür muss jede Client-ID aber auch die gleiche Registrierung bei Tesla durchlaufen. Dazu gehören:
- Registrierung der App/Client-ID im Entwickler-Konto
- Registrierung der Client-ID für jede Region (Nord-Amerika udn Europa).
- Registerigung einer Domain zum Bereitstellen des öffentlichen Schlüssels
Die Homey-App erledigt dabei alles automatisch.
Die Client-ID wird für beide Regionen registriert und die Domain wird registriert.
Domain-Registrierung
Die Domain besitzt folgenden Aufbau:
- HomeyID.tesla.rwdevelopement.de
Dank der Zusammenarbeit mit Athom wird diese Domain über die Athom-Cloud dynamisch auf die URL deines Homey weitergeleitet. Damit wird es möglich, die App als Fahrzeugschlüssel zu verwenden. Der Fahrzaugschlüssel ist dabei ein Zertifikat, das der Homey zum Download bereitstellt und das im Fahrzeug als Schlüssel „erlaubt“ wird.
Das öffentliche Zertifikat ist dabei auf deinem Homey gespeichert und kann über die URL HomeyID.tesla.rwdevelopement.de/.well-known/appspecific/com.tesla.3p.public-key.pem abgerufen werden. Das wird z.B. genutzt, wenn die App als Fahrzeugschlüssel registriert wird. Nach der Registerierung ist diese URL im Fahrzeug als Schlüssel aufgelistet (wobei aus Platzgründen nur der erste Teil der Homey-ID sichtbar ist).
Was ist dabei zu beachten?
Die Domain kann nur einmal und nur für genau eine Client-ID registriert werden.
Aufgrund der Domain-Zuordnung, ist jeweils nur eine Domain je Homey möglich.
Das bedeutet, dass auf einem Homey nur eine Client-ID verwendet werden kann.
Es ist also nicht möglich, zwei Client-IDs auf einem Homey zu verwenden, um bei zwei Fahrzeugen jeweils 10€ je Fahrzeug zu verwenden.
Werden mehrere Fahrzeuge je Homey verwendet, so müssen alle Fahrzeuge die gleiche Client-ID verwenden. Alle Fahrzeuge teilen sich damit das Budget.
Ist eine Domain (also eine Homey-ID) für eine Client-ID registriert, dann kann diese Domain nicht für andere Client-IDs verwendet werden.
Es ist also nicht möglich, auf einem bereits registrierten Homey eine zweite Client-ID zu verwenden. In diesem Fall ist die Domain-Registrierung nicht möglich.
Kann man eine Domain deregistrieren?
Eine registrierte Domain kann nicht deregistriert werden. Client-ID und Homey-ID bleiben verknüpft.
Es gibt aber folgende Ausnahmen:
- Wird eine Client-ID archiviert (das Equivalent einer Löschung), dann wird die Domain freigegeben.
Die Client-ID kann dann nicht mehr verwendet werden. Aber dafür kann die Domain erneut registriert werden. Man kann danach also eine andere Client-ID für diesen Homey verwenden. - Wird für die Client-ID eine andere Domain registriert, dann wird die zuvor registrierte Domain freigegeben. Das trifft z.B. zu, wenn man die „alte“ Client-ID auf einem neuen Homey verwendet.
Wann gibt es Probleme mit der Registrierung?
Ein Problem ist wie bereits beschrieben, dass man nur eine Client-ID für einen Homey verwenden kann.
Es gibt aber auch den Fall, dass man einen Homey bereits für eine Client-ID registriert hatte und diesen Homey verkauft. Der neue Nutzer kann seine Client-ID nicht registrieren, da die homeyspezifische Domain bereits registriert wurde.
Das zweite Problem wurde mittlerweile behoben, indem eine dynamische Subdomain für die Registrierung verwendet wird. Aber im Sinne der Rücksicht auf andere Nutzer sollten folgende Punkte beachtet werden:
Was bedeutet das für mich?
- Homey-Verkauf:
Wenn du deinen Homey verkaufen möchtest, dann „archiviere“ deine Tesla-App in deinem Tesa-Developer-Konto. Damit wird die Domain-Registrierung aufgehoben und der Käufer kann auf dem Homey seine Client-ID erneut registrieren.
Tauschst du deinen Homey lediglich gegen einen neuen aus, dann ist das meist nicht nötig. Durch die Neuregistrierung der neuen homeyspezifischen Domain zu deiner Client-ID wird die alte Domain freigegeben. - Neue Client-ID:
Wenn du auf deinem Homey eine andere Client-ID verwenden möchtest, dann gilt das gleiche. Archiviere (Lösche) die alte Client-ID in deinem Developer-Account und verwende anschließend die neuen Client-ID in deinem Homey.
Der Wechsel der Client-ID ist sogar füpr bereits hinzugefügte Fahrzeuge möglich. Tausche die Client-ID und Client-Secret im Repair-Dialog deines Fahrzeugs aus. Melde dich anschließend mit deinem Fahrzeugkonto an.
Durch die Neu-Registrierung wird allerdings ein neues Zertifikat erstellt und die App muss erneut als Fahrzeugschlüssel registreirt werden.
