Tesla Command Button – Öffnen der Ladeklappe

Als kurze Einführung in die Gesamtthematik empfehle ich, zunächst diese Übersicht zu lesen –> klick

Das Funksignal für das Öffnen der Ladeklappe ist ein relativ einfaches, für alle Teslas konstantes ASK Signal (Träger an/aus), das auf 433MHz gesendet wird (USA vermutlich 315MHz). Ein solches Signal kann man problemlos mit einem Arduino oder ähnlichen Microcontroller erzeugen und mit entsprechenden Sendemodulen senden. Hier liegt schon ein erster Grund für Fehlschläge. Die aus Arduino Kits weit verbreiteten FS1000A Module funktionieren nicht. Diese Module schaffen die nötige Taktrate nicht und haben keine gute Reichweite und Frequenzstabilität. Gute Erfahrungen habe ich mit STX882 Modulen oder dem Umbau einer Baumarkt Fernbedienung (z.B. Elro). Hinterlasst gerne einen Kommentar über funktionierende und nicht funktionierende Funkmodule.

Der zweite Knackpunkt scheint das Signal selbst zu sein. Es gibt Codes auf github dazu, die aber bei mir nicht wirklich robust funktioniert haben. Oftmals musste ich die Sendetaste wiederholt drücken. Deshalb habe ich das Signal mit einem Logic Analyser mitgeschnitten; einfach ein ASK 433 MHz Empfänger an den Analyzer und mit 2MHz Sampling geloggt. Mit einer deutlich verbesserten Nachahmung des Signals klappt alles prima und wie mit dem Original.

Signalbeschreibung

Das mitgeschnittene Signal sieht so aus:

Vornweg sei angemerkt, dass der UMC2 bei Signalwiederholungen kein komplett identisches Timing erzeugt; +/-10us Abweichungen scheinen ganz normal und sind offenbar kein Problem.

Die Präambel des Signals besteht aus 13 ca. 800us langen An/Aus-Perioden. Der UMC2 erzeugt bei der Präambel allerdings eine Art „Chirp“. Die An-Pulse starten mit ca. 530us Länge, die Aus-Pulse mit ca 270us. Die An-Pulse werden mit jeder Wiederholung ca. 20us kürzer, die Aus-Pulse entsprechend länger. Am Ende der Präambel sind die Pulse dann 400us lang. Ich bin nicht sicher, ob dieser „Chirp“ wirklich nötig ist. Ich habe ihn in den Code mit eingebaut. Weiterhin findet man in dem Signal Manchester kodierte Anteile. Dieser Codeteil wird dreimal wiederholt. Zwischen den Codeteilen gibt es ein Trennsignal. Am Ende folgt ein etwas anderes Abschlusssignal. Danach kommen 25ms Pause. Das Signal wird so lange gesendet, wie der Knopf gedrückt wird.

Der Code:

Diese Signalfolge habe ich als Code für die Arduino Entwicklungsumgebung auf github abgelegt: https://github.com/stefan73/BetterTeslaChargeportOpener

Der Code braucht keine weiteren Libraries und sollte damit sehr portabel sein. Kleinere Abweichungen im Timing im Bereich von +/-10us hat ja auch das Original. Deshalb langen auch die nicht so ganz exakten Delay() Funktionen der Arduino IDE. Es sollte auch mit anderen Boards problemlos klappen. Sowohl mit ATMega 328p als auch mit 168 Boards konnte ich damit problemlos die Ladeklappe öffnen. Nach 10 Wiederholungen des Gesamtsignals (also 10 x 3 = 30 Codepaketen) endet die Übertragung und die Board LED / Pin13 blinkt.

Die Schaltung:

Ich habe ganz trivial einen Taster genommen. Dieser schaltet die Spannungsversorgung zu meinem Arduino Mini Pro Board mit ATMega 168 (und ja, ein 1€ Clone von Aliexpress tut es) sowie dem Sendemodul. Der 433MHz Sender wird mit seiner Datenleitung an Pin11 des Arduino angeschlossen und das war es auch eigentlich schon. Wer will kann den Sender über Pin 10 mit 5V Spannung versorgen, was sich bei meiner Trivialschaltung allerdings erübrigt – ich schalte einfach alles über den Taster.
Falls ihr dazu einen Schaltplan möchtet, hinterlasst bitte einen Kommentar. So sieht die einfachste Form der Schaltung mit einem Mini Pro (ATMega168) und STX882 aus.

