NEWS
UNSOLVED Tesla script
-
Moin, würde mich gern anschließen, bin leider noch Recht neu in Sachen Javascript und weiß nicht wie ich damit Werte bekomme um sie zum Beispiel in Datenpunkte zu speichern.
MfG Marco
-
Ich hab mich gerade mal dran gemacht. Einbinden war Problemlos, Login auch, die "General API Calls" klappen auch ohne Probleme, aber die Fahrzeug-spezifischen gehen leider gar nicht...
Würde mich über jede Hilfe freuen.
MfG Marco -
@Marco-Laser
So wie ich es verstehe, wird vehicle.id_s erst in der Callback-Funktion von tjs.vehicle() bereitgestellt. Versuche es mal so:var options = { authToken: result.authToken }; tjs.vehicle(options, function (err, vehicle) { log("Vehicle " + vehicle.vin + " is: " + vehicle.state); options = { authToken: result.authToken, vehicleID: vehicle.id_s }; tjs.chargeState(options, function (err, chargeState) { log("Current charge level: " + chargeState.battery_level + '%'); }); // Ende chargeState }); // Ende vehicle }); // Ende login
-
@paul53 Fehler bleibt leider ...
Hab auch schon verschiedenste Konstellationen versucht, wie ich was aufrufe, nie wird was ausgegeben aus den Funktionen. -
@Marco-Laser Bin auch gerade dabei den Tesla einzubinden und war beim gleichen Fehler.
Es scheint so, als ob der Tesla erst aufgeweckt werden muss, er also nicht automatisch aufwacht wenn dinge abgefragt werden, die auf den Wagen zugreifen müssen.
Finde ich soweit ganz ok, damit hat man das ständige Aufwecken etwas im Griff (Wach zieht er einiges mehr an Strom), wäre nur besser wenn das klar in der Doku stehen würde.Nach dem Aufwecken klappt jedenfalls die Abfrage des Charge state, weiter bin ich noch grad nicht.
-
@Dominic-Blattmann Oh ja so klappt's. Hatte irgendwie erwartet er macht das selber oder zeigt den letzten an den er hatte aber gut, so gehts ja auch.
Nutzen konnte ich jetzt alle Funktionen die irgendwas starten also climateStart() oder chargeMaxRange().
Was auch geht ist :tjs.climateStart(options, function (err){; console.log(err);});
Wenn das Auto am Schlafen ist gibt er 408 zurück dann könnte man es mit tjs.wakeUp(options); aufwecken.
Nur wie ich bei Sachen wie driveState() die Infos bekomme weiß ich noch nicht.
Lass es mich gern wissen wenn du da weiter gekommen bist
Wenn alles klappt könnte man ja ein Script machen wo alles ausgelesen wird und in Dateipunkte geschrieben wird, mit Buttons zum Starten bestimmter Funktionen. Mir mangelt es dazu nur leider etwas an Know How -
Wollte eigentlich direkt einen Adapter machen, bin aber dann doch zurück zum script, muss wohl ioBroker erstmal noch etwas besser kennen lernen, bevor ich eigene adapter bastle. Aber werde das script dann auf jeden fall teilen.
-
Drive State habe ich z.B. so gemacht:
var options = { authToken: getState('javascript.0.tesla.auth.authToken').val, vehicleID: getState('javascript.0.tesla.vehicle.id').val }; tjs.driveState(options, function (err, driveState) { setState('javascript.0.tesla.vehicle.position', driveState.longitude + ';' + driveState.latitude); });
und dann über das Open Street map vis-Widget angezeigt
-
Werde morgen dann wohl doch einen Adapter entwickeln, scheint mir keine grosse Hexerei zu sein. Wenn du willst kannst du da ja dann mithelfen sobald ich das repo angelegt habe, oder zumindest "Betatester" spielen, denke sollte bis morgen abend was haben
Das wichtigste und komplizierteste wird wohl die Aufweckstrategie sein, will ja nicht jede Minute den Tesla aufwecken um die Daten abzufragen, das frisst die Batterie, trotzdem sollen die möglichst aktuell sein. Da muss ich mir noch was schlaues überlegen.
-
@Dominic-Blattmann klar, da bin ich gern dabei.
Hätte gesagt dass die Daten bei Knopfdruck abgerufen werden oder optional via cron. -
Werde das wohl konfigurierbar machen mit 3-4 modi. Der eine will ja ständig möglichst aktuell sein, der andere nur auf Knopfdruck um die Batterie zu schonen.
-
So, hab damit mal angefangen.
Hat aber wirklich noch "Alpha"-Status und stürzt auch gerne mal noch ab
Lese jetzt mal die Datenpunkte für das Vehicle und Charge-State.Git: https://github.com/dbweb-ch/iobroker.tesla-motors
Evtl. komm ich heute Abend noch dazu, das ganze weiter zu machen und zumindest schon mal alles einzulesen, schaltbare Datenpunkte folgen dann morgen. Musste heute leider zwischendurch noch arbeiten...
Das ist jetzt nur mal so vorab, weil ich doch gesagt hatte, ich hätte heute Abend schon was -
@Dominic-Blattmann so ein Mist aber auch diese normale Arbeit alles gut, ich komme eh erst morgen früh zum Testen und melde mich dann
-
Bin doch noch etwas dazu gekommen.
Aktuelle Version ist soweit "funktionsfähig". Nicht schön Implementiert und fehlen noch ein paar wichtige Features, aber grundsätzlich funktioniert das auslesen aller Stadien und das setzen von allen Befehlen.
Aktuell "wecke" ich den Tesla 1x pro Stunde, also nicht wundern wenn sich da fast nie was tut. Und wenn du was ändern willst, musst du ihn im moment erstmal manuell aufwecken (z.B. rasch Tesla app öffnen oder den Datenpunkt "wakeUp" Drücken. Befehle sind alle unter "command".Hoffe du kannst damit schon was anfangen.
-
@dbweb wie ist denn der npm Link? Bei "iobroker.tesla-motors" findet er nix
-
gibt noch kein NPM, müsstest von git her installieren.
-
@dbweb jop läuft soweit nur anmelden tut er sich nicht. Zeigt auch nix im log an, username und pw stimmen. Hab allerdings auch 0.0.1 installiert, deine letzten Änderungen sind auf ner neuen Version?
-
letzte Änderungen sind auch immer noch auf 0.0.1. aktualisiere mal, hab noch bugfixes gemacht. Im Log sollte relativ viel kommen wenn du den Adapter auf debug umstellst.
-
@dbweb also mit dem Update funktioniert es dann auch
, Sehe alle Werte vom Auto. Nur steuern kann ich nichts, sollen dafür auch Datenpunkte erstellt werden oder muss ich dafür noch was machen? -
Die Datenpunkte unter "command" sind dafür da. sind in der version noch nicht sauber initialisiert, wird aber in der nächsten Stunde ne neue Version kommen. Funktionieren sollten sie aber.