[Modul] Tesla

über welche Hardware wird der Tesla ausgelesen ?

Oder greift Symcon direkt auf das Tesla-Netzwerk zu ?

Gruß
Bernd

Halllo Peter,

erstmal Vielen Dank für das Script. Angepasst hat mich dass richtig voran gebracht. Welchen Intervall hast du bei den Instanzen eingetragen. Weiterhin stehe ich noch auf den Schlauch ob das Script den Aktualisierungintervall bestimmt, der der Wert in der Instanz. Eventuell kannst du hier mal etwas zu schreiben.

Gruß
Marco

Hallo,
@Bernd: für das Modul ist keine zusätzliche Hardware erforderlich, nur Zugangsdaten zu deinem Tesla-Account)

@Marco: schön, dass ich helfen konnte (das Script musste sowieso noch etwas angepasst werden, aber das Prinzip ist ja wichtig.)
In den Modulen habe ich die Timer auf 10.800 stehen. Dann versucht das Modul die Instanz zu aktualisieren. Für Scripte musst du eigene Timer oder Events definieren.

Gruß, Peter

Moin,

also Idee zum aktualisieren, aber so, dass das Auto auch einschlafen kann.

Dazu habe ich noch eine Automatisierung im iPhone
Beim Verbinden mit Tesla starte das abfrage skript.
Funktioniert bis Dato absolut super, und jede Fahrt ist geloggt.


//Dieses Skript fragt nur Variablen ab, die bei Inbetrieb vom Fahrzeug aktiv sind. 
//Sobald die Punkt abgeschaltet sind (Wächter, Türen) fragt er nicht mehr ab!

$AktuelleZeit = time();
$WarteZeit = 10;  //ist in Sekunden!

$ID_Abfrageprotokoll = 43196;
$VAR_WallboxLeistung = GetValue (43057);
$VAR_Waechter = GetValue(29425);
$VAR_Geschwindigkeit = GetValue (25516);
$ZeitstempelGeschwindigkeit = IPS_GetVariable(25516)['VariableChanged'];
$VAR_Verschlossen = GetValue (25507);
$VAR_Klima_Aktiv = GetValue (42655);
$ID_Zuhause = 26453;
$ID_12systems = 25306;
$ID_FetchdataSkript = 49460;

//Ort 

$VAR_Breit_Aktuell = GetValue(30416);
$VAR_Lange_Aktuell = GetValue(41337);
$VAR_Breit_Zuhause = '55.974';
$VAR_Lang_Zuhause= '12.177';
$VAR_Breit_12systems = '53.095';
$VAR_Lang_12systems = '8.771';


//Variable Chanced mit einbauen  ?? damit er nicht zu öft fragt?

echo "VAR_WallboxLeistung		    : ".$VAR_WallboxLeistung ."
";
echo "VAR_Waechter		            : ".$VAR_Waechter ."
";
echo "VAR_Geschwindigkeit		    : ".$VAR_Geschwindigkeit ."
";
echo "VAR_Verschlossen		        : ".$VAR_Verschlossen ."
";
echo "VAR_WallboxLeistung		    : ".$VAR_WallboxLeistung ."
";
echo "VAR_Klima_Aktiv		        : ".$VAR_Klima_Aktiv ."
";

//abfrage
if
        (
        ($VAR_WallboxLeistung > 50) or
        ($VAR_Waechter == true) or
        ($VAR_Geschwindigkeit !== "") or  
        ($VAR_Verschlossen == false) or
        ($VAR_Klima_Aktiv == true)
        )

        {
            echo "
";
            echo "Abfrage startet!"."
";
            echo "
";
            //Abfage ausgeführt loggen
            $VAR_Abfrageprotokoll = GetValue ($ID_Abfrageprotokoll);
            SetValue ($ID_Abfrageprotokoll, ($VAR_Abfrageprotokoll + "1"));
            
            IPS_RunScript ($ID_FetchdataSkript);

            $AutoOnline = "true";
            //echo "Auto ist Online!"."
";

        }

else    {
            $AutoOnline = "false";
            //echo "Auto ist Offline!"."
";
        }


Hallo Peter,

leider musste ich nun doch noch ein größeres Problem in der Anpassung feststellen. Ich beschreibe das mal als Aufzählung:

  • Fahrzeug geht online (aufgweckt über IPS)
  • Ereignis wechselt von pollen auf wach
  • Es erfolgt keine Aktualisierung der Variablen
  • Sobald ich TeslaVehicleCharging von Hand aktualisiere, werden die Daten gemäß Ereignis alle 5 Minuten aktualisiert.
  • Wenn der Ladevorgang abgeschlossen ist finden keine Aktualisierung mehr statt.
    Der Fehler müsste aus meiner Sicht im Bereich „wer hat das Programm gestartet“ entstehen, da auch bei manuellen Veränderungen von Variablen nichts passiert.
    Leider kann ich mit meinen noch wenigen Script Erfahrungen keine Ursache erkennen und würde mich über einen Lösungsansatz freuen.
    Hier mein Script:
    script.txt (6.92 KB)

Gruß
Marco

Update: Die Aktualisierung nach dem Ladevorgang scheint zu klappen. Hier war ich wohl zu ungeduldig

Hallo Marco,
ich weiss gerade nicht so genau wo das Problem ist.
Aber ersetzte doch mal folgende Zeile (vor „Verarbeitung“)
//$meldung = "gestartet durch ".$var;
durch
echo "gestartet durch ".$var;
dann siehst du wer das Programm gestartet hat.

Gruß, Peter

Hallo Peter,

nach einigen Tagen nun ein Feedback. Das Script passt und stört den Tesla nicht beim schlafen. Vielmehr muss man beim testen einfach nur Geduld haben. In meinem Fall hat das Fahrzeug nach Updates gesucht und dieses dann herunter geladen. Nach dem Update hat die API Schnittstelle einmal die Verbindung verloren sich aber nach einigen Stunden wieder gefangen.

Viele Grüße
Marco

Hello!
bei meinem Testaufbau für mein neues IPS habe ich erstmals das Tesla beta Modul (für mein M3 LR) installiert. Daten wurden angezeigt, bisher habe ich rein „lesend“ mir die Sache angesehen, aber leider läßt das laufende Modul (mit eingegebenen gültigen Connect Daten) das M3 nicht mehr schlafen. Erst das Löschen des Passworts hat dann zum Einschlafen geführt.
LG Alexander

Hallo Alexander,
stelle die Timer in den Instanzen auf 10800, das sollte helfen.

Gruß, Peter

Hallo!

Danke - das scheint soweit zu klappen. Dann gibt es noch was…
Ich rufe die Daten mit Fetch im Script 52432 ab.

Tesla Call.jpg

Dann kommt die Meldung - also aus der TeslaVehicleControl

Fatal error: Uncaught Exception: Instance does not implement this function in C:\ProgramData\Symcon\scripts__generated.inc.php:1726
Stack trace:
#0 C:\ProgramData\Symcon\scripts\52432.ips.php(6): Tesla_FetchData(59093)
#1 {main}
thrown in C:\ProgramData\Symcon\scripts__generated.inc.php on line 1726

Ist das zu lösen oder ein Modulproblem?

LG Alexander

Hallo Alexander,
für TeslaVehicleControl gibt es kein FetchData weil mit diesem Modul analog der TeslaApp eingaben fürs Fahrzeug gemacht werden.
Du kannst die Instanz in dein Webfront verlinken und dann Eingaben machen.

Gruß, Peter

Hallo Peter!

Danke - klar. Beim Neuaufbau noch kein Webfront angesehen.Das sind viel Dinge drinnen - Respekt!
Einiges muss man sicherlich ausblenden, insb Dinge die ein M3 nicht hat (zB. Schiebedach)
Das wird noch schöne Experimente geben. Danke noch für das Modul - kein Vergleich zu meinen Versuchen mit VW Carnet früher!

Ein kleineres Thema ist mir noch aufgefallen:
Es zeigt sich in „Kilometerzähler“ ein km Stand, der nicht dem des M3 entspricht. Sprich deutlich weniger.

LG
Alexander

Hallo Alexander,

Danke noch für das Modul

ich bin nicht der Modul-Entwickler, der Dank geht an KaiS!

Die Kilometeranzeige sind Meilen, musst du z.Zt. noch selber umrechnen (Faktor 1.60934)

Viel Spass beim Testen.

LG, Peter

@KaiS Servus Kai,
Tesla hat in den letzten Tagen die Anmeldeprozedur geändert (MFA) … läuft die Erstellung des Ersatztoken in deinem Modul auch ohne MehrFaktorAutentifizierung?

Danke

Ich habe keine Ahnung, ich habe keinen Tesla.
Das müsste jemand mal testen.

Grüße,
Kai

Servus Kai,
Eine Erneuerung des Token klappt nur noch, wenn man einmal einen Token mit der MFA erzeugt hat. (habe ich bei einer anderen Tesla-APP gelesen)
Ich bekomme meinen neuen Tesla leider erst in drei Wochen, kann daher auch nichts testen😕

Schade, das Modul war eine coole Sache👍

VG
Joe

Hallo Joe,
leider verstehe ich das Problem nicht (hab mich mit dem Token noch nie so richtig beschäftigt) aber bei mir läuft das Modul.
VG, Peter

Servus Peter,
danke für deine Rückmeldung.
ich denke, das Problem wird erst auftauchen, wenn der bisherige Token abgelaufen ist (oder bei der Neuanlage).
Hintergrund ist offensichtlich eine Änderung beim Zugriff per API… hier wurde MFA „zwingend“.

Ich habe „teslametrik“ laufen und dort konnten erst nach Änderung der Authentifizierung wieder Daten abgerufen werden. Der Zugriff basiert auf der gleichen API.

Warten wir ab.

VG
Joe

Wenn ich etwas ändern muss, dann muss mir jemand Zugangsdaten zur Verfügung stellen, dann kann ich mir das anschauen.

Grüße,
Kai