Quelle: Archivkontrolle (by Nall chan)
Skript zum Löschen aller verwaisten Archiv-Einträge. Es werden alle Einträge aus dem Archiv gelöscht, wovon keine zugehörigen Variablen mehr existieren. Diese sind im Archiv meisten daran zu erkennen >> „Objekt #12345 existiert nicht“
Sollte die VariablenID in der Zwischenzeit neu vergeben worden sein, dann wird nichts gelöscht und man hat sich das Logging versaut
Wurde die ID an ein Skript oder ein anderes Objekt vergeben, dann wird dieser Name auch im Archiv angezeigt und fällt weniger auf, wird aber dann durch dieses entfernt.
Einfach das Skript unten einmal ausführen, dann wird einem angezeigt was gelöscht werden würden. Braucht man die alten Archiveinträge nicht mehr, dann kann man die Variable $Testlauf auf FALSE setzen und nach ein paar Sekunden/Minuten (je nach Anzahl) sind alle verwaisten Einträge weg 
<?
ini_set("max_execution_time", 600);
$Testlauf = true; // Variable auf FALSE setzen, dann werden die Variablen wirklich aus dem Archiv gelöscht. Bei TRUE werden die Variablen-IDs nur angezeigt/ausgegeben, aber es wird nichts gelöscht!
$VarCount = 0;
$VarCountX = 0;
$AC_ID = IPS_GetInstanceListByModuleID('{43192F0B-135B-4CE7-A0A7-1475603F3060}')[0];
$LoggedVarIDs = AC_GetAggregationVariables($AC_ID, true);
foreach ($LoggedVarIDs as $VarID)
{
if (!IPS_VariableExists($VarID['VariableID'])) {
$VarCount++;
if ($Testlauf == true) {
echo "INFO - Variable mit ID ".$VarID['VariableID']." existiert nicht!".PHP_EOL;
}
else {
$deleted = AC_DeleteVariableData($AC_ID,$VarID['VariableID'],$VarID['FirstTime'],$VarID['LastTime']);
if ($deleted !== true) {
echo "FEHLER - Konnte Variable mit ID ".$VarID['VariableID']." nicht löschen!".PHP_EOL;
$VarCountX++;
}
}
}
}
if ($Testlauf == true) {
echo "Es wurden $VarCount Archiv-Einträge mit nicht existierenden Variablen gefunden!".PHP_EOL;
}
else {
echo "Es wurden $VarCount Archiv-Einträge mit nicht existierenden Variablen gelöscht!".PHP_EOL;
echo "Es konnten $VarCountX Archiv-Einträge nicht gelöscht werden!".PHP_EOL;
}
?>