[Modul] Tesla

leider nicht.
Kann das evtl. jemand testen, um Fehler meinerseits auszuschliessen?
Rückmeldung ist leer (oder true?) Protokoll steht

10.11.2021, 11:07:05 | Tesla                | Vehicle unavailable

Grüße, Peter

Bei welcher Instanz passiert das?
Also was fragst du da zur Zeit ab?

Grüße,
Kai

das sind meine Testabfragen:

$result     = Tesla_State($id_tvc);			// $result enthält "online" oder "asleep" - TESLA wird nicht geweckt!
echo "Ergebnis State: ".$result."\n";
$result     = Tesla_FetchData($id_tch);		// TeslaCharging
echo "Ergebnis :".$result.":\n";

und das kommt zurück:

Ergebnis State: asleep
Ergebnis ::

Versuche bitte mal:

//echo "Ergebnis :".$result.":\n";
print_r ($result);

Da kommt ganz sicher false zurück. Wahrscheinlich wird das Auto nicht geweckt für den Datenabruf.
Leider steht ja nirgends offiziell wie das mit dem Aufwecken und Schlafen funktioniert, aber ich glaube es ist so:

Wenn das Auto schläft musst du den Aufwecken Befehl schicken bevor andere Aktionen oder Datenabruf funktionieren.
Wenn das Auto munter ist, schläft es erst ca. 10 bis 20 Minuten nach der letzten Aktion / Datenabruf wieder ein.

Ich habe mir eine Funktion geschrieben die die Daten abruft solange das Auto munter ist, es aber auch einschlafen lässt.

lg Bernhard

Hallo Bernhard,
auch mit print_r keine Ausgabe.

Ich frage normalerweise auch nur ab, wenn mein Tesla ladet. Dann ist er ja schon wach.
Ansonsten muss ich halt vorher wecken.

LG, Peter

Moin, mein Tesla ist seit 5 Wochen in der Werkstatt, daher kann ich nicht mit testen (Service Mode).

