Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Tesla-Motors v1.0.0

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    200

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    7.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.7k

Test Tesla-Motors v1.0.0

Test Tesla-Motors v1.0.0

Scheduled Pinned Locked Moved Tester
931 Posts 99 Posters 284.0k Views 91 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    tombox
    wrote on last edited by tombox
    #1

    Hi ich habe ein neuen Adapter für Tesla geschrieben. Es wird beim Login Captcha und MFA unterstützt. Es muss kein Token manuell eingegeben werden

    Es werden auch die Powerwalls und PV devices aus der Tesla App angezeigt und aktualisiert

    Remote Befehle für Tesla und Powerwall sind möglich unter
    tesla-motors.0.id.remote

    Zum öffnen via remote.charge_port_door_open muss der Ladevorgang erst gestoppt werden.

    Zum Installieren:
    https://github.com/iobroker-community-adapters/ioBroker.tesla-motors

    Unter Adapter Experten Modus aktivieren:
    9309457a-cad0-4ff4-946f-28df05d32801-image.png

    Unter Adapter das Github Icon klicken:
    ef5f973f-4a70-43be-bf9a-460726a69d1d-image.png
    Benutzerdefiniert auswählen und die Url einfügen.
    8328414c-da64-41d4-b524-5a75a25cb683-image.png

    Wer den Telsa-Motors Adapter schon installiert hat ist fertig

    Wenn nicht dann unter Adapter den Tesla-Motors Adapter suchen und ganz rechts auf das Plus klicken.
    f59f304a-7769-463f-84d2-e36b461a87bd-image.png

    Loginablauf:
    In den Instanzoptionen den Auth Link klicken.
    Die Logindaten eingeben und gegebenenfalls Captcha/reCaptcha und MFA eingeben.
    Auf der Page not Found Seite die komplette URL aus dem Browser kopieren und in die Instanzoptionen einfügen und auf Speichen und Schließen klicken.

    Field Description
    df driver front
    dr driver rear
    pf passenger front
    pr passenger rear
    ft front trunk
    rt rear trunk

    Option Codes Erklärung

    dbwebD M J J HumidorH 10 Replies Last reply
    1
    • T tombox

      Hi ich habe ein neuen Adapter für Tesla geschrieben. Es wird beim Login Captcha und MFA unterstützt. Es muss kein Token manuell eingegeben werden

      Es werden auch die Powerwalls und PV devices aus der Tesla App angezeigt und aktualisiert

      Remote Befehle für Tesla und Powerwall sind möglich unter
      tesla-motors.0.id.remote

      Zum öffnen via remote.charge_port_door_open muss der Ladevorgang erst gestoppt werden.

      Zum Installieren:
      https://github.com/iobroker-community-adapters/ioBroker.tesla-motors

      Unter Adapter Experten Modus aktivieren:
      9309457a-cad0-4ff4-946f-28df05d32801-image.png

      Unter Adapter das Github Icon klicken:
      ef5f973f-4a70-43be-bf9a-460726a69d1d-image.png
      Benutzerdefiniert auswählen und die Url einfügen.
      8328414c-da64-41d4-b524-5a75a25cb683-image.png

      Wer den Telsa-Motors Adapter schon installiert hat ist fertig

      Wenn nicht dann unter Adapter den Tesla-Motors Adapter suchen und ganz rechts auf das Plus klicken.
      f59f304a-7769-463f-84d2-e36b461a87bd-image.png

      Loginablauf:
      In den Instanzoptionen den Auth Link klicken.
      Die Logindaten eingeben und gegebenenfalls Captcha/reCaptcha und MFA eingeben.
      Auf der Page not Found Seite die komplette URL aus dem Browser kopieren und in die Instanzoptionen einfügen und auf Speichen und Schließen klicken.

      Field Description
      df driver front
      dr driver rear
      pf passenger front
      pr passenger rear
      ft front trunk
      rt rear trunk

      Option Codes Erklärung

      dbwebD Offline
      dbwebD Offline
      dbweb
      wrote on last edited by
      #2

      @tombox funktioniert soweit, gute Arbeit!
      Die frage ist jetzt, wie wir das "zusammenbauen". Ich denke die ganze Logik mit aufwecken & schlafen lassen ist schon wichtig, vampire-drain ist bei Tesla massiv, wenn man ihn nicht schlafen lässt.
      Variante A:
      Teslajs stehen lassen, und deinen Flow nur verwenden, um ein Token zu erhalten.
      Vorteil:

      • Der rest des Adapters bleibt bestehen (Aufwecklogik etc.)
      • die ganzen States bleiben bestehen
      • abwärtskompatibel
        Nachteil:
      • Abhängigkeit von teslajs bleibt
      • Powerwalls & PV fehlt teilweise, es gibt evtl. auch noch ein paar andere States die fehlen.
        Variante B:
        Komplett auf das bisherige verzichten und auf deinem Aufbauen
        Vorteil:
      • "clean" restart, keine Altlasten
      • Keine Abhängigkeit von teslajs
        Nachteil:
      • Aufwecklogik fehlt
      • Nicht abwärtskompatibel, da Struktur der States anders ist und einige States anders heissen
        Variante C :
        teslajs rausoperieren und durch deinen Flow ersetzen, direkt mit Tesla kommunizieren
        Vorteil:
      • Am saubersten
      • Teils abwärtskompatibel
        Nachteil:
      • Aufwändig

      Was meinst du? Ich weis auch nicht genau, wie viel Zeit ich die nächsten Wochen dafür investieren kann.

      T 1 Reply Last reply
      0
      • dbwebD dbweb

        @tombox funktioniert soweit, gute Arbeit!
        Die frage ist jetzt, wie wir das "zusammenbauen". Ich denke die ganze Logik mit aufwecken & schlafen lassen ist schon wichtig, vampire-drain ist bei Tesla massiv, wenn man ihn nicht schlafen lässt.
        Variante A:
        Teslajs stehen lassen, und deinen Flow nur verwenden, um ein Token zu erhalten.
        Vorteil:

        • Der rest des Adapters bleibt bestehen (Aufwecklogik etc.)
        • die ganzen States bleiben bestehen
        • abwärtskompatibel
          Nachteil:
        • Abhängigkeit von teslajs bleibt
        • Powerwalls & PV fehlt teilweise, es gibt evtl. auch noch ein paar andere States die fehlen.
          Variante B:
          Komplett auf das bisherige verzichten und auf deinem Aufbauen
          Vorteil:
        • "clean" restart, keine Altlasten
        • Keine Abhängigkeit von teslajs
          Nachteil:
        • Aufwecklogik fehlt
        • Nicht abwärtskompatibel, da Struktur der States anders ist und einige States anders heissen
          Variante C :
          teslajs rausoperieren und durch deinen Flow ersetzen, direkt mit Tesla kommunizieren
          Vorteil:
        • Am saubersten
        • Teils abwärtskompatibel
          Nachteil:
        • Aufwändig

        Was meinst du? Ich weis auch nicht genau, wie viel Zeit ich die nächsten Wochen dafür investieren kann.

        T Offline
        T Offline
        tombox
        wrote on last edited by
        #3

        @dbweb
        Ich denke die Abhängigkeit zu teslajs macht kein Sinn da durch die Captcha eine tiefe Integration zum ioBroker notwendig ist, auch die Filterung nach Produkttyp und States finde ich nicht so gut.

        Die Strukturänderung ist zwar ärgerlich aber hat den Vorteil dass die Powerwalls jetzt mit dabei sind und alle Datenpunkte und auch zukünftige Datenpunkte ohne Anpassung verfügbar sind. Das reduziert den Wartungsaufwand enorm.

        Die Aufwecklogik habe ich nocht nicht ganz verstanden.
        In meinem Adapter, kann man minutengenau den Updateinterval festlegen. Außerdem kann man einstellen ob das Fahrzeug vor jedem Update geweckt werden soll.

        Wer vampire drain vorbeugen möchte deaktiviert die Option wakeup und es kommen nur neue Daten falls das Fahrzeug wach ist bzw werden die Daten vom letzten Stand gesendet.

        Ich war nich ob man wakeup default mässig an oder aus stellt.

        Welche Verbesserung könnte man da noch machen?

        dbwebD 1 Reply Last reply
        0
        • T tombox

          @dbweb
          Ich denke die Abhängigkeit zu teslajs macht kein Sinn da durch die Captcha eine tiefe Integration zum ioBroker notwendig ist, auch die Filterung nach Produkttyp und States finde ich nicht so gut.

          Die Strukturänderung ist zwar ärgerlich aber hat den Vorteil dass die Powerwalls jetzt mit dabei sind und alle Datenpunkte und auch zukünftige Datenpunkte ohne Anpassung verfügbar sind. Das reduziert den Wartungsaufwand enorm.

          Die Aufwecklogik habe ich nocht nicht ganz verstanden.
          In meinem Adapter, kann man minutengenau den Updateinterval festlegen. Außerdem kann man einstellen ob das Fahrzeug vor jedem Update geweckt werden soll.

          Wer vampire drain vorbeugen möchte deaktiviert die Option wakeup und es kommen nur neue Daten falls das Fahrzeug wach ist bzw werden die Daten vom letzten Stand gesendet.

          Ich war nich ob man wakeup default mässig an oder aus stellt.

          Welche Verbesserung könnte man da noch machen?

          dbwebD Offline
          dbwebD Offline
          dbweb
          wrote on last edited by dbweb
          #4

          @tombox Teslas habrn die eigenheit, dass sie nicht schlafen gehen, solange man Daten abfragt. D.h. wenn man immer nur dann Daten abfragt wenn er Wach ist, so geht er niemals mehr schlafen.
          Deswegen die Aufwecklogik, das Ziel ist, möglichst nichts zu verpassen, aber trotzdem nicht Stundenlange abfragen wenn nichts passiert.
          Wenn man sich bewegt, ist aber 1 Minute zu lange fürs Update, das reicht nicht für ein "Verfolgen".

          dbwebD 1 Reply Last reply
          0
          • dbwebD dbweb

            @tombox Teslas habrn die eigenheit, dass sie nicht schlafen gehen, solange man Daten abfragt. D.h. wenn man immer nur dann Daten abfragt wenn er Wach ist, so geht er niemals mehr schlafen.
            Deswegen die Aufwecklogik, das Ziel ist, möglichst nichts zu verpassen, aber trotzdem nicht Stundenlange abfragen wenn nichts passiert.
            Wenn man sich bewegt, ist aber 1 Minute zu lange fürs Update, das reicht nicht für ein "Verfolgen".

            dbwebD Offline
            dbwebD Offline
            dbweb
            wrote on last edited by
            #5

            Als Beispiel:
            Morgens setzt du die Klimaanlage auf "on". D.h. du wirst vermutlich bald losfahren. Daher macht es Sinn, die Daten regelmässig abzufragen.
            Du kannst aber nicht fragen 'fährt das Auto' ohne es aktiv wach zu halten, wenn du aber nichts weiter abfragst, so wirst du die Abfahrt verpassen, du wirst nur irgendwann mitbekommen, dass das Auto wieder schläft.
            Wenn du alle 10 Minuten Abfragst, bleibt das auto für immer Wach.

            T 1 Reply Last reply
            0
            • dbwebD dbweb

              Als Beispiel:
              Morgens setzt du die Klimaanlage auf "on". D.h. du wirst vermutlich bald losfahren. Daher macht es Sinn, die Daten regelmässig abzufragen.
              Du kannst aber nicht fragen 'fährt das Auto' ohne es aktiv wach zu halten, wenn du aber nichts weiter abfragst, so wirst du die Abfahrt verpassen, du wirst nur irgendwann mitbekommen, dass das Auto wieder schläft.
              Wenn du alle 10 Minuten Abfragst, bleibt das auto für immer Wach.

              T Offline
              T Offline
              tombox
              wrote on last edited by
              #6

              @dbweb Also müsste man schreiben überprüfen ob sich was änder oder ts mit tc vergleichen
              Es wäre noch gut wann sich die timestamps wie zb tesla-motors.0.12345678901234567.vehicle_state.timestamp ändert.
              Bei jedem Request oder nur bei Änderung

              dbwebD 1 Reply Last reply
              0
              • T tombox

                @dbweb Also müsste man schreiben überprüfen ob sich was änder oder ts mit tc vergleichen
                Es wäre noch gut wann sich die timestamps wie zb tesla-motors.0.12345678901234567.vehicle_state.timestamp ändert.
                Bei jedem Request oder nur bei Änderung

                dbwebD Offline
                dbwebD Offline
                dbweb
                wrote on last edited by
                #7

                @tombox nein das reicht eben nicht aus. Du hast zwei Endpoints, einer bei dem du siehst ob der wagen schläft, den kann man immer abfragen, und den zweiten, um alle Daten zu erhalten. Eine Abfrage darauf weckt den Wagen automatisch auf. Es gibt keine Möglichkeit abzufragen ob sich etwas ändert, ohne damit den Tesla-Internen Schlaftimer zurück zu setzen, womit er dann für 10-15 Minuten nicht mehr schläft.
                Ist etwas komplexer das ganze als man es zuerst vermuten würde, ansonsten siehst du es evtl. in meinem Code was ich meine.

                T dbwebD 2 Replies Last reply
                0
                • dbwebD dbweb

                  @tombox nein das reicht eben nicht aus. Du hast zwei Endpoints, einer bei dem du siehst ob der wagen schläft, den kann man immer abfragen, und den zweiten, um alle Daten zu erhalten. Eine Abfrage darauf weckt den Wagen automatisch auf. Es gibt keine Möglichkeit abzufragen ob sich etwas ändert, ohne damit den Tesla-Internen Schlaftimer zurück zu setzen, womit er dann für 10-15 Minuten nicht mehr schläft.
                  Ist etwas komplexer das ganze als man es zuerst vermuten würde, ansonsten siehst du es evtl. in meinem Code was ich meine.

                  T Offline
                  T Offline
                  tombox
                  wrote on last edited by tombox
                  #8

                  @dbweb Ok teslafi hat dazu ne gute erläuterung

                  https://owner-api.teslamotors.com/api/1/vehicles/:id
                  Kann man scheuen in welchem state sich das Fahrzeug befindet.

                  Wenn sich shift state , speed, charge oder climate sich innerhalb von 30min nicht ändert, dann 15min keine Abfragen machen und schauen ob er in sleep ist.

                  Kann ich noch einbauen

                  dbwebD 1 Reply Last reply
                  0
                  • dbwebD dbweb

                    @tombox nein das reicht eben nicht aus. Du hast zwei Endpoints, einer bei dem du siehst ob der wagen schläft, den kann man immer abfragen, und den zweiten, um alle Daten zu erhalten. Eine Abfrage darauf weckt den Wagen automatisch auf. Es gibt keine Möglichkeit abzufragen ob sich etwas ändert, ohne damit den Tesla-Internen Schlaftimer zurück zu setzen, womit er dann für 10-15 Minuten nicht mehr schläft.
                    Ist etwas komplexer das ganze als man es zuerst vermuten würde, ansonsten siehst du es evtl. in meinem Code was ich meine.

                    dbwebD Offline
                    dbwebD Offline
                    dbweb
                    wrote on last edited by
                    #9

                    Du kannst z.B. hier nachlesen, wie das ein anderer implementiert hat:
                    http://visibletesla.com/Documentation/pages/SleepMode.html

                    Ist auch der Grund, weswegen mich der Adapter einiges an Arbeit gekostet hat

                    1 Reply Last reply
                    0
                    • T tombox

                      @dbweb Ok teslafi hat dazu ne gute erläuterung

                      https://owner-api.teslamotors.com/api/1/vehicles/:id
                      Kann man scheuen in welchem state sich das Fahrzeug befindet.

                      Wenn sich shift state , speed, charge oder climate sich innerhalb von 30min nicht ändert, dann 15min keine Abfragen machen und schauen ob er in sleep ist.

                      Kann ich noch einbauen

                      dbwebD Offline
                      dbwebD Offline
                      dbweb
                      wrote on last edited by dbweb
                      #10

                      @tombox jepp ungefähr so habe ich das eingebaut. Aber auch wenn der User interagiert (z.B. öffnet) setze ich meinen Timer entsprechend zurück.

                      dbwebD 1 Reply Last reply
                      0
                      • dbwebD dbweb

                        @tombox jepp ungefähr so habe ich das eingebaut. Aber auch wenn der User interagiert (z.B. öffnet) setze ich meinen Timer entsprechend zurück.

                        dbwebD Offline
                        dbwebD Offline
                        dbweb
                        wrote on last edited by
                        #11

                        Sieht man hier:
                        https://github.com/dbweb-ch/ioBroker.tesla-motors/blob/8fd1d74f8d818822e1100a998f38e05627550d71/main.js#L114

                        Zusätzlich:
                        Um ein Command abzusetzen, muss der Wagen Wach sein(z.B. heizung ein). D.h. man muss ihn zuerst Wecken, warten bis er wach ist, und dann den Befehl setzen. Der User will das vermutlich nicht jedesmal selbst machen und warten. Ich will morgens einen knopf Drücken und der Wagen heizt auf.

                        Etwas anderes:
                        Hast du das Refresh des Tokens nach <45 Tagen mittels refresh-Token auch eingebaut?

                        Einige Commands habe noch zusätzlich Optionen die man mitschicken muss, z.B. Homelink, oder sie erwarten spezifiscje values, z.B. "vent" für die Fenster.

                        dbwebD 1 Reply Last reply
                        0
                        • dbwebD dbweb

                          Sieht man hier:
                          https://github.com/dbweb-ch/ioBroker.tesla-motors/blob/8fd1d74f8d818822e1100a998f38e05627550d71/main.js#L114

                          Zusätzlich:
                          Um ein Command abzusetzen, muss der Wagen Wach sein(z.B. heizung ein). D.h. man muss ihn zuerst Wecken, warten bis er wach ist, und dann den Befehl setzen. Der User will das vermutlich nicht jedesmal selbst machen und warten. Ich will morgens einen knopf Drücken und der Wagen heizt auf.

                          Etwas anderes:
                          Hast du das Refresh des Tokens nach <45 Tagen mittels refresh-Token auch eingebaut?

                          Einige Commands habe noch zusätzlich Optionen die man mitschicken muss, z.B. Homelink, oder sie erwarten spezifiscje values, z.B. "vent" für die Fenster.

                          dbwebD Offline
                          dbwebD Offline
                          dbweb
                          wrote on last edited by
                          #12

                          Oder /set_temps ist such ein gutes beispiel, das erwartet
                          api/1/vehicles/:id/command/set_temps?driver_temp=:driver_temp&passenger_temp=:passenger_temp

                          D.h. man muss mit mehr details auf die einzelnen Commands eingehen und kann nicht einfach alles als state übernehmen.

                          T 1 Reply Last reply
                          0
                          • dbwebD dbweb

                            Oder /set_temps ist such ein gutes beispiel, das erwartet
                            api/1/vehicles/:id/command/set_temps?driver_temp=:driver_temp&passenger_temp=:passenger_temp

                            D.h. man muss mit mehr details auf die einzelnen Commands eingehen und kann nicht einfach alles als state übernehmen.

                            T Offline
                            T Offline
                            tombox
                            wrote on last edited by tombox
                            #13

                            @dbweb
                            Sleep check ist jetzt auch drin
                            https://github.com/TA2k/ioBroker.tesla-motors/blob/34dc6ba5de214b226e19e27f8b131ca8594b9d35/main.js#L592

                            Es sollten jetzt auch alle remote befehle funktionieren

                            Ich werde dann noch die powerwalls datenpunkten erweitern

                            dbwebD 1 Reply Last reply
                            0
                            • T tombox

                              @dbweb
                              Sleep check ist jetzt auch drin
                              https://github.com/TA2k/ioBroker.tesla-motors/blob/34dc6ba5de214b226e19e27f8b131ca8594b9d35/main.js#L592

                              Es sollten jetzt auch alle remote befehle funktionieren

                              Ich werde dann noch die powerwalls datenpunkten erweitern

                              dbwebD Offline
                              dbwebD Offline
                              dbweb
                              wrote on last edited by
                              #14

                              @tombox sieht ziemlich gut aus.
                              Ein paar Sachen habe ich aufgrund meiner Erfahrung mit Teslaschnittstelle und Teslausern im Code gesehen:

                              • Du lässt Updates maximal alle 60 Sekunden zu. Für jemanden der seinen Weg mit dem Tesla aufzeichnen will, ist das zu wenig oft. Einige User wollten das so niedrig wie möglich. Ich denke Ideal wären hier Einstellungen wie: "Refresh time while moving", "Refresh time stillstand") oder sowas.
                              • Du rufst die Updates mit "interval" auf. Teslas können je nach Empfang manchmal sehr lange brauchen, bis sie antworten, mit Interval riskierst du ein "bubble up" an Events wenn die Abfrage länger dauert als der Interval, was komisches verhalten und hohen Speicherverbrauch zu Folge haben kann. Besser wäre mit setTimeout zu arbeiten.
                              • beim wake_up wartest du statisch 15 Sekunden, das kann manchmal länger dauern, und falls das Auto nicht erreichbar ist, wird es gar nicht klappen. Ich habe auch öfters gesehen, dass das Aufwachen erst nach einigen Versuchen geklappt hat, deswegen habe ich dort etwas mehr "Logik" eingebaut, siehe: https://github.com/dbweb-ch/ioBroker.tesla-motors/blob/8fd1d74f8d818822e1100a998f38e05627550d71/main.js#L643
                              • Ich hab deine Logik vom Refresh-Token nicht ganz verstanden, aber sie scheint mir no nicht ganz korrekt. Du musst das Token refreshen, bevor es abläuft (z.B. nach 30 der 45 Tagen), oder mindestens 1 Tag vor Ablauf. Du solltest das Token aber auch nicht zu häufig refreshen, das mag Tesla nicht und es kann gut sein, dass man damit auf die "blacklist" gesetzt wird.
                              • Du machst statisch 10 Sekunden nach jedem Befehl einen refresh der Daten. Das kann zu früh oder zu spät sein, und kann aber auch gleichzeitig mit dem interval-refresh zusammenfallen. Besser wäre, auf den erfolgreichen Befehl zu warten und dann ein Refresh zu machen.
                              • checkWaitForSleepState() -> du prüft dort auf Veränderung von bestimmten States. Das macht nur teilweise sinn, und wird teilweise fehlschlagen. z.B. ändert sich die battery_range immer mal wieder auch im Stillstand wenn das auto schlafen soll.
                                Eher müsstest du auf die einzelnen States eingehen, so oder ähnlich wie ich das hier gemacht habe: https://github.com/dbweb-ch/ioBroker.tesla-motors/blob/8fd1d74f8d818822e1100a998f38e05627550d71/main.js#L133
                                bei chargeState ist das auf Userwunsch so implementiert, damit das Laden sauber überwacht werden kann, er aber bei nichtladen und anschgeschlossen trotzdem mal schlafen kann.

                              Das wäre was ich jetzt so im Code gesehen habe, noch ohne zu testen.

                              Gute Arbeit soweit!

                              T lobomauL 2 Replies Last reply
                              0
                              • dbwebD dbweb

                                @tombox sieht ziemlich gut aus.
                                Ein paar Sachen habe ich aufgrund meiner Erfahrung mit Teslaschnittstelle und Teslausern im Code gesehen:

                                • Du lässt Updates maximal alle 60 Sekunden zu. Für jemanden der seinen Weg mit dem Tesla aufzeichnen will, ist das zu wenig oft. Einige User wollten das so niedrig wie möglich. Ich denke Ideal wären hier Einstellungen wie: "Refresh time while moving", "Refresh time stillstand") oder sowas.
                                • Du rufst die Updates mit "interval" auf. Teslas können je nach Empfang manchmal sehr lange brauchen, bis sie antworten, mit Interval riskierst du ein "bubble up" an Events wenn die Abfrage länger dauert als der Interval, was komisches verhalten und hohen Speicherverbrauch zu Folge haben kann. Besser wäre mit setTimeout zu arbeiten.
                                • beim wake_up wartest du statisch 15 Sekunden, das kann manchmal länger dauern, und falls das Auto nicht erreichbar ist, wird es gar nicht klappen. Ich habe auch öfters gesehen, dass das Aufwachen erst nach einigen Versuchen geklappt hat, deswegen habe ich dort etwas mehr "Logik" eingebaut, siehe: https://github.com/dbweb-ch/ioBroker.tesla-motors/blob/8fd1d74f8d818822e1100a998f38e05627550d71/main.js#L643
                                • Ich hab deine Logik vom Refresh-Token nicht ganz verstanden, aber sie scheint mir no nicht ganz korrekt. Du musst das Token refreshen, bevor es abläuft (z.B. nach 30 der 45 Tagen), oder mindestens 1 Tag vor Ablauf. Du solltest das Token aber auch nicht zu häufig refreshen, das mag Tesla nicht und es kann gut sein, dass man damit auf die "blacklist" gesetzt wird.
                                • Du machst statisch 10 Sekunden nach jedem Befehl einen refresh der Daten. Das kann zu früh oder zu spät sein, und kann aber auch gleichzeitig mit dem interval-refresh zusammenfallen. Besser wäre, auf den erfolgreichen Befehl zu warten und dann ein Refresh zu machen.
                                • checkWaitForSleepState() -> du prüft dort auf Veränderung von bestimmten States. Das macht nur teilweise sinn, und wird teilweise fehlschlagen. z.B. ändert sich die battery_range immer mal wieder auch im Stillstand wenn das auto schlafen soll.
                                  Eher müsstest du auf die einzelnen States eingehen, so oder ähnlich wie ich das hier gemacht habe: https://github.com/dbweb-ch/ioBroker.tesla-motors/blob/8fd1d74f8d818822e1100a998f38e05627550d71/main.js#L133
                                  bei chargeState ist das auf Userwunsch so implementiert, damit das Laden sauber überwacht werden kann, er aber bei nichtladen und anschgeschlossen trotzdem mal schlafen kann.

                                Das wäre was ich jetzt so im Code gesehen habe, noch ohne zu testen.

                                Gute Arbeit soweit!

                                T Offline
                                T Offline
                                tombox
                                wrote on last edited by
                                #15

                                @dbweb
                                Das Minimum war bei 30sek aber habe es auf 10 Sekunden reduziert. Aber so eine niedrige Anzahl kann leicht zur Sperrung führen. Die zwei Intervalle kann ich machen wenn ich nochmal lust habe.

                                Bei sehr niedrigen Intervallen kann das passieren ja. Aber so ein request bricht ja nach 20 Sekunden eh ab.

                                Ich wecke jetzt bis der status online ist

                                Bisher habe ich immer ein neuen ownerToken geholt wenn der auth Token refresht werden muss. Also alle 8h. Eigenartig das man für AuthToken gesperrt werden kann. Ich hole jetzt ein ownerToken bei 0.75 der expiration time

                                Ich warte jetzt auf die Übermittlung des Befehls aber das heißt nicht das er ausgeführt ist das kann man denke ich nicht feststellen.

                                Ich habe battery_range auf battery_level geändert. Was spricht dagegen dass wenn sich keiner dieser states ändert auf den sleep zu warten. Wenn geladen wird dann muss sich ja innerhalb von 15min der battery_level ändern.

                                dbwebD 1 Reply Last reply
                                0
                                • T tombox

                                  @dbweb
                                  Das Minimum war bei 30sek aber habe es auf 10 Sekunden reduziert. Aber so eine niedrige Anzahl kann leicht zur Sperrung führen. Die zwei Intervalle kann ich machen wenn ich nochmal lust habe.

                                  Bei sehr niedrigen Intervallen kann das passieren ja. Aber so ein request bricht ja nach 20 Sekunden eh ab.

                                  Ich wecke jetzt bis der status online ist

                                  Bisher habe ich immer ein neuen ownerToken geholt wenn der auth Token refresht werden muss. Also alle 8h. Eigenartig das man für AuthToken gesperrt werden kann. Ich hole jetzt ein ownerToken bei 0.75 der expiration time

                                  Ich warte jetzt auf die Übermittlung des Befehls aber das heißt nicht das er ausgeführt ist das kann man denke ich nicht feststellen.

                                  Ich habe battery_range auf battery_level geändert. Was spricht dagegen dass wenn sich keiner dieser states ändert auf den sleep zu warten. Wenn geladen wird dann muss sich ja innerhalb von 15min der battery_level ändern.

                                  dbwebD Offline
                                  dbwebD Offline
                                  dbweb
                                  wrote on last edited by
                                  #16

                                  @tombox
                                  Sperrung wegen zu häufiger Abfrage habe ich bisher noch nicht gesehen. Die TeslaApp von Tesla selbst fragt bei fahrendem Fahrzeug sehr oft ab, man sieht die Bewegung fast "live", also denke ich im Bereich von 1s.
                                  Bisher war das Auth-Token 45 Tage gültig, nicht nur 8h.
                                  Was spricht dagegen dass wenn sich keiner dieser states ändert auf den sleep zu warten.
                                  Umgekehrt, nicht zu schlafen, nur weil sich battery_level ändert wäre schlecht. Die Batterie entlädt sich immer etwas und "bewegt" sich daher ständig. Hab mal nen Pull-Request gemacht.

                                  Ansonsten können wir hier jetzt wohl mal auf Rückmeldung der User warten.

                                  1 Reply Last reply
                                  0
                                  • T Offline
                                    T Offline
                                    tombox
                                    wrote on last edited by
                                    #17

                                    @dbweb Ich denke nicht das die App die daten über Rest pullt, das würde die API nicht aushalten.
                                    Ich denke die App wird die Daten streamen. Das macht auf jeden Fall mehr sinn als die Api zu bombardieren
                                    https://github.com/dirkvm/teslams/blob/9467f7264961ecc1a609af25a68df3b57c9eb521/examples/streamws.js#L245

                                    Auth Token 8h. OwnerToken 45Tage
                                    Habe den PR übernommen. Aber die battery_level schwankt alle 15min?

                                    keksnK dbwebD 2 Replies Last reply
                                    0
                                    • T tombox

                                      @dbweb Ich denke nicht das die App die daten über Rest pullt, das würde die API nicht aushalten.
                                      Ich denke die App wird die Daten streamen. Das macht auf jeden Fall mehr sinn als die Api zu bombardieren
                                      https://github.com/dirkvm/teslams/blob/9467f7264961ecc1a609af25a68df3b57c9eb521/examples/streamws.js#L245

                                      Auth Token 8h. OwnerToken 45Tage
                                      Habe den PR übernommen. Aber die battery_level schwankt alle 15min?

                                      keksnK Offline
                                      keksnK Offline
                                      keksn
                                      wrote on last edited by
                                      #18

                                      @tombox Hallo, danke für den Adapter!! Ich sehe den Adaptern den Instanzen nur wenn ich ihn über den alten Installiere. Wenn ich den alten deinstalliert und dann den neuen installiere sehe ich keine Instanz trotz dessen die Version in der Adapter Übersicht als Installiert angezeigt wird und die Objekte sind auch vorhanden.

                                      T 1 Reply Last reply
                                      0
                                      • keksnK keksn

                                        @tombox Hallo, danke für den Adapter!! Ich sehe den Adaptern den Instanzen nur wenn ich ihn über den alten Installiere. Wenn ich den alten deinstalliert und dann den neuen installiere sehe ich keine Instanz trotz dessen die Version in der Adapter Übersicht als Installiert angezeigt wird und die Objekte sind auch vorhanden.

                                        T Offline
                                        T Offline
                                        tombox
                                        wrote on last edited by
                                        #19

                                        @keksn Du musst dann unter Adapter gehen nach tesla suchen und dann auf + a20b9d8e-7c62-4457-a148-2d59abaf66c8-image.png

                                        um eine Instanz zu erzeugen

                                        keksnK 2 Replies Last reply
                                        0
                                        • T tombox

                                          @keksn Du musst dann unter Adapter gehen nach tesla suchen und dann auf + a20b9d8e-7c62-4457-a148-2d59abaf66c8-image.png

                                          um eine Instanz zu erzeugen

                                          keksnK Offline
                                          keksnK Offline
                                          keksn
                                          wrote on last edited by
                                          #20

                                          oh Gott Anfängerfehler..Danke LG

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          135

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe