NEWS
Test Tesla-Motors v1.0.0
-
@tombox
Das ist gar nicht so einfach zu beantworten.
Ich versuche es mit screenshotsAuf oberster Ebene wähle ich „Energie“
Nun wähle ich oben rechts die Option „Lebenszeit“ (auf englisch evtl. Lifetime) oder „Baujahr“ (englisch evtl. Year)
Auf diesen Seiten kann ich auch Daten exportieren, die dann wie folgt aussehen
data.csv
data2.csv -
@marlan99
du hättest gerne den endpunkt im iobroker?
https://owner-api.teslamotors.com/api/1/energy_sites/ID/calendar_history?kind=energy&start_date=2019-01-01T00%3A00%3A00%2B01%3A00&time_zone=Europe/Berlin&end_date=2021-12-31T23%3A59%3A59%2B01%3A00&period=lifetime"response": { "serial_number": "1xxx", "period": "lifetime", "installation_time_zone": "Europe/Berlin", "time_series": [{ "timestamp": "2020-05-15T13:26:26+01:00", "solar_energy_exported": 5283683.324382266, "generator_energy_exported": 0, "grid_energy_imported": 2176620.6157370373, "grid_services_energy_imported": 0, "grid_services_energy_exported": 755.1615937336784, "grid_energy_exported_from_solar": 1630993.252212416, "grid_energy_exported_from_generator": 0
-
@tombox Hallo, ich habe den Adapter 1.0.6 von Github über den alten 0.5.2 wie beschrieben installiert, allerdings habe ich es bisher nur ein einziges Mal geschafft, eine Verbindung zum Auto herzustellen.
Danach wollte ich eine Einstellung (sentry on/off) ändern, was einen Neustart des Adapters bewirkte. Und seitdem hängt er beim Abfragen der 404er Seite mit dem Login-Code fest, er kommt nicht mehr rein.2021-10-18 22:47:24.229 info Waiting for codeURL please visit instance settings and copy url after login
2021-10-18 22:47:24.156 info starting. Version 1.0.6 in /opt/iobroker/node_modules/iobroker.tesla-motors, node: v14.17.6, js-controller: 3.3.18
2021-10-18 22:47:23.527 debug Plugin sentry Initialize Plugin (enabled=true)
2021-10-18 22:47:23.167 debug statesDB connected
2021-10-18 22:47:23.165 debug States connected to redis: 127.0.0.1:9000
2021-10-18 22:47:23.153 debug States create User PubSub Client
2021-10-18 22:47:23.151 debug States create System PubSub Client
2021-10-18 22:47:23.140 debug Redis States: Use Redis connection: 127.0.0.1:9000
2021-10-18 22:47:23.137 debug objectDB connected
2021-10-18 22:47:23.127 debug Objects connected to redis: 127.0.0.1:9001
2021-10-18 22:47:23.109 debug Objects client initialize lua scripts
2021-10-18 22:47:23.108 debug Objects create User PubSub Client
2021-10-18 22:47:23.106 debug Objects create System PubSub Client
2021-10-18 22:47:23.095 debug Objects client ready ... initialize now
2021-10-18 22:47:23.039 debug Redis Objects: Use Redis connection: 127.0.0.1:9001
2021-10-18 22:47:21.451 info instance system.adapter.tesla-motors.0 started with pid 19030
2021-10-18 22:47:18.564 info instance system.adapter.tesla-motors.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
2021-10-18 22:47:18.371 info stopInstance system.adapter.tesla-motors.0 send kill signal
2021-10-18 22:47:18.367 info Got terminate signal TERMINATE_YOURSELF
2021-10-18 22:47:18.360 info stopInstance system.adapter.tesla-motors.0 (force=false, process=true)
2021-10-18 22:47:18.331 error Please relogin in the settings and copy a new codeURL
2021-10-18 22:47:18.330 error {"error":"invalid_grant","error_description":"Internal server error","error_uri":"https://auth.tesla.com/error/reference/814aa89f-94e0-4412-b612-5328e1f0703e-1634590038226"}
2021-10-18 22:47:18.330 error Error: Request failed with status code 403Die URL in der Antwort vom Server bei Tesla liefert aber auch nur einen 404er.
Stelle ich den debug Level auf Debug oder "Alles", kommt zusätzlich noch:info: tesla-motors.0 (20551) starting. Version 1.0.6 in /opt/iobroker/node_modules/iobroker.tesla-motors, node: v14.17.6, js-controller: 3.3.18
silly: tesla-motors.0 (20551) States system redis pmessage system.adapter.tesla-motors.0.logLevel/system.adapter.tesla-motors.0.logLevel:{"val":"silly","ack":true,"ts":1634590324378,"q":0,"from":"system.adapter.tesla-motors.0","lc":1634590304143}
error: tesla-motors.0 (20551) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().
error: tesla-motors.0 (20551) unhandled promise rejection: Cannot read property 'split' of undefined
error: tesla-motors.0 (20551) TypeError: Cannot read property 'split' of undefined
opt/iobroker/node_modules/iobroker.tesla-motors/main.js:116:96)
(/opt/iobroker/node_modules/iobroker.tesla-motors/main.js:95:24)
error: tesla-motors.0 (20551) Cannot read property 'split' of undefined
silly: tesla-motors.0 (20551) States user redis pmessage tesla-motors.0./tesla-motors.0.info.connection:{"val":false,"ack":true,"ts":1634590324430,"q":0,"from":"system.adapter.tesla-motors.0","user":"system.user.admin","lc":1634589859512}
info: tesla-motors.0 (20551) Save login session
debug: tesla-motors.0 (20551) Session saved
silly: tesla-motors.0 (20551) States user redis pmessage tesla-motors.0./tesla-motors.0.info.connection:{"val":false,"ack":true,"ts":1634590324517,"q":0,"from":"system.adapter.tesla-motors.0","user":"system.user.admin","lc":1634589859512}
info: host.raspberrypi stopInstance system.adapter.tesla-motors.0 (force=false, process=true)
info: tesla-motors.0 (20551) terminating
debug: tesla-motors.0 (20551) Plugin sentry destroyed
warn: tesla-motors.0 (20551) Terminated (UNCAUGHT_EXCEPTION): Without reason
info: host.raspberrypi stopInstance system.adapter.tesla-motors.0 send kill signal
silly: tesla-motors.0 (20551) States system redis pmessage system.adapter.tesla-motors.0.sigKill/system.adapter.tesla-motors.0.sigKill:{"val":-1,"ack":false,"ts":1634590324556,"q":0,"from":"system.host.raspberrypi","lc":1634590324556}
info: tesla-motors.0 (20551) Got terminate signal TERMINATE_YOURSELF
error: host.raspberrypi Caught by controller[0]: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:
error: host.raspberrypi Caught by controller[1]: TypeError: Cannot read property 'split' of undefined
error: host.raspberrypi Caught by controller[1]: at Teslamotors.login (/opt/iobroker/node_modules/iobroker.tesla-motors/main.js:116:96)
error: host.raspberrypi Caught by controller[1]: at Teslamotors.onReady (/opt/iobroker/node_modules/iobroker.tesla-motors/main.js:95:24)
info: host.raspberrypi instance system.adapter.tesla-motors.0 terminated with code 6 (UNCAUGHT_EXCEPTION)
info: host.raspberrypi "system.adapter.tesla-motors.0" disabledAuch habe ich schon gesehen, dass er sich nur über eine "falsche" PID beschwert:
Manchmal funktioniert der Login wie beschrieben mit der Token-URL auch, aber bislang nur sporadisch.
Irgendeine Idee, an was das liegen könnte?
Danke
-
@jens77 die url die du eingegeben hast ist nicht die korrekte url mit format:
https://auth.tesla.com/void/callback?code=
Nach dem Login muss ja auch ein 404 kommen steht ja in der Anleitung -
@tombox ich denke das sieht ganz plausibel aus und könnte genau das sein was ich gesucht habe.
Falls ich irgendetwas testen kann, dann stehe ich dazu gerne zur Verfügung. -
@tombox Ist die frage years oder lifetime und wo ist der unterschied zu energy_history
-
@tombox Doch, schon - nur habe ich die URL natürlich nicht mitgeschickt, dann könntet ihr mir ja das Auto klauen.
Inzwischen funktioniert es interessanterweise, leider nicht immer, ich musste acht mal eine neue 404er URL generieren und zum Schluss minutenlang Google Captchas beim Loginprozess bei Tesla lösen, damit ich neue bekomme.
Allerdings - zum nächsten Thema - der Adapter speichert meine Daten nicht in der Influx-DB. Er bekommt mit, dass das Auto aufgewacht ist und fragt ab, und es sieht so aus, als würde der influx-Adapter Daten empfangen - aber dann kommen lauter Meldungen wie diese:
2021-10-19 14:41:47.380 debug Datatype tesla-motors.0.info.connection: Currently: boolean, StorageType: false
2021-10-19 14:41:47.380 debug Datatype tesla-motors.0.info.connection: Currently: boolean, StorageType: false
2021-10-19 14:41:47.379 debug Min-Delta ignored because no number tesla-motors.0.info.connection, last-value=false, new-value=true, ts=1634647307378
2021-10-19 14:41:45.016 debug value not changed tesla-motors.0.info.connection, last-value=false, new-value=false, ts=1634647305014
2021-10-19 14:41:44.103 debug Object tesla-motors.0.info.connection unchanged. Ignore
2021-10-19 14:41:39.120 debug Datatype tesla-motors.0.info.connection: Currently: boolean, StorageType: false
2021-10-19 14:41:39.120 debug Min-Delta ignored because no number tesla-motors.0.info.connection, last-value=true, new-value=false, ts=1634647299117Wenn sich gegenüber dem alten Adapter die Datentypen geändert haben (ist das so?), kann es sein dass der Adapter nicht speichert, weil Influx das verweigert - und wenn ja, wie bekomme ich die Daten dann zusammengefügt? Ich würde echt ungerne 2 Jahre gesammelte Batteriegesundheit und Ladehistorie wegwerfen....
-
@jens77 Die Datenpunkte haben sich geändert, Du musst das Aufzeichnen neu einstellen, zumindest bei mir war es so...
-
@tombox da würde ich auf lifetime tendieren, damit die Werte nicht neu beginnen wenn das Kalenderjahr ändert.
Unterschied von energy_history zu was?
Aktuell habe ich pro Tag zwei neue Ordnerstrukturen (0:00 Uhr und 01:00 Uhr) mit immer neu generierten Datenobjekte. Diese kann ich aktuell nicht weiternutzen, da ein solches Datenobjekt einmal pro Tag generiert wird und sich danach ja nicht mehr ändert. -
@marlan99 ich habe die lifetime sachen mal in die github version hinzugefügt
-
@dbweb sagte in Test Tesla-Motors v1.0.0:
@joergh du brauchst vermutlich die FW Version 2021.36 damit das geht, die sollte bald kommen.
Heute ist ein schöner Tag! Nach zwei 2,5 Jahren Wartezeit hat es Tesla nun endlich geschafft! Ich kann nun endlich den Ladestrom über die API steuern.
-
@joergh Geht es denn auch über den Adapter?
-
@tombox sagte in Test Tesla-Motors v1.0.0:
@joergh Geht es denn auch über den Adapter?
Ja, klar. Das meinte ich doch!
-
Hallo,
nach ein paar Tagen mit dem neuen Adapter, der grundsätzlich schon mal echt gut funktioniert (Danke!!), habe ich aber doch ein paar Fragen. Ich verwende die Github-Version.-
Wenn der Adapter wartet, dass das Auto wieder einschläft, schreibt er minütlich dies hier ins logfile:
Since 30 min no changes receiving. Start waiting for sleep
Sollte die Zeitangabe nicht hochzählen? Oder ist das ein Missverständnis?
Und sind die 30 min ein Zielwert? Denn bei mir gibt er nach schon ca. 15min auf. -
Wenn der Stream aktiv ist, bekomme ich am laufenden Band (mehrfach pro Sekunde) dies im Log:
State value to set for "tesla-motors.0.26836580192451295.streamData.speed" has to be type "string" but received type "number"
Warum sollte "speed" ein String sein und keine Zahl? Ist das ein Bug oder ein Datentypproblem auf meiner Seite (iobroker oder influx)?
-
Der Stream kann offenbar noch nicht richtig beendet werden, wenn das Auto am Ziel angekommen ist und alle ausgestiegen sind, dann kommt sowas:
26836580192451295: online https://owner-api.teslamotors.com/api/1/vehicles/26836580192451295/vehicle_data WS open WS received:{"msg_type":"control:hello","connection_timeout":0}
Gleichzeitig funkitoniert die normale Abfrage aber noch:
{"response":{"id":xxx,"user_id":yyy,"vehicle_id":1111,"vin":"asdfgadfasdfasd","display_name":"xxx","option_codes":".......
Die WS Verbindungsversuche mit "connection_timeout" gehen dann 10 Minuten weiter, bis er auf das normale "Waiting for sleep" zurückfällt (ist das Absicht?) und das aber auch nicht erfolgreich ist, nach 15 minuten versucht er wieder WS.
Ich habe den Eindruck, der Stream hält das Auto wach. Kann das sein?
Herzlichen Dank für Eure Arbeit!
-
-
@tombox Guten Morgen,
habe mir deinen Adapter geladen, vielen Dank.
Zugangsdaten eingegeben (mit denen ich im Tesla-Konto einlogge), dann drück ich auf Token holen und erscheint eine Fehlermeldung.
Ist das abhängig vom Auto (wir haben es noch nicht, auch noch keine VIN) ? -
@jens77 Die Meldung meint er hat sein 30 Minute keine Änderung gesehen, er wird jetzt 15min keine Anfrage senden und schauen ob das Fahrzeug dann eingeschlafen ist.
Das Problem ist das speed vielleicht manchmal als "" gesendet wird anstatt 0 müsste man mal genau schauen was er da reinschreibt und den Typ auf mixed setzen
connection_timeout habe ich nur gesehen wenn er wirklich keine Verbindung zum Fahrzeug hatte
Ich vermute vielleicht das die normalen Abfragen dann vielleicht gecached sind. Eigentlich sollte die socket verbindung das schlafen nicht beeinflussen. -
@humidor Ist noch die alte Version installiere mal wie in Beitrag #1
-
@tombox Danke dir. Habe es über github installiert und sehe einige Werte.
Ich versuche noch herauszufinden welche den Zahlen entsprechen die ich aktuell direkt aus dem Gateway auslese.übrigens hatte mein Raspberry die letzten 5 Tage zweimal rebooted und da musste ich beides Mal die URL erneut eingeben, damit die Instanz sich mit Tesla korrekt verbindet.
-
@marlan99 War der reboot kontrolliert? Kannst du mal ein manuellen neustart der Instanz machen und schauen ob nach URL eingabe und manueller neustart dann besser ist
-
@tombox sagte in Test Tesla-Motors v1.0.0:
@humidor Ist noch die alte Version installiere mal wie in Beitrag #1
danke dir, hab nun die aktuelle Version drin mit der 404 page
sehe nun einen kleinen Objektbaum (wird das dann mit dem Auto mehr?)