Ich frage so ab:

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

        {
            echo "\n";
            echo "Abfrage startet!"."\n";
            echo "\n";
            //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!"."\n";

Dann und hole ich mir noch einzeln den State, wenn der Online ist frage ich einmal die Stunde ab, damit das Aut auch einschlafen könnte (was meiner nicht kann, weswegen er unter anderem bei Tesla ist)

Hallo zusammen,

seit geraumer Zeit lese ich hier zum Thema schon mit und das Abfragen der Daten von meinem Fahrzeug (M3) funktioniert sehr gut. Wenn das Fahrzeug schläft, frage ich den Status jede Minute ab. Damit verliere ich beim Losfahren maximal eine Minute an Daten. Ist das Fahrzeug wach und der Fahrer anwesend, frage ich alle 30 Sek. ab. Ist weder der Fahrer anwesend, das Fahrzeug verschlossen, der Ladestrom < 1A, die Klima aus und der Wächtermodus nicht aktiv, frage ich nur alle 30 Min. ab, so dass der Tesla einschlafen kann. Ist er nach dieser Zeit tatsächlich eingeschlafen, frage ich wieder jede Minute ab.
Aber mal was anderes: Mit der neuesten Softwareversion der Tesla APP besteht jetzt die Möglichkeit der Vorgabe des Ladestroms. Hier wäre eine ganz einfache Möglichkeit gegeben, den Ladestrom abhängig vom Überschuss einer installierten PV-Anlage zu steuern.

@KaiS Hallo Kai. Hast Du eventuell noch vor, diese Variable in das Tesla Vehicle Control zu implementieren? Wäre eine super Geschichte.

Liebe Grüße

Armin

Das Feature wäre super!
In dem Zusammenhang fällt mir aber auf, dass obwohl ich in der Tesla APP immer den Ladestrom auf 5A begrenze, nach einer geraumen Zeit auf 6A gestellt wird. Hat jemand von euch auch dieses Phänomen?

@Astrobin
hört sich cool an, würde ich auch nutzen.
Zuhause steure ich den Ladestrom per Wallbox, klappt super.
Über die GPS Daten stelle ich ein wieviel er pro Standort Laden darf.
Zuhause = 50%
Arbeit = 80%
Sonstwo = 90%

So schone ich meinen Akku weil ich max 80% lade Zuhause nur so viel wie unbedingt muss.

@technologiezentrum
Das problem habe ich nicht, hin und wieder zeigt er falsche Ladelimits an, aber in „Tesla Remote“ sind diese korrekt, die werden nur in der App falsch dargestellt. mal im Auto geguckt ob er da die richtigen Strom hat?

@Dustin723
Wie stellst du das Ladelimit über GPS ein? Verstehe ich grad nicht.

Ort Einstellen:

//Ort 
$ID_Zuhause = 26453;
$ID_12systems = 25306;
$VAR_Breit_Aktuell = GetValue(30416);
$VAR_Lange_Aktuell = GetValue(41337);
$VAR_Breit_Zuhause = '52.123';
$VAR_Lang_Zuhause= '9.123';
$VAR_Breit_12systems = '53.09'; //53.095
$VAR_Lang_12systems = '8.77'; //8.771

//Zuhause

            $AutoZuhause_Breit = strpos($VAR_Breit_Aktuell,$VAR_Breit_Zuhause);
            $AutoZuhause_Lang = strpos($VAR_Lange_Aktuell,$VAR_Lang_Zuhause);

            //echo "AutoZuhause_Breit      : ".$AutoZuhause_Breit ."\n";
            //echo "AutoZuhause_Lang       : ".$AutoZuhause_Lang  ."\n";


          
            if (($AutoZuhause_Breit === 0) & ($AutoZuhause_Lang === 0))
                {
                        SetValue ($ID_Zuhause, true);
                        //echo "Auto ist Zuhause"."\n";
                }
                   else 
                        {
                        SetValue ($ID_Zuhause, false) ;
                        //echo "Auto ist nicht Zuhause"."\n";
                        }
echo ""."\n";
//12systems


            $Auto12systems_Breit = strpos($VAR_Breit_Aktuell,$VAR_Breit_12systems);
            $Auto12systems_Lang = strpos($VAR_Lange_Aktuell,$VAR_Lang_12systems);

            //echo "Auto12systems_Breit      : ".$Auto12systems_Breit ."\n";
            //echo "Auto12systems_Lang       : ".$Auto12systems_Lang  ."\n";


          
            if (($Auto12systems_Breit === 0) & ($Auto12systems_Lang === 0))
                {
                        SetValue ($ID_12systems, true);
                        //echo "Auto ist bei 12systems"."\n";
                }
                   else 
                        {
                        SetValue ($ID_12systems, false) ;
                        //echo "Auto nicht ist bei 12systems"."\n";
                        }

Und Ladelimit:


$VAR_LimitZuhause = GetValueInteger(49881);
$VAR_12systems = GetValueInteger (38031);
$VAR_Sonstige = GetValueInteger (29076);
$ID_Ladelimit = 10418;

$VAR_Ort_Zuhause = GetValue(26453);
$VAR_Ort_12systems = GetValue(25306);


//echo "VAR_LimitZuhause: ".$VAR_LimitZuhause ."\n";
//echo "VAR_12systems: ".$VAR_12systems ."\n";
//echo "VAR_Sonstige: ".$VAR_Sonstige ."\n";

if  ($VAR_Ort_Zuhause == 1)
    {
        SetValue($ID_Ladelimit,$VAR_LimitZuhause);
        echo "zuhause";
    }

elseif 
    ($VAR_Ort_12systems == 1)
    {
        SetValue($ID_Ladelimit,$VAR_12systems);
        echo "12systems";
    }
    
else
    {
        SetValue($ID_Ladelimit,$VAR_Sonstige);
        echo "Sonstige";
    }

Was ist bisschen Tricky ist, dass das Ladelimit als Intgr geschrieben werden muss.
Ich habe einen Schieberegler in der Visualsierung gebaut.
Das „Orte-Skript“ schiebt den auch nur.

Die Umwandlung von float auf integr habe ich in IPS View gemacht.

Ich denke mal so einen Flow kann man auch in wenigen Sekunden in php bauen, aber ich kann halt nicht programmieren, daher war es so einfacher für mich.

Ahhh …über IPS, hatte vermutet ich kenne ein Feature der Tesla APP nicht :slight_smile:
Danke!

hehe, deswegen ja auch IPS und dieses geile Modul :slight_smile:

Danke an @emtek für die PRs.
Es gibt die eine neue Funktion: Set_ChargingAmps(int $value).

Grüße,
Kai

1 „Gefällt mir“

Hallo Kai,

vielen Dank für Deine Mühe. :+1: Ich mach mich gleich ans Testen.

Grüße

Armin

Hallo Kai,

vielen Dank! Darauf habe ich gewartet. Ist schon eingebaut und funktioniert perfekt.

Wegen den Aktualisierungsintervallen muss jetzt nochmal ganz blöd fragen. Bis jetzt habe ich das so gehandhabt, dass TeslaCharging und TeslaVehicleControl alle 240 Sekunden aktualisiert werden. Das hat dazu geführt, dass er über Nacht schon mal bis zu 5% verloren hat. Ich habe mich nicht länger damit beschäftigt weil keine Zeit, möchte das jetzt aber optimieren.
Welche Werte können abgefragt werden, ohne dass der Tesla aufwacht? Wie habt ihr das gelöst?

LG,
Hugo

@technologiezentrum

hast du mal meinen Post oben gesehen? Da ist ein Skript wie ich abfrage.

Dazu hole ich mir noch den Wert asleep und online, wenn an den fragt weckt man das Auto nicht.
Den Zustand von dem Auto sehe ich selber in Teslamate, evlt. wäre das noch was für dich?

Hallo, Dustin781,

ja, hab ich gesehen. Ich hab keine Wallbox die ich abfragen kann, möchte aber die Ladesteuerung abhängig von der PV-Leistung einstellen. PV hab ich von Solaredge und die kann ich per API abfragen, d.h. ich weiß wieviel Strom von der Sonne kommt, wie hoch der Eigenverbrauch und wie hoch die Einspeisung ist.
Ich dachte, es können eventuell noch andere Werte außer Online/asleep abgefragt werden ohne dass man den Wagen aufweckt. Der Landestand wäre z.B. optimal.
Sonst werde ich es so optimieren, dass anhand des Sonnenstandes der Abfragetimer eingestellt wird (wenn Sonne, dann öfter abfragen, sonst weniger oft). Mal sehen, muss etwas experimentieren.

Ich verstehe das Problem noch nicht ganz.
Du hast doch von der letzten Abfrage den Ladestand vom Auto. Du kannst die Variablen/Werte doch über GetValue nutzen ohne das Auto zu wecken.

Ich würde per GetValue gucken ob das Auto zuhause, angeschlossen ist und geladen werden muss. Und wenn dann zu viel Strom da ist aufwecken und Ladelimit hoch drehen und Strom anpassen.

Geht die Sonne weg, Ladelimit unter 50% und er hört auf und Du hast immer 50% im Akku (was ggf ja sinnvoll sein kann :slight_smile: ).

Hört sich einfach an - ich muss mir das im Detail anschauen. Soweit ich mich erinnern kann, gab es da ein paar Fallstricke oder vielleicht hab ich auch nur zu kompliziert gedacht. Ich probiers mal so und melde mich, falls ich anstehe.
Vielen Dank derweil!

1 „Gefällt mir“