Modul für Tesla Model S / 3 / X

Begonnen von swhome, 17 Juli 2017, 12:53:25

Vorheriges Thema - Nächstes Thema

Elektrolurch

Danke!!!!!


httpversion => "1.1",


habe ich jetzt in der sub TeslaConnection_Request bei den Parametern für den Web-Aufruf ergänzt und es funktioniert wieder!
Woher hast Du die Info? Im Web habe ich dazu nichts gefunden....

Danke, nochmmals.

Elektrolurch
configDB und Windows befreite Zone!

Jaykoert

Ich habe mit Dumper (habe ich irgendwo gesehen für Debugausgaben) verwendet und mir alle möglichen Objekte ausgegeben. Dann stand das irgendwo im Log.

Schöner wäre es natürlich, wenn der HTTP-Code im Fal eines Fehlers generell irgendwo protokolliert werden würde.

abc2006

Was haltet ihr davon, in Zeile 71 von TeslaConnection noch zu prüfen, ob der Accesstoken bereits gesetzt wurde, und wenn nicht, einen Fehler herauszugeben?
Das Modul meldet nämlich auch ohne den Token "connected", allerdings kann TeslaCar dann keine Verbindung herstellen.

btw: nachdem ich eingeloggt bin, ist der State weiterhin auf "login necessary", obwohl er das meiner Meinung nach nicht sein sollte (Zeile 73, $hash->{STATE} = "Connected";)

lg, stephan

edit: Es geht aber wieder, vielen Dank an Jaykoert ;)
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

mahil

Vielen Dank Jaykoert für die Korrekturen. Bei mir funktioniert das Modul jetzt auch wieder.
Raspberry Pi4; CUL_MAX: MAX! Heizkörperthermostat basic; Zigbee über Deconz ConBee II: Xiaomi (Thermostate, Fenstersensoren, Bewegungsmelder), Ikea (Bewegungsmelder, Repeater, Leuchtkörper); Shelly: Dimmer, Schalter; Tasmota: Steckdosen, Rollladenschalter

TechnoTron

Danke Jaykoert !
Jetzt funktioniert die PV Regelung wieder  ;D
Das Käseparadoxon.

Käse hat Löcher.
Je mehr Käse desto mehr Löcher.
Je mehr Löcher desto weniger Käse.

mahil

#335
Hallo,

habe in der Version:
Zitat von: Jaykoert am 05 Februar 2022, 12:10:08
Danke mahil für deine Hinweise.

Ich habe jetzt soweit alles umgestellt und nun funktioniert bei mir das Modul wieder. Einfach herunterladen und im FHEM-Verzeichnis ersetzen.

eine Ergänzung eingebaut, mit der man die maximale Ampere Zahl des Ladevorgangs setzen kann.


/opt/fhem/FHEM# diff -u 49_TeslaCar_ori.pm 49_TeslaCar.pm
--- 49_TeslaCar_ori.pm  2022-02-07 14:47:28.767476300 +0100
+++ 49_TeslaCar.pm      2022-02-07 14:24:18.992204681 +0100
@@ -67,7 +67,7 @@
         $availableCmds = "not logged in";
     }
     else {
-        $availableCmds = "init requestSettings wakeUpCar charge_limit_soc startCharging stopCharging flashLights honkHorn temperature unlock lock openChargePort startHvacSystem stopHvacSystem startDefrost openTrunk openFrunk";
+        $availableCmds = "init requestSettings wakeUpCar charge_limit_soc startCharging stopCharging charge_amps flashLights honkHorn temperature unlock lock openChargePort startHvacSystem stopHvacSystem startDefrost openTrunk openFrunk";
     }

     return "no set value specified" if (int(@a) < 2);
@@ -98,6 +98,14 @@
         my $URL = "/api/1/vehicles/$carId/command/charge_stop";
         $rc = TeslaConnection_postrequest($hash, $URL);
     }
+    if ($command eq "charge_amps") {
+        my $min = 5;
+        my $max = ReadingsVal($hash->{NAME}, "charge_current_request_max", 16);
+        return "Need the new temperature as numeric argument between $min-$max"
+            if (int(@a) < 1 || $a[0] < $min || $a[0] > $max);
+        my $URL = "/api/1/vehicles/$carId/command/set_charging_amps";
+        $rc = TeslaConnection_postdatarequest($hash, $URL, "{\"charging_amps\": $a[0]}");
+    }
     if ($command eq "startHvacSystem") {
         my $URL = "/api/1/vehicles/$carId/command/auto_conditioning_start";
         $rc = TeslaConnection_postrequest($hash, $URL);
@@ -149,7 +157,7 @@
     }
     ## Request Car settings
     if ($command eq "requestSettings") {
-        TeslaCar_UpdateStatus($hash, 1);
+        TeslaCar_UpdateStatus($hash);
     }
     return $rc;
}
@@ -542,7 +550,10 @@
       If the car is in state 'online' and a charger is attached, it will start charging
     </li>
     <li>stopCharging<br>
-      If the car is in state 'online' a charging, it will stop charging
+      If the car is in state 'online' and charging, it will stop charging
+    </li>
+    <li>charge_amps<br>
+      If the car is in state 'online' and charging, set the charging amper limit
     </li>
     <li>startHvacSystem<br>
       If the car is in state 'online', it will start the air conditioning system


Dabei habe ich eine neues Kommando "charge_amps" eingebaut, einen Schreibfehler in der Doku und einen Fehler im Aufruf der Funktion TeslaCar_UpdateStatus ausgebaut.

Für Leute mit PV Anlage bietet sich damit eine verbesserte Steuerung des Überschussladens. Im Anhang findet ihr die angepasste Datei.
Raspberry Pi4; CUL_MAX: MAX! Heizkörperthermostat basic; Zigbee über Deconz ConBee II: Xiaomi (Thermostate, Fenstersensoren, Bewegungsmelder), Ikea (Bewegungsmelder, Repeater, Leuchtkörper); Shelly: Dimmer, Schalter; Tasmota: Steckdosen, Rollladenschalter

TimoD

Hallo zusammen,

und ich habe es dahingegen wieder ergänzt, das Request_Settings wieder immer funktioniert. (Ich starte das Logging direkt nach Fahrtbeginn über ein notify von Spotify)

@Elektrolurch, wie weit bist du denn mit dem AutoReNew des Tokens?


abc2006

#337
Mir ist gerade bei einem Shutdown Restart folgende Fehlermeldung ins auge gesprungen:

2022.03.01 11:50:14.184 1: PERL WARNING: Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.30), passed through in regex; marked by <-- HERE in m/^{ <-- HERE .*}$/ at ./FHEM/49_TeslaConnection.pm line 194, <$fh> line 6608.

sowie:


2022.03.01 11:50:14.187 1: PERL WARNING: Use of uninitialized value in hash element at ./FHEM/49_TeslaConnection.pm line 46, <$fh> line 6608.
2022.03.01 11:50:14.187 1: stacktrace:
2022.03.01 11:50:14.187 1:     main::__ANON__                      called by ./FHEM/49_TeslaConnection.pm (46)
2022.03.01 11:50:14.187 1:     main::TeslaConnection_Initialize    called by fhem.pl (2725)
2022.03.01 11:50:14.187 1:     (eval)                              called by fhem.pl (2708)
2022.03.01 11:50:14.187 1:     main::CommandReload                 called by fhem.pl (2038)
2022.03.01 11:50:14.187 1:     main::LoadModule                    called by fhem.pl (2103)
2022.03.01 11:50:14.187 1:     main::CommandDefine                 called by fhem.pl (1265)
2022.03.01 11:50:14.187 1:     main::AnalyzeCommand                called by fhem.pl (1116)
2022.03.01 11:50:14.187 1:     main::AnalyzeCommandChain           called by fhem.pl (1403)
2022.03.01 11:50:14.187 1:     main::CommandInclude                called by fhem.pl (618)
2022.03.01 11:50:14.187 1: PERL WARNING: Use of uninitialized value in hash element at ./FHEM/49_TeslaConnection.pm line 46, <$fh> line 6608.
2022.03.01 11:50:14.187 1: stacktrace:
2022.03.01 11:50:14.187 1:     main::__ANON__                      called by ./FHEM/49_TeslaConnection.pm (46)
2022.03.01 11:50:14.187 1:     main::TeslaConnection_Initialize    called by fhem.pl (2725)
2022.03.01 11:50:14.187 1:     (eval)                              called by fhem.pl (2708)
2022.03.01 11:50:14.187 1:     main::CommandReload                 called by fhem.pl (2038)
2022.03.01 11:50:14.187 1:     main::LoadModule                    called by fhem.pl (2103)
2022.03.01 11:50:14.187 1:     main::CommandDefine                 called by fhem.pl (1265)
2022.03.01 11:50:14.187 1:     main::AnalyzeCommand                called by fhem.pl (1116)
2022.03.01 11:50:14.187 1:     main::AnalyzeCommandChain           called by fhem.pl (1403)
2022.03.01 11:50:14.187 1:     main::CommandInclude                called by fhem.pl (618)



