Neues Plugin für Tesla mit Vehicle Command API

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Jan W.
    Lox Guru
    • 30.08.2015
    • 1358

    #31
    Es gibt eine neue Version 0.5.0 des Plugins, die viele neue Funktionen enthält (daher der Versionssprung), u.a.:
    • Wählt automatisch das richtige SDK/die richtige API anhand der Fahrgestellnummer des Fahrzeugs aus. Nur S- und Y-Modelle vor 2021 und Powerwalls verwenden noch die alte API.
    • Erstellen und löschen eines Schlüsselpaares per GUI für jedes Fahrzeug (Popup mit Erläuterungen)
    • Senden des öffentlichen Schlüssel an das Auto per GUI (Popup mit Erläuterungen)
    • Anzeige der RSSI (Stärke des empfangenen BLE Signals) mit Bedeutung
    • Bessere Anzeige der Funktionsblöcke für Ausgänge und Ausgabebefehle, die in die Loxone-Konfiguration übernommen werden können
    HINWEIS: Seit dieser Version sind spezielle Builds der Tesla-Utilities aus dem Tesla Vehicle Command SDK erforderlich, die kompakte JSON-Ausgaben erzeugen und die o.a. Verbesserungen unterstützen! Nur die 64-Bit Versionen der Utilities für Raspberry sind im Plugin enthalten. Für andere Betriebssyteme oder 32-Bit Versionen müssen die Utilities neu erstellt werden. Weitere Informationen sind im Loxwiki zu finden, siehe https://wiki.loxberry.de/plugins/teslacmd/start

    Einen Bug habe ich leider in der Software der Autos gefunden: man kann im Auto auf dem Center Display die erstellten Schlüssel weder umbenennen noch löschen. Im Sommer hatte ich manuell ein Schüsselpaar erstellt und umbenannt, siehe Screenshots in der LoxWiki. (getestet auf einem Model 3 aus 2023 mit den Versionen 2024.45.32, als auch 2024.44). Ich werde mal ein Issue auf Github melden. Es wundert mich etwas, das dieses Problem noch keinem aufgefallen ist. Daher würde ich mich über eine Rückmeldung freuen, ob Ihr die erstellten Schlüssel umbenennen und wieder löschen könnt.

    Ich habe ebenfalls ein weiteres Utility 'tesla-scan' erstellt, welches nach Tesla Fahrzeugen in der Umgebung sucht und die gefundenen Fahrzeuge mit Statusinformationen ausgibt (ähnlich zu tesla-control). Dieses Utility verwendet keine Schlüssel und kann daher von jedem in der Umgebung verwendet werden. Es ist ja praktisch, dass die Statusinformationen vom Befehl body-controller-state auch im Schlafmodus abgerufen werden können und daher wahrscheinlich keine Authentifizierung anhand eines Schlüssels möglich ist. Etwas besorgt bin ich allerdings, dass auch der Befehl list-keys ohne Authentifizierung möglich ist.Hier eine Beispielausgabe (evtl. vorher noch das Paket jq (JSON processor) mit apt install jq als root installieren):

    Code:
    loxberry@loxberry:~ $ tesla-scan body-controller-state | jq
    {
      "scanResults": [
        {
          "localName": "S901234567890abcdC",
          "rssi": -66,
          "response": {
            "rssi": -80,
            "state": {
              "vehicleLockState": 1,
              "vehicleSleepStatus": 2,
              "userPresence": 1
            }
          }
        }
      ]
    }
    loxberry@loxberry:~ $ tesla-scan list-keys | jq
    {
      "scanResults": [
        {
          "localName": "S901234567890abcdC",
          "rssi": -67,
          "response": {
            "rssi": -75,
            "keylist": [
              {
                "publicKey": "04db...ada4",
                "role": "ROLE_SERVICE",
                "formFactor": "KEY_FORM_FACTOR_UNKNOWN"
              },
              {
                "publicKey": "04a2...f750",
                "role": "ROLE_OWNER",
                "formFactor": "KEY_FORM_FACTOR_NFC_CARD"
              },
              {
                "publicKey": "040b...89eb",
                "role": "ROLE_OWNER",
                "formFactor": "KEY_FORM_FACTOR_NFC_CARD"
              },
              {
                "publicKey": "04bb...4791",
                "role": "ROLE_OWNER",
                "formFactor": "KEY_FORM_FACTOR_CLOUD_KEY"
              },
    ...
              {
                "publicKey": "047d...0652",
                "role": "ROLE_OWNER",
                "formFactor": "KEY_FORM_FACTOR_IOS_DEVICE"
              }
            ]
          }
        }
      ]
    }
    Man kann in den o.a. Befehlen sehen, dass der Wert für RSSI stark schwankt, aber das ist wohl normal. Ich sehe gerade auch, dass der Wert doppelt auftaucht, das ist noch ein Schönheitsfehler, der aber keine Rolle spielt. Der erste Wert wurde beim Scannen ermittelt, der 2. Wert beim Abfragen des Status bzw. der Keys.
    Zuletzt geändert von Jan W.; 27.12.2024, 15:52.
    Miniserver v14.5.12.7, 2x Ext., 2x Relay Ext., 2x Dimmer Ext., DMX Ext., 1-Wire Ext., Gira KNX Tastsensor 3 Komfort, Gira KNX Präsenzmelder, Fenster- und Türkontakte, Loxone Regen- und Windsensor, Gira Dual Q Rauchmelder vernetzt, 1x Relais-Modul
    Loxberry: SmartMeter, MS Backup, CamConnect, Weather4Lox
    Lüftung: Helios KWL EC 370W ET mit Modbus TCP - via Pico-C
    Heizung: Stiebel Eltron WPF 5 cool (Sole-Wasser WP) mit ISG, FB-Heizung mit 18 Kreisen, Erdsonde - via modbus/TCP
    Node-RED: IKEA Tradfri

    Kommentar

    • blaess
      Smart Home'r
      • 06.09.2015
      • 81

      #32
      Vielen Dank Jan für die neue Version.
      Ich habe sie natürlich gleich installiert und wollte den GUI Key Prozess durchgehen. Leider haben ich kein "Blue Car Icon" im GUI.

      Btw, den alten Key konnte ich im Tesla umbenennen und löschen.

      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 100
Größe: 40,9 KB
ID: 450427
      Zuletzt geändert von blaess; 28.12.2024, 09:55.

      Kommentar


      • Jan W.
        Jan W. kommentierte
        Kommentar bearbeiten
        Hab den Fehler gefunden. Als Workaround trage bitte folgendes als „Custom BLE Command“ ein:
        tesla-control -ble -vin {vehicle_tag} -key-file /opt/loxberry/config/plugins/teslacmd/{vehicle_tag}-private.pem -command-timeout 10s -connect-timeout 30s {command}

      • blaess
        blaess kommentierte
        Kommentar bearbeiten
        Perfekt, jetzt funktioniert alles. Das "Blue Car Icon" ist da, Key konnte via GUI auf Auto geladen werden, RSSI Value ist -52 strong und die Kommandos gehen durch!
        Merci für Dein Support!

      • Jan W.
        Jan W. kommentierte
        Kommentar bearbeiten
        Super und danke für's Feedback.
    • Jan W.
      Lox Guru
      • 30.08.2015
      • 1358

      #33
      Ich habe eine neue Version 0.5.1 hochgeladen, die den Fehler, den blaess beschrieben hat, korrigiert. Nachdem ein Schlüssel im Auto installiert wurde, wird jetzt noch überprüft, ob der Schlüssel in dem 'Schlüsselbund' des Autos gefunden wurde, also der Prozess erfolgreich war.
      Zuletzt geändert von Jan W.; 28.12.2024, 17:09.
      Miniserver v14.5.12.7, 2x Ext., 2x Relay Ext., 2x Dimmer Ext., DMX Ext., 1-Wire Ext., Gira KNX Tastsensor 3 Komfort, Gira KNX Präsenzmelder, Fenster- und Türkontakte, Loxone Regen- und Windsensor, Gira Dual Q Rauchmelder vernetzt, 1x Relais-Modul
      Loxberry: SmartMeter, MS Backup, CamConnect, Weather4Lox
      Lüftung: Helios KWL EC 370W ET mit Modbus TCP - via Pico-C
      Heizung: Stiebel Eltron WPF 5 cool (Sole-Wasser WP) mit ISG, FB-Heizung mit 18 Kreisen, Erdsonde - via modbus/TCP
      Node-RED: IKEA Tradfri

      Kommentar

      • mno
        Dumb Home'r
        • 08.12.2015
        • 29

        #34
        Hallo,
        ich habe mir jetzt einen zweiten Raspberry 4 gegönnt, WiFi und BLE in der DietPi-Config aktiviert, den Loxberry V3 und das neue Tesla Command Plugin installiert. Nach der Eingabe des Tesla Tokens wir auch mein Model Y angezeigt und ich konnte einen Key erstellen. Es wird auch das blaue Fahrzeug-Icon angezeigt. Die Erstellung des Schlüssels hat auch funktioniert.

        Leider funktioniert aber die Installation des Keys im Auto nicht. Wenn ich das blaue Fahrzeug-Icon drücke und danach im neuen Fenster auf Start drücke wird keine Meldung 'Done' angezeigt. Es wird kein Schlüssel erstellt, egal ob ich die Schlüsselkarte im Auto vor oder nach Close auflege.

        Komisch ist aber das im Plugin das Bluetooth RSSI Signal als "very weak" und der BLE Status als "unknown" angezeigt wird, obwohl der Loxberry direkt neben dem Auto ist und BLE in der Dietpi-Config aktiviert wurde. Der Loxberry ist über WLAN mit dem LAN verbunden, aber das sollte doch kein Problem sein.

        Hat jemand eine Idee an was es liegen könnte?
        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 98
Größe: 37,3 KB
ID: 451404
        Zuletzt geändert von mno; 05.01.2025, 22:39.

        Kommentar

        • Jan W.
          Lox Guru
          • 30.08.2015
          • 1358

          #35
          Zitat von mno
          Komisch ist aber das im Plugin das Bluetooth RSSI Signal als "very week" angezeigt wird, obwohl der Loxberry direkt neben dem Auto ist und über WLAN mit dem Netzwerk verbunden ist. Hat jemand eine Idee an was es liegen könnte?
          Wird bei Dir die Signalstärke vor dem Text "very week" ausgegeben? Wenn nicht, dann verwendest Du nicht die aktuelle Version der Tesla SDK Tools. Die sollten eigentlich mit dem Plugin installiert werden.

          Die Ursache Deiner Probleme liegt wahrscheinlich in der schlechten Bluetooth Verbindung. Um Dir besser helfen zu können, benötige ich folgende Infos:

          Welche Version vom DietPi verwendest Du? Die Version ist über die GUI im Menü "My Loxberry", "System Information" zu finden. Wichtig sind die Werte für "Distribution" UND "Architecture".

          Welche Version vom Tesla Command Plugin verwendest Du?

          Über SSH (Anmeldung als User "loxberry") kannst Du testen, ob die Kommunikation mit dem Fahrzeug funktioniert:
          Code:
          tesla-control -ble -vin LRW3E7FS5PCXXXXX5 add-key-request /opt/loxberry/LRW3E7FS5PCXXXXX5-public.pem owner cloud_key
          EDIT: Fehlende Option "-ble" ergänzt.

          Die VIN musst Du durch die richtige VIN Deines Fahrzeuges ersetzen. Das ist der Befehl, der nach Drücken auf das "blaue Fahrzeug Icon" ausgeführt wird. Dabei wird der Public Key via BLE an das Fahrzeug gesendet, welches sich natürlich in der Nähe befinden muss. Die Kommunikation über BLE funktioniert über einige Meter (deutlich weniger, als z.B. bei WLAN).

          Zur kombinierten WLAN/Bluetooth Antenne (2,4 GHz) hatte ich in einem vorherigen Beitrag etwas geschrieben, aber wenn der Loxberry eine direkte Sichtverbindung zum Fahrzeug hat, die Entfernung unter 5m beträgt und der Raspberry nicht gerade in einem Metallgehäuse verbaut ist, sollte es auf jeden Fall funktionieren. Leider habe ich keinen Raspberry 3 oder 4 mit eingebauter Antenne zum Vergleich, weil ich die bei meinen Beiden umgebaut habe.

          Ich habe noch ein Tool zum Testen der Bluetooth (BLE) Verbindung erstellt, welches bisher noch nicht von der GUI verwendet wird. Über SSH kannst Du den folgenden Befehl eingeben, der alle Fahrzeuge in der Nähe mit Signalstärke (RSSI) anzeigt:

          Code:
          tesla-scan -command-timeout 5s -connect-timeout 30s body-controller-state
          Falls Du das Tool "jq" (JSON Processor) installiert hast (ggf. Google bemühen), dann kann man mit dem o.a. Befehl und Pipe " | jq" die Ausgabe leserlicher machen. Wenn das Tool keine Fahrzeuge anzeigt, dann gibt es ein Problem mit der BLE Verbindung. Zum Debuggen kann man auch den Befehl mit einer "-debug" Option verwenden, also
          Code:
          tesla-scan -command-timeout 5s -connect-timeout 30s -debug body-controller-state
          Mit aktiviertem Debugging sieht man alle Devices, die in der Nähe via Bluetooth gefunden wurden. Neben dem oder den Teslas also z.B. auch ein Nuki Lock.
          Zuletzt geändert von Jan W.; 06.01.2025, 18:18.
          Miniserver v14.5.12.7, 2x Ext., 2x Relay Ext., 2x Dimmer Ext., DMX Ext., 1-Wire Ext., Gira KNX Tastsensor 3 Komfort, Gira KNX Präsenzmelder, Fenster- und Türkontakte, Loxone Regen- und Windsensor, Gira Dual Q Rauchmelder vernetzt, 1x Relais-Modul
          Loxberry: SmartMeter, MS Backup, CamConnect, Weather4Lox
          Lüftung: Helios KWL EC 370W ET mit Modbus TCP - via Pico-C
          Heizung: Stiebel Eltron WPF 5 cool (Sole-Wasser WP) mit ISG, FB-Heizung mit 18 Kreisen, Erdsonde - via modbus/TCP
          Node-RED: IKEA Tradfri

          Kommentar

          • mno
            Dumb Home'r
            • 08.12.2015
            • 29

            #36
            Hallo Jan W.,

            Danke für die rasche Antwort.

            Antwort auf deine Fragen:
            Distribution: Debian - 12 (bookworm)
            Architecture: aarch64
            Tesla Command: Version 0.5.1

            Der Raspberry ist derzeit 1 Meter vor dem Auto und in einem Kunststoffgehäuse. Ich denke auch das das nicht das Problem sein sollte.


            Nachdem ich das BLE in der Dietpi-Config deaktiviert, wieder neu aktiviert und den Raspberry komplett stromlos gemacht habe hat das Erstellen des Schlüssels im Fahrzeug über SSH funktioniert. Allerdings erst nachdem ich in den Ordner ~/config/plugins/teslacmd/ gewechselt bin und danach den Befehl "tesla-control -vin LRW... -ble add-key-request ./LRW...-public.pem owner cloud_key" ausgeführt habe.

            Über den Loxberry hat es leider nicht funktioniert und dort wird immer noch das Blaue Fahrzeug-Icon zum Verbinden angezeigt.
            Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 64
Größe: 32,8 KB
ID: 451418
            Im Auto sehe ich aber jetzt den neuen Schlüssel, allerdings wird er als 'Unbekannter Schlüssel' angezeigt. Ich bin mir da nicht sicher ob das so passt.

            Die Kommunikation über BLE teste ich morgen.
            Angehängte Dateien
            Zuletzt geändert von mno; 06.01.2025, 00:45.

            Kommentar

            • mno
              Dumb Home'r
              • 08.12.2015
              • 29

              #37
              Hallo Jan W.,

              leider hat der über SSH hinzugefügte Schlüssel nicht funktioniert. Darum ahbe ich jetzt deine oben bereits vorgeschlagenen Befehle über SSH im Verzeichnis ~/config/plugins/teslacmd ausgeführt.

              1.) tesla-control -vin LRWxxxxxxxxxxxx31 -ble add-key-request ./LRWxxxxxxxxxxxx31-public.pem owner cloud_key

              Sent add-key request to LRWxxxxxxxxxxxx31. Confirm by tapping NFC card on center console.
              Die Anlage des Schlüssels im Auto hat funktioniert. Im Plugin ist aber wie davor das blaue Fahrzeug-Icon ersichtlich.

              2.) tesla-control -vin LRWxxxxxxxxxxxx31 add-key-request /opt/loxberry/LRWxxxxxxxxxxxx31-public.pem owner cloud_key

              Error loading credentials: could not load token: The specified item could not be found in the keyring

              3.) tesla-scan -command-timeout 5s -connect-timeout 30s body-controller-state

              {"scanResults":[{"localName":"Sfaxxxxxxxxxxxx7dC","rssi":-79,"response":{"rssi":-71,"state":{"closureStatuses":{"frontDriverDoor": 0 ,"frontPassengerDoor":0,"rearDriverDoor":0,"rea rPa ssengerDoor":0,"re arTrunk":0,"frontTrunk":0,"chargePort":1,"tonneau" :0},"vehicleLockState":1,"vehicleSleepStatus":1,"u serPresence":1}}}]}

              4.) hcitool dev

              Devices:
              hci0 2C:xx:xx:xx:xx:4C

              5.) tesla-scan -command-timeout 5s -connect-timeout 30s -debug body-controller-state
              Die Details des Debug-Ergebnisses ist in der folgenden Datei ersichtlich.
              ​​
              Tesla Command Debug.txt

              Gruß und Danke für deine Unterstützung. Ich bin für jeden Tipp dankbar.

              Kommentar

              • Jan W.
                Lox Guru
                • 30.08.2015
                • 1358

                #38
                Im Plugin ist aber wie davor das blaue Fahrzeug-Icon ersichtlich.
                Den Public Key benötigt man nicht mehr, aber der wird derzeit nicht gelöscht, so dass auch das blaue Icon bleibt. Da in der neuen Version in der GUI (im Popup) am Ende überprüft wird, ob der Schlüssel erfolgreich installiert worden ist, könnte der am Ende noch gelöscht werden und dann verschwindet auch das blaue Icon mit dem Fahrzeug. Sicherheitstechnisch macht es keinen Unterschied, da nur der private Schlüssel geheim bleiben muss.

                Danke für die Info mit der fehlenden "-ble" Option im o.a. Befehl "tesla-control ... add-key-request ...". Ich habe die Option im vorherigen Post ergänzt, falls jemand das Kommando ebenfalls testen möchte. In der GUI sollte der richtige Befehl enthalten sein, was man im Log überprüfen kann, wenn der Log-Level vorher auf "Debugging" eingestellt wurde.

                @mno: Es sieht in Deinem Debug Log so aus, als ob die manuelle Installation des Schlüssels im Fahrzeug erfolgreich war. Wenn die Meldung "Sent add-key request to LRWxxxxxxxxxxxx31. Confirm by tapping NFC card on center console." kommt, dann wurde der Request erfolgereich an Dein Fahrzeug übermittelt.

                Bitte lösche den Schlüssel im Fahrzeug und teste die Funktion in der neuen Version 0.6.0 über die GUI(siehe nächster Post). Es gibt jetzt eine Überprüfung am Ende, ob der Schlüssel erfolgreich installiert wurde.

                Du kannst das Plugin testen, indem Du über einen Browser oder "curl" den "Send" Befehl an den Loxberry sendest. Ein Beispiel ist am Ende der Seite "Queries". Die nächsten Schritte sind die Erstellung der Ein- und Ausgänge. Die benötigten Bausteine (zumindest die Ausgänge) sind ebenfalls auf der Seite "Queries" aufgeführt.

                Für die Eingänge kann man sich die Namen der benötigten virtuellen Eingänge im MQTT Finder kopieren, der auf dem Loxberry über das MQTT Menü erreicht wird. Hier ein Beispiel von mir:

                Klicke auf die Grafik für eine vergrößerte Ansicht  Name: TeslaCmd In- and Outputs.png Ansichten: 0 Größe: 96,7 KB ID: 451507

                Technisch gesehen ist es nach meiner Ansicht fast egal, ob die Eingänge direkt unter "Virtuelle Eingänge" angelegt werden oder über einen "Virtuellen HTTP Eingang" gruppiert als "virtuelle Eingangsbefehle". Wichtig ist nur der exakte Name des MQTT Objektes! Ich finde die Gruppierung schöner, aber für einen virtuellen Texteingang funktioniert das nicht. Die Frage ist, ob man überhaupt virtuelle Texteingänge benötigt. Ein Status wie "asleep" oder eine Fehlermeldung kann über MQTT zwar einfach gesendet werden, aber dann kann man keine weiter Verarbeitung oder Farben verwenden, die z.B. ein Statusbaustein bietet.

                Nicht vergessen sollte man den "reconnect" Befehl, damit nach einem Neustart des MS alle MQTT Objekte wieder an den MS gesendet werden. Steht aber auch in der Beschreibung (LoxWiki) zur Verwendung des MQTT Brokers.
                Miniserver v14.5.12.7, 2x Ext., 2x Relay Ext., 2x Dimmer Ext., DMX Ext., 1-Wire Ext., Gira KNX Tastsensor 3 Komfort, Gira KNX Präsenzmelder, Fenster- und Türkontakte, Loxone Regen- und Windsensor, Gira Dual Q Rauchmelder vernetzt, 1x Relais-Modul
                Loxberry: SmartMeter, MS Backup, CamConnect, Weather4Lox
                Lüftung: Helios KWL EC 370W ET mit Modbus TCP - via Pico-C
                Heizung: Stiebel Eltron WPF 5 cool (Sole-Wasser WP) mit ISG, FB-Heizung mit 18 Kreisen, Erdsonde - via modbus/TCP
                Node-RED: IKEA Tradfri

                Kommentar

                • Jan W.
                  Lox Guru
                  • 30.08.2015
                  • 1358

                  #39
                  Da ich zwischen den Feiertagen etwas Langeweile hatte, habe ich eine neue Version bereitgestellt: v0.6.0 - https://wiki.loxberry.de/plugins/teslacmd/start

                  Die wichtigsten Neuerungen:
                  • Am Ende der Funktion zum Senden eines Public Key an das Fahrzeug (blaues Icon mit Auto) wird überprüft, ob der Schlüssel im Schlüsselbund des Fahrzeugs enthalten ist. Man bekommt dann im Popup eine Rückmeldung, ob das Senden erfolgreich war. Den im Fahrzeug installierten Public Key benötigt man danach nicht mehr, aber der Schlüssel wird derzeit nicht gelöscht, so dass auch das blaue Icon weiterhin vorhanden ist. Vielleicht ändere ich das noch in einer zukünftigen Version. Sicherheitstechnisch macht es keinen Unterschied, da nur der private Schlüssel geheim bleiben muss. Am Ende sollte das Plugin möglichst einfach zu bedienen sein.
                  • Die Performance im "Settings" Menü ist verbessert, da die Abfrage über BLE nur nach Klick auf das blaue Fragezeichen stattfindet. Befehle über BLE dauern je nach Qualität der Verbindung, Entfernung und Antennen 2-15 Sekunden. Mit der Repeat-Funktion (1x oder 2x) wird die Dauer verdoppelt oder verdreifacht. Das Icon neben dem gefällt mir noch nicht so gut und vielleicht füge ich noch eine "Scan" Funktion ein, die nach Fahrzeugen in der Nähe sucht und alle Fahrzeuge mit RSSI anzeigt. Damit kann man einfach feststellen, wie gut die Bluetooth Verbindung zwischen Loxberry und Fahrzeug ist. Das ist derzeit nur über eine SSH Session möglich.
                  • Das Tool tesla-control hatte noch einen Fehler im JSON Output und ist aktualisiert worden.
                  • Auf dem Loxberry habe ich ein Queuing-System eingerichtet, damit alle Befehle, die eine BLE Verbindung benötigen, nacheinander abgearbeitet werden. Vorher konnte es durch zu häufiges Senden von Befehlen an das Plugin zu dem Problem kommen, dass viele Aufrufe mit Timeouts beendet wurden, weil das BLE Interface von einem anderen Prozess belegt war. Der Zugriff auf das BLE Interface ist exklusiv und eine gleichzeitige Verwendung nicht möglich. Von dem Queuing-System merkt der Anwender nichts - man kann es höchstens in den Log-Dateien erkennen.
                  • Man kann im HTTP Request an den Loxberry mittlerweile auch die VIN statt der ID verwenden. Die "Queries" Seite ist entsprechend angepasst worden. Technisch konnte die VIN in der Tesla Owner's API bereits seitl längerem verwendet werden.
                  • Mittelfristig möchte ich das Plugin noch anpassen, so dass nicht zwingend eine Anmeldung bei Tesla und ein Token erforderlich sind. Seit einiger Zeit sind alle relevanten Features über BLE verfügbar, inkl. Abfrage des Status (auch wenn das Fahrzeug schläft), des Ladestandes und aller Funktionen zum Steuern des Fahrzeuges (u.a. Aufwecken, Ladeklappe öffnen, Innenraum vorwärmen), so dass man das Fahrzeug ausschließlich lokal über BLE steuern kann und eine Internet-Verbindung nicht zwingend erforderlich ist. Über BLE gibt es keine Beschränkungen in der Anzahl der Abfragen pro Stunde oder Tag und diese Schnittstelle ist 100% kostenlos nutzbar.
                  Hinweis. nur für einen Loxberry mit 64-Bit sind die aktualisierten Tools enthalten!

                  Das Plugin ist zwar noch im Status "Beta", aber die Frequenz der Updates wird sich in der Zukunft reduzieren und primär werde ich Fehlerbereinigungen bereitstellen. Wer bisher noch abgewartet hat, sollte sich das Plugin mal ansehen.

                  Ich bin noch am Testen, welche Timeout Parameter und Repeat-Einstellungen (0x, 1x oder 2x) am 'Besten' sind. Die optimalen Einstellungen hängen sicherlich auch von der Entfernung und Qualität der Bluetooth Verbindung ab, so dass es keine "All-fits-one" Lösung geben kann.

                  Die Erkennung, ob das Fahrzeug in der Nähe ist, funktioniert bei mir sehr stabil bei einem Abfrageintervall von 30 sekunden mit den Timeouts "-command-timeout 4s -connect-timeout 8s" und 1x Repeat. Öfter sollte man eine Statusabfrage nicht machen (und auch nicht mehrere Abfragen gleichzeitig), denn wenn das Fahrzeug abwesend ist, dann dauert es bis zum "connect timeout", bis der Befehl abbricht und ggf. nach 5 Sekunden wiederholt wird. Wenn das Fahrzeug antwortet und evtl. sogar wach ist, dann dauern die Abfragen nur wenige Sekunden und man kann gleichzeitig mehrere Abfragen durchführen. Für fast alle Befehle (außer Status über body-controller-state) muss das Fahrzeug wach sein. ​
                  Miniserver v14.5.12.7, 2x Ext., 2x Relay Ext., 2x Dimmer Ext., DMX Ext., 1-Wire Ext., Gira KNX Tastsensor 3 Komfort, Gira KNX Präsenzmelder, Fenster- und Türkontakte, Loxone Regen- und Windsensor, Gira Dual Q Rauchmelder vernetzt, 1x Relais-Modul
                  Loxberry: SmartMeter, MS Backup, CamConnect, Weather4Lox
                  Lüftung: Helios KWL EC 370W ET mit Modbus TCP - via Pico-C
                  Heizung: Stiebel Eltron WPF 5 cool (Sole-Wasser WP) mit ISG, FB-Heizung mit 18 Kreisen, Erdsonde - via modbus/TCP
                  Node-RED: IKEA Tradfri

                  Kommentar

                  • mno
                    Dumb Home'r
                    • 08.12.2015
                    • 29

                    #40
                    Hallo Jan W.,
                    danke für das neue Plugin mit der Möglichkeit den Status der BLE-Verbindung abzufragen. Leider wird bei meinem PI4, der direkt neben dem Auto ist, nach dem Drpcken des blauen Fragezeichen-Icons nichts gefunden, bzw. "unknown" und "not available!" angezeigt, über SSH aber schon.

                    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 63
Größe: 47,3 KB
ID: 451577

                    Hast du eine Idee an was das liegen könnte? Vermutlich ist das auch der Grund warum ich über das Plugin keinen Fahrzeugschlüssel erstellen kann.

                    Gruß und Danke.​
                    Angehängte Dateien

                    Kommentar


                    • Jan W.
                      Jan W. kommentierte
                      Kommentar bearbeiten
                      Hmm, das ist wirklich merkwürdig. Die empfangene Signalstärke ist ziemlich gut, so dass es bei der Kommunikation zwischen dem Loxberry und dem Fahrzeug via BLE keine Probleme geben kann. Ändere bitte im Plugin in dem Reiter "Log" den Level auf "Debugging". Du solltest dann nach Ausführung der Befehle Einträge im Log sehen, die detailliert die ausgeführten Schritte und Befehle anzeigen. Es kann sein, dass mehrere Log-Dateien erzeugt werden.

                      Die Dateien kannst Du mir gerne per PN zusenden (ggf. die VIN mit XXX ersetzen). Wenn Du Dir es zutraust, dann kannst Du auch selbst nachsehen.

                      Nach Klick auf das blaue Fahrzeug Icon und danach auf 'start' sollte der folgende Eintrag (in blau) vorhanden sein:
                      INFO: sendkeytocar: Sending public key to car with VIN: LRWxxxxx5
                      dann folgen etliche Zeilen mit dem genauen Befehl und der erhaltenen Antwort. In einer neuen Log-Datei sollte es den Eintrag (ebenfalls in blau) geben:
                      INFO: verifykeyincar: Sending public key to car with VIN: LRW3E7FS5PC695355.
                      dann folgen etliche Zeilen mit dem genauen Befehl und der erhaltenen Antwort. Anschließend werden die Schlüssel aus dem Fahrzeug mit dem gesendeten Schlüssel verglichen.

                      Bei Klick auf das blaue Fragezeichen sollten Du folgende Ausgaben sehen (in blau):
                      INFO: BLE Query: body-controller-state: start
                      dann folgen etliche Zeilen mit dem genauen Befehl und der erhaltenen Antwort. Darunter folgt eine Zeile (in grün) mit
                      OK: MQTT: Connection successful.
                      und den vom Plugin gesendeten Objekten. Danach muss eine Zeile (ebenfalls grün) mit
                      OK: tesla_command: vid: LRWxxxxx5, vin: LRW3xxxxx5, action: add-key-request, cmd: tesla-control
                      folgen.

                      Vielleicht ist bei Dir das "custom BLE command" geändert worden oder irgendein Fehler im Plugin, der bei mir nicht auftritt?
                  • mno
                    Dumb Home'r
                    • 08.12.2015
                    • 29

                    #41
                    Hallo,
                    hat es jemand von Euch erfolgreich geschafft den STATE Befehl mit Command=charge von Loxone an das Plugin zu senden? Bei mir bekomme ich im HTTP Monitor immer einen Timeout und der Befehl wird nicht ausgeführt. Wenn ich den Befehl im Plugin teste funktioniert es problemlos.
                    Andere Befehle wie CHARGE_START funktionieren.

                    Kommentar

                    • Jan W.
                      Lox Guru
                      • 30.08.2015
                      • 1358

                      #42
                      Ja, den Befehl verwende ich, um den SoC zu bekommen. Der virtuelle Ausgangsbefehl sollte so aussehen:

                      /admin/plugins/teslacmd/send.php?action=state&vin=<myVIN>&category=charge

                      Im Tab "Queries" kannst Du alle Befehle und die notwendigen virtuelle Ausgangsbefehle (generisch mit allen Parametern). Bei "Testqueries" wird der gesendete Befehl ebenfalls angezeigt (allerdings als komplette URL). Der Parameter "Output" ist optional und den kannst Du weglassen.

                      Ich bin mir nicht 100%ig sicher, aber bei meinen letzten Tests sah es so aus, also ob ein regelmäßiges Abfragen den Wagen wach hält. Ich habe daher meine Logik geändert, so dass ich den SoC nur abfrage, wenn "Ca" von der Wallbox aktiv, der Wagen da und wach ist (über UND verknüpft).

                      Wenn Du den SoC für eine Bedingung benötigst, um um z.B. die Ladeart oder einen sofortigen Start zu ermöglichen, dann würde ich den abfragen, wenn der Wagen gerade angekommen ist (steigende Flanke by "nearby" um ein paar Minuten mit Monoflop verlängert).
                      Zuletzt geändert von Jan W.; 16.01.2025, 08:40.
                      Miniserver v14.5.12.7, 2x Ext., 2x Relay Ext., 2x Dimmer Ext., DMX Ext., 1-Wire Ext., Gira KNX Tastsensor 3 Komfort, Gira KNX Präsenzmelder, Fenster- und Türkontakte, Loxone Regen- und Windsensor, Gira Dual Q Rauchmelder vernetzt, 1x Relais-Modul
                      Loxberry: SmartMeter, MS Backup, CamConnect, Weather4Lox
                      Lüftung: Helios KWL EC 370W ET mit Modbus TCP - via Pico-C
                      Heizung: Stiebel Eltron WPF 5 cool (Sole-Wasser WP) mit ISG, FB-Heizung mit 18 Kreisen, Erdsonde - via modbus/TCP
                      Node-RED: IKEA Tradfri

                      Kommentar

                      • mno
                        Dumb Home'r
                        • 08.12.2015
                        • 29

                        #43
                        Danke für die Antwort. Dann könnte es auch sein das das Problem vor dem Bildschirm sitzt. Wenn ich von Loxone den folgenden Befehl sende kommt es zu einem Timeout.

                        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 81
Größe: 17,0 KB
ID: 452696

                        Das sollte aber kein Problem sein, denn im Loxbery MQTT Monitor (Incomming Overview) werden sofort die folgenden drei virtuelle Eingänge angezeigt:
                        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 50
Größe: 24,8 KB
ID: 452697
                        Allerdings werden die anderen virtuellen Eingänge nicht aktualisiert, auch nicht nach mehreren Minuten.
                        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 48
Größe: 33,2 KB
ID: 452698

                        Wenn der Befehl aber über das Plugin ausgeführt wird erfolgt die Aktualisierung ​.
                        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 49
Größe: 121,8 KB
ID: 452699
                        Im MQTT Monitor werden die Datren dann angezeigt.
                        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 49
Größe: 28,8 KB
ID: 452700

                        ​Allerdings werden die Daten nicht mit der VIN sondern ID angezeigt. Könnte es da noch ein Problem im Plugin geben?

                        Kommentar

                        • Jan W.
                          Lox Guru
                          • 30.08.2015
                          • 1358

                          #44
                          Allerdings werden die Daten nicht mit der VIN sondern ID angezeigt. Könnte es da noch ein Problem im Plugin geben?
                          Das ist nicht auszuschließen, aber ich habe die Config bei mir bei "send.php" auf die vin umgestellt, die wie bei Dir aussieht. Eigentlich sollten im Plugin beide Varianten unterstützt werden.

                          Erhöhe bitte den Logging-Level im Plugin auf "Debug" und sende mir das Log z.B. per PN. Dort müsstest Du die Verarbeitung der URL für "send.php?..." finden und sehen können, welcher Befehl an das Auto gesendet wird.

                          P.S.: Den SoC selbst bekommst Du mit teslacmd_LRWxxx_state_chargeState_batteryLevel . Aber das ist nicht der Fehler, denn wenn eine gültige Antwort vom Auto kommt (der Befehl ausgeführt wurde), dann wird der JSON Output an den MQTT Broker weitergereicht, der alle Parameter sendet.
                          Miniserver v14.5.12.7, 2x Ext., 2x Relay Ext., 2x Dimmer Ext., DMX Ext., 1-Wire Ext., Gira KNX Tastsensor 3 Komfort, Gira KNX Präsenzmelder, Fenster- und Türkontakte, Loxone Regen- und Windsensor, Gira Dual Q Rauchmelder vernetzt, 1x Relais-Modul
                          Loxberry: SmartMeter, MS Backup, CamConnect, Weather4Lox
                          Lüftung: Helios KWL EC 370W ET mit Modbus TCP - via Pico-C
                          Heizung: Stiebel Eltron WPF 5 cool (Sole-Wasser WP) mit ISG, FB-Heizung mit 18 Kreisen, Erdsonde - via modbus/TCP
                          Node-RED: IKEA Tradfri

                          Kommentar

                          • Jan W.
                            Lox Guru
                            • 30.08.2015
                            • 1358

                            #45
                            mno : Es gibt noch eine andere Möglichkeit, die URL zu testen:

                            Installiere "curl" und "jq" (zwei Tools für die Kommandozeile, jq=JSON processor). Ich bin zwar Mac-User, aber die Tools wird es auch für Windows geben. Letzteres ist nicht unbedingt notwendig. Dann kannst Du die URL aus dem Output von "Testqueries" (User, Passwort und IP-Adresse anpassen) 1:1 über curl an das Plugin senden:

                            curl -s 'http://loxberry:geheim@10.x.x.x/admin/plugins/teslacmd/send.php?action=state&category=charge&vin=LRWxxx&f orce=true' | jq

                            Dem Plugin ist es egal, ob die URL vom PC oder MS gesendet wird - beide Varianten senden genau die gleichen IP-Pakete.

                            Vielleicht gibt es noch ein Problem mit dem "virtual Output" in der Config? z.B. Name, Passwort, Typo? Vielleicht liegt es auch an einem Sonderzeichen im Passwort welches die Config oder das Plugin nicht unterstützt? An der Kommunikation mit dem Fahrzeug liegt es nicht, denn über "Testqueries" funktioniert es ja.
                            Miniserver v14.5.12.7, 2x Ext., 2x Relay Ext., 2x Dimmer Ext., DMX Ext., 1-Wire Ext., Gira KNX Tastsensor 3 Komfort, Gira KNX Präsenzmelder, Fenster- und Türkontakte, Loxone Regen- und Windsensor, Gira Dual Q Rauchmelder vernetzt, 1x Relais-Modul
                            Loxberry: SmartMeter, MS Backup, CamConnect, Weather4Lox
                            Lüftung: Helios KWL EC 370W ET mit Modbus TCP - via Pico-C
                            Heizung: Stiebel Eltron WPF 5 cool (Sole-Wasser WP) mit ISG, FB-Heizung mit 18 Kreisen, Erdsonde - via modbus/TCP
                            Node-RED: IKEA Tradfri

                            Kommentar


                            • mno
                              mno kommentierte
                              Kommentar bearbeiten
                              Hallo Jan, nach einem Neustart des Loxberry hat es dann doch noch funktioniert. Allerdings dauert es wirklich sehr lange bis die Werte im MQTT Monitor ersichtlich sind. Ich möchte mich bei dir auch noch für deine Unterstützung und für dieses Plugin bedanken.
                              Zuletzt geändert von mno; In den letzten 4 Wochen.
                          Lädt...