$neu) // Zustand hat gewechselt { $meldung = "TESLA auf ".GetValueFormatted($id_zustand)." gewechselt."; IF($result == "online") { $result = Tesla_FetchData($id_tv); // TeslaVehicle $result = Tesla_FetchData($id_tc); // TeslaClimate $result = Tesla_FetchData($id_tch); // TeslaCharging $result = Tesla_FetchData($id_td); // TeslaDrive sleep(5); $result = TeslaDatenUpdate($meile, $strom, $ts, $id_kmz, $id_kms, $id_timef); // eigene Datenfelder aktualisieren IPS_SetEventActive($id_timerto, true); // aktivert Timer "TESLA ist online" IPS_SetEventActive($id_timer, false); // deaktivert diesen Timer } } break; case $id_timerto: // TESLA ist online $action = ""; // schläft TESLA? $result = Tesla_State($id_tvc); // $result enthält "online" oder "asleep" IF($result == "asleep") { IPS_SetEventActive($id_timerto, false); // diesen Timer deaktivieren und IPS_SetEventActive($id_timer, true); // Polling-Timer auf aktiv return; // Tesla schläft, keine weiteren Abfragen notwendig } // Wird gerade geladen? // prüfen auf letzte Aktualisierung, wenn >xx Min. TeslaCharging aufrufen if((time() - IPS_GetVariable ($id_lz)['VariableUpdated']) > 1500) $result = Tesla_FetchData($id_tch); // TeslaCharging $ladezustand = GetValueString($id_lz); IF($ladezustand == "Charging") { $result = Tesla_FetchData($id_tch); // TeslaCharging sleep(3); $result = TeslaDatenUpdate($meile, $strom, $ts, $id_kmz, $id_kms, $id_timef); // eigene Datenfelder aktualisieren $action = "Charging"; } // irgendeine Aktion? IF($action == "") { // TESLA schlafen schicken } else { // Tesla-Daten aktualisieren $result = Tesla_FetchData($id_tv); // TeslaVehicle $result = Tesla_FetchData($id_tc); // TeslaClimate $result = Tesla_FetchData($id_tch); // TeslaCharging $result = Tesla_FetchData($id_td); // TeslaDrive } break; case $id_lz: // Ladezustand auf "Disconnected" gewechsel // $meldung = "Ladeanschluss ".$wert; $result = Tesla_FetchData($id_tch); // TeslaCharging break; default: // Code einfügen break; } //Semaphore wieder freigeben! //IPS_SemaphoreLeave("TESLA"); //} //else //{ // ...Keine Ausführung möglich. Ein anderes Skript nutzt "TESLA" // für länger als 10 Sekunden, sodass unsere Wartezeit überschritten wird. //$meldung = "Semaphore verhindert Skript-Ausführung!"; //} //****************************************************************************** // Funktion zur Aktualisierung individueller Variablen //****************************************************************************** function TeslaDatenUpdate($meile, $strom, $ts, $id_kmz, $id_kms, $id_timef) { $wert = GetValueInteger(59036); SetValueInteger(28120,$wert); $wert = GetValueFloat(24302)*$meile; SetValueFloat(17569,$wert); $wert = GetValueFloat(40024)*$meile; SetValueFloat(57117,$wert); $lade = GetValueFloat(19883); SetValueFloat(23266,$lade); $wert = GetValueFloat($id_kmz)*$meile; // Meilen in Kilometer SetValueFloat($id_kms,$wert); // KM sichern SetValueString($id_timef, $ts); // Ausführung Datum+Uhrzeit in Fahrzeugdaten sichern return "ok"; }