Kann gerade leider nciht genauer suchen, habe anderweitig stress. Vielleicht kann jemand was damit anfangen ;)

lg,
stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

AriGato

Mit dem Thema Auth for Tesla auf macOS oder iOS gibts noch nix neues zum Token-Login?


joker4791

Also bei einem 'reload 49_TeslaCar.pm' aus den letzten angehängten Dateien meckert FHEM bei mir rum:
Not enough arguments for main::TeslaCar_UpdateStatus at ./FHEM/49_TeslaCar.pm line 188, near "$hash)"
Not enough arguments for main::TeslaCar_UpdateStatus at ./FHEM/49_TeslaCar.pm line 253, near "$hash)"


Ratschläge?

Jaykoert

Hallo zusammen,

ich habe gerade mal versucht so ein paar Fehler zu finden/fixen. Leider stehe ich weiterhin mit dem Modul auf Kriegsfuß und habe den halben Abend damit verbracht meine eigene Installation wieder zum Laufen zu bekommen. Ich bin mir nicht sicher wo die Probleme genau liegen, ob in der TeslaConnection oder im TeslaCar Modul. Ich hatte auch wieder mehrfach das Problem, dass die carId nicht gesetzt war.

@abc2006:
Hast du denn das Attribut AccessToken gesetzt? Ich habe bei mir Zeile 46 in der TeslaConnection mal rausgeschmissen, vielleicht hilft das.
Ansonsten habe ich auch versucht die Perl-Warnung zu entfernen, wenn ich in Zeile 194:
if( $err ) {
durch
if(defined $err) {
ersetze geht überhaupt nichts mehr. Erst dachte ich, dass if ( $err ) ähnlich JavaScript prüft, ob es truthy ist, aber ein Leerstring wäre ebenfalls false. Also habe ich das erstmal wieder gelassen.

@AriGato: Ich denke nicht, dass sich da was tut.

@TimoD: Ich habe gesehen, dass du eine neue NUpdate eingefügt hast. Kannst du kurz den Hintergrund erklären? Brauchen wir da wirklich zwei Funktionen? Muss das pollingEnable dann nicht auch in die $hash->{AttrList} mit rein? Irgendwie müsste man die 27-fache Verschachtelungstiefe mal refactoren. Schön ist das nicht. Da bei mir die Verbindung zum Auto dabei auch immer wieder kaputt geht, scheue ich meine Zeit dadrauf zu verwenden.

Gruß
Jaykoert

Dracolein

#341
Hallo zusammen,

sehe ich es anhand der letzten Seiten dieses Thread richtig, dass das Modul derzeit nicht funktioniert?
Ich hatte das Modul "TeslaConnection" erfolgreich auf "Connected" stehen, hatte auch meinen AccesToken & Login eingetragen, konnte aber mittels "set MeinTeslaModul scanCars" gar nichts erreichen.
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

Jaykoert

Zitat von: Dracolein am 06 März 2022, 10:43:24
sehe ich es anhand der letzten Seiten dieses Thread richtig, dass das Modul derzeit nicht funktioniert?

Also bei mir funktioniert es, auch wenn es etwas zickig ist.

Stelle bei dir mal verbose auf 5 ein und schau was sich so im Log befindet.

Dracolein

#343
ich frage mich, ob es an meinem Token liegt, den ich mit der iOS App "Auth for Tesla" genertiert habe. Der beginnt mit "eu...."


edit:
nochmal alle Devices gelöscht und neu begonnen.... beim 1. scanCars = FHEM Absturz wie hier beschrieben. Beim 2. scanCars wurde das Fahrzeug gefunden. Also erstmal bin ich einen Schritt weiter.

edit2:
TeslaCar-Device wurde angelegt, state=online", attr dataRequest=data, aber Readings fehlen bisher...
Raspberry Pi 4 mit FHEM; FTUI Dashboard auf Asus 15,6" VT168H Touchscreen; ZigBee mit ConBee2 USB-Stick; div. Shelly 2.5; integr. Gaszähler mit ESP8266 & ESPEasy;

Jaykoert

Ich habe auch "Auth for Tesla" drauf, hatte aber auch das Gefühl, dass es nicht funktioniert. Mit "Tesla Token" geht es bei mir. Das Token ist bei Tesla Token auch irgendwie kürzer als bei Auth for Tesla. Mit eu anfangen ist richtig.