[Modul] Tesla

Und wie funktioniert das Aufwecken mittels des Moduls?

grafik

$Awake = 32137;
RequestAction ($Awake, true);

Danke @Dustin723 für den Support hier. :slight_smile:

Grüße,
Kai

1 „Gefällt mir“

Ok, verstanden. Danke dir.

Nutzt jemand von euch die GPS-Daten um Festzustellen, dass das Auto zu Hause angekommen ist? Wenn ja, wie habt ihr das implementiert?

ja, steht oben alles drin :wink:
Den mit den Kommastellen kannst du die grösse des Radius bestimmen.

Wenn du Lust hast lass und doch telefonieren, dann zeige ich dir was ich gebaut habe. Ist evlt. einfacher.

Wenn das Auto zuhause oder auf der Arbeit ist setze ich eine Variable.
z.B. Zuhause: Wallbox an, haustür auf, Licht an (wenn tag=false),
Firma: PC WOL, Heizung im Büro 21 (ähmm… 19 :slight_smile: ) etc.

<?php

//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 = 25142;

//Ort 

$VAR_Breit_Aktuell = GetValue(30416);
$VAR_Lange_Aktuell = GetValue(41337);
$VAR_Breit_Zuhause = '52.1234';
$VAR_Lang_Zuhause= '9.1234';
$VAR_Breit_12systems = '53.09'; //53.095
$VAR_Lang_12systems = '8.77'; //8.771


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

//echo "VAR_WallboxLeistung		    : ".$VAR_WallboxLeistung ."\n";
//echo "VAR_Waechter		            : ".$VAR_Waechter ."\n";
//echo "VAR_Geschwindigkeit		    : ".$VAR_Geschwindigkeit ."\n";
//echo "VAR_Verschlossen		        : ".$VAR_Verschlossen ."\n";
//echo "VAR_WallboxLeistung		    : ".$VAR_WallboxLeistung ."\n";
//echo "VAR_Klima_Aktiv		        : ".$VAR_Klima_Aktiv ."\n";

//abfrage
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";

        }

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

//-----------------------------------------------------------------------------------------------------
//Ort Auswerten
//echo "VAR_Breit_Aktuell		    : ".$VAR_Breit_Aktuell    ."\n";
//echo "VAR_Lange_Aktuell		    : ".$VAR_Lange_Aktuell    ."\n";
//echo "VAR_Breit_Zuhause         : ".$VAR_Breit_Zuhause    ."\n";
//echo "VAR_Lang_Zuhause          : ".$VAR_Lang_Zuhause    ."\n";
//echo "VAR_Breit_12systems       : ".$VAR_Breit_12systems ."\n";
//echo "VAR_Lang_12systems        : ".$VAR_Lang_12systems  ."\n";
//echo ""."\n";


//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";
                        }

Angeregt durch eure Unterhaltung habe ich mich auch mal wieder dem Thema gewidmwt und möchte mehr Komfort in meine Steuerung einbauen… nur, ich kriegs irgendwie nicht hin die Sitzheizung wirklich einzuschalten. Ich kann zwar auswählen welche ich ansprechen will, den Level setzen …aber dann gibt es noch ‚Setze Sitzheizung‘… nur passieren tut nicht … wie sähe ein kurzer Scriptschnipsel aus um z.B. die Fahrersitzheizung auf Stufe 3 zu schalten und zu aktivieren?

Super, danke fuer das Script. Auf das Angebot zu telefonieren, komme ich gerne bei Gelegenheit zurueck. Aber das Script vermittelt ja eigentlich sehr gut, wie du die Abfrage bewerkstelligt hast. Wie oft laesst du das Script denn laufen?

HI,

das Script zur Prüfung ob abgefragt werden soll läuft alle 30 Sekunden.
Wenn das Auto Online ist und Online sein soll dann wird alle 30 Sekunden abgefragt.

Sobald das Auto schlafen soll nur noch alle 30 minuten. Außer nachts.

Sitz Heizung habe ich noch nicht getestet. Die ist irgendwie eh immer auf max. ist aber auch ziemlich lahm bei meinem auto.

Kannst du eventuell das FetchdataSkript auch noch posten?

// Tesla Aktualisieren
// Wird von anderen Skripten genutzt

IPS_RunScript(38659);

Tesla_FetchData(16497);
Tesla_FetchData(41055);
Tesla_FetchData(49053);
//Tesla_FetchData(58589);
Tesla_FetchData(52907);
Tesla_FetchData(29929);
//Tesla_FetchData(10520);

dazu noch die IDs

Und was tut das Script mit der ID 38659?

Gute aufgepasst.
das ist für TeslaMate (ein Datalogger), damit der weiß das er auch loggen soll. Für dich nicht relevant wenn du kein TeslaMate nutzt und hier das Problem hast das er zuspät anfängt zu loggen z.B. erst 10km nach der Abfahrt

ist ein Einzeiler:

IPS_Execute(„C:\Windows\SysWOW64\curl.exe“, " -X PUT http://192.168.xx.xx:4000/api/car/2/logging/resume", false, false);

Ok, verstanden. Damit deine If-Abfrage funktioniert, muss man aber trotzdem zyklisch das Auto wecken, korrekt?

Vergiss die Frage. Sobald das Auto aufgeschlossen wird, sollte sich der Status auf online ändern und bei der zyklischen Abfrage des Tesla-Moduls die Werte für die IF-Bedingung aktualisieren.

1 „Gefällt mir“

Hallo,
ich habe mir auch einen Tesla zugelegt und wollte jetzt den Teslasplitter einrichten. Ich habe jetzt schon länger hier in der Foren gesucht. Ich finde aber nirgends die Client ID, Client Secret und die Token. Kann mir hier vielleicht an der Stelle mal jemand helfen?
Danke schonmal im Voraus.

schicke ich dir kurz per PN

Perfekt. Vielen Dank.

1 „Gefällt mir“

Wir haben es gestern per Fernwartung gelöst.

Wir haben einen neuen Account bei Tesla erstellt, und für dieses Fahrzeug freigegeben.
Damit nur IP-Symcon den Account alleine nutzen kann.

Hat so direkt funktioniert.

Die Vermutung ist, dass bestimmte Sonderzeichen Passwort eventuell nicht funktionieren.
Bei dem Hauptaccount war wohl eine # oder so mit drin.

Ps.
Wichtige app für die Keys:

Hallo Tesla-Fahrer,

nachdem meine Programme auf Basis des Moduls seit langer Zeit gut laufen, wollte ich mich einem neuen Thema (für mich neu) widmen: PV-Überschuss-laden.

Im TeslaVehicleControl kann man doch den Ladestrom eingeben (ChargingAmps / Lade Strom). Ich kann zwar einen Wert anklicken, aber es passiert nichts.
Wenn ich per Script (SetValueInteger) einen Wert setze, wird dieser angezeigt, aber nicht ausgeführt.

Habe ich da was falsch verstanden?

Ich möchte auf jeden Fall die Ladeanforderung (Ampere) im Script auf einen Wert zwischen 5 und 16 setzen.

Eine Steuerung über die Wallbox ist hier nicht gemeint!

Gruß, Peter

1 „Gefällt mir“