[Modul] Tesla

Da kann ich bestimmt noch was machen.
Ich schaue mal.

Grüße,
Kai

auch, wenn ich schon mehrfach darauf eingegangen bin:
Bisher habe ich immer mit

den Staus abgefragt/aktualisiert. $id_rvc = ID der Instanz TeslaVehicleControl

Das wäre vorteilhaft wenn der aktualisiert werden würde (am besten ohne den Abfragen-Zähler zu erhöhen - ich weiß, dass das nicht funzt) damit man danach das Abfrageintervall setzen könnte.

Gruß Dietmar

Ja, das geht auch bald wieder.
Aber kostet dann auch immer eine Abfrage.

Grüße,
Kai

das wäre nicht so schlimm, da ich das i.d.R. nur alle 15 Min. abfrage

Ja, aber man kann auf diese Art das Abfrageintervall auf die Zeiten in der er aktiv ist verdichten um einen besseren Focus auf das Geschehen zu erhalten. Aktiv = alle 5 s, Inaktiv = 900 s.

Gruß Dietmar

genau, ich mache

Tesla_FetchData($id_splitter);

nur, wenn Tesla wach ist.
Den Instanz-Timer habe ich auf 10800 Sek. stehen, könnte man aber auch ganz ausschalten

Gruß, Peter

Das könnte ihr machen wie ihr wollt. :wink:

Grüße,
Kai

Es gibt eine neue Testing Version , dort sollte die State Funktion wieder funktionieren.

Grüße,
Kai

Grandios wäre natürlich wenn man mit ein paar Faktoren das Rolling bestimmen könnte. Da wir 2 Teslas haben wäre z.b. die Fahrzeuganzahl ein Faktor. Ein weiterer Faktor könnte sein wie lange man so etwa täglich unterwegs sein möchte, evtl. auch Fahrzeug bezogen. Die Formel könnte dann das Updateinterval für aktiv/inaktiv selbst berechnen.

Gruß
Dietmar

Super, vielen lieben Dank Kai.

Gruß
Dietmar

Nein, der State wird im Moment nicht aktualisiert.

Gruß
Dietmar

Hast du die State Funktion ausgeführt?

Grüße,
Kai

Ja, Intervall 1 s. Die anderen Werte kommen, State nicht. Im Moment ist meine Frau mit dem Fahrzeug unterwegs.

Gruß
Dietmar

1 „Gefällt mir“

Neue Version ist online, da war noch ein Bug.
Frage niemals eine Sekunde ab, du hast nur 2500 Abfragen pro Tag.

Grüße,
Kai

Sorry, war Wake Up. State sieht so aus.

Gruß Dietmar

das hab ich mir gebastelt. das Skript wird z.B. auch beim öffnen der Haustür gestartet. Nun prüfe ich gerade wie hoch ich mit den Abrufen gehen kann, damit die Ladelimits dann auch schneller geschaltet werden.

<?php

// Konfigurationsbereich
$debug = 1; // Debug-Modus aktivieren (1) oder deaktivieren (0)
$splitterID = 13633; // Die ID des Splitters
$counterID = 31741; // Die ID der Variable, die den Counter speichert

// Timer-Konfiguration
$shortFetch = 60; // Abrufen im 60 Sekunden Takt
$longFetch = 240; // Abrufen im 240 Sekunden Takt
$ultraLongFetch = 3600; // Sehr langer Takt von 3600 Sekunden

// Zusätzliche Bedingungen
$driveID = 21234; // ID für Fahrzustand (D oder R)
$chargingID = 35277; // ID für Ladezustand, abrufen wenn größer 1
$sentryID = 29425; // ID für Wächtermodus, 1 wenn aktiv

// Nachtzeit-Intervall
$nightStart = 22; // 22 Uhr
$nightEnd = 6.5; // 6:30 Uhr

// Aktuelle Zeit ermitteln
$currentTime = floatval(date('G')) + floatval(date('i')) / 60;

// Timer-Logik und Debug-Ausgaben
$fetchReason = ""; // Grund für den Datenabruf
$selectedInterval = ""; // Gewählter Timer-Intervall

if (GetValue($driveID) == 'D' || GetValue($driveID) == 'R') {
    IPS_SetScriptTimer($_IPS['SELF'], $shortFetch);
    $fetchReason = "Fahrzeug fährt (D oder R).";
    $selectedInterval = $shortFetch . " Sekunden";
} elseif (GetValue($chargingID) > 2 || GetValue($sentryID) == 1) {
    IPS_SetScriptTimer($_IPS['SELF'], $longFetch);
    $fetchReason = "Ladezustand > 1 oder Wächtermodus aktiv.";
    $selectedInterval = $longFetch . " Sekunden";
} elseif ($currentTime >= $nightStart || $currentTime <= $nightEnd) {
    IPS_SetScriptTimer($_IPS['SELF'], $ultraLongFetch);
    $fetchReason = "Nachtzeit.";
    $selectedInterval = $ultraLongFetch . " Sekunden";
} else {
    IPS_SetScriptTimer($_IPS['SELF'], $longFetch);
    $fetchReason = "Standard-Takt.";
    $selectedInterval = $longFetch . " Sekunden";
}

// Debug-Ausgabe vor dem Abrufen der Daten
if ($debug) {
    echo "Daten vom Tesla abrufen...\n";
    echo "Grund: $fetchReason\n";
    echo "Gewählter Intervall: $selectedInterval\n";
    echo "SplitterID: $splitterID\n";
}

// Daten vom Tesla abrufen
Tesla_FetchData($splitterID);

// Den aktuellen Wert des Counters abrufen
$currentCounterValue = GetValue($counterID);

// Den Counter um eins erhöhen
$newCounterValue = $currentCounterValue + 1;

// Den neuen Wert des Counters speichern
SetValue($counterID, $newCounterValue);

// Weitere Debug-Ausgaben, wenn der Debug-Modus aktiv ist
if ($debug) {
    echo "Neuer Counter-Wert: $newCounterValue\n";
}

?>

1 „Gefällt mir“

Teste die neue Version.

Grüße,
Kai

Tesla_State() funktioniert wieder!
super, danke.

Gruß, Peter

So, wenn das Modul jetzt funktioniert, muss ich mir auch bald nen Tesla holen. :smiley:

Grüße,
Kai

2 „Gefällt mir“