EInfache Schaltung mit MiniPro und STX882 – STX882 Spannungsversorgung über den 5V Pin des Arduino

Achtung Bootloader:

Einen Hinweis muss ich noch zum Bootloader geben. Die alten Arduino Bootloader brauchen ca. 1-2 Sekunden, bis unser Code auf dem ATMega los läuft. Das ist an sich kein Problem – man muss die Taste aber dann so lange drücken. Die Lösung heißt Optiboot. Das ist ein neuerer Bootloader. Mit diesem läuft der Code des Nutzers ohne merkbare Verzögerung los. Für unsere Schaltung ist das natürlich schöner, weil man damit kaum eine halbe Sekunde auf den Knopf drücken muss und schon öffnet sich die Klappe. Es gibt eine Menge Anleitungen zum Flashen von Optiboot im Netz. Für Anfänger ist es sicherlich besser einen Arduino aus vertrauenswürdiger Quelle mit aktuellem Bootloader zu kaufen.

Wie ihr im Beitragsbild sehen könnt, habe ich eine Baumarktfernbedienung umgebaut und an der Garagenwand montiert. Man kann natürlich auch versuchen, die Schaltung in den Ladestecker einzubauen. War mir offen gesagt zu aufwändig. Die gezeigte Fernbedienung hängt direkt neben der Wallbox.

P.S. Ich habe Mikrosekunden mit der Einheit us bezeichnet. Das eigentlich korrekte griechische My Zeichen habe ich aus Bequemlichkeit nicht benutzt.

7 Gedanken zu „Tesla Command Button – Öffnen der Ladeklappe

  1. Anton

    Super Projekt, sehr einfach nachzubauen wenn sich schon jemand um den Code gekümmert hat. Bei mir kommt die Schaltung mit Batterien in eine wasserdichte Verteilerdose.
    Wenn die Reichweite schlecht ist hilft übrigens ein kleiner Kerko direkt an VCC und GND vom Sendemodul.

    Antworten
  2. Bloargh

    Kann man irgendwas zur Reichweite sagen? Z.B. wenn das Auto im Carport steht und man den im Haus nahe der Eingangstür platzieren möchte (5m+Hauswand)?

    Antworten
    1. ST Beitragsautor

      Die Reichweite ist sehr ähnlich zu dem Sender im Original Tesla Lader (UMC). Ich würde vorschlagen, die ganze Sache mal mit dem UMC nachzustellen. Also UMC da hin wo der Sender mal sein soll und den UMC dort mit einem Verlängerungskabel mit Strom versorgen.
      Beim Model 3 geht die Ladeklappe nicht auf, wenn das Smartphone mit der Tesla App nicht ausreichend nahe beim Auto ist. Das macht ja auch Sinn, damit nicht jedermann die Ladeklappe bei Teslas öffnen kann. Mein Tipp wäre, dass die Reichweite des 433MHz Signals weit genug geht. Das Öffnen der Ladeklappe könnte aber bei 5m+ daran scheitern, dass das Auto den Abstand zum Smartphone als zu groß bewertet.

      Antworten
  3. Sandro

    Danke für diesen Beitrag
    Ich habe es mit einen Arduino Nano und einer externen LED-Anzeige umgesetzt.
    Funktioniert wunderbar bei meine Tesla Model 3 2020.
    Ein Anmerkung:
    Wenn ich den Taster betätige öffnet sich die Klappe auch ohne das das Handy in der Hosentasche ist.
    Handy in ca. 15m Entfernung im Haus.
    Tesla steht untem Carport.

    Antworten
  4. Sandro

    Reichweite bei mir mit Arduino Nano und dem STX882 ca. 12m.
    Inklusive Hauswand mit Wärmedämmung.
    Antenne wie auf seinem Bild.

    Antworten
  5. Ingo

    Wird diese Variante auch den Ladeanschluss entriegeln, falls ein Kabel drin steckt, und mein Mobiltelefon in der Nähe ist? Oder handelt es sich hier um das reine öffnen der Klappe bzw. muss ich zum entriegeln ein Kabel mit Knopf nehmen?

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.