Löschung unbenutzter Variablenleichen??

Hi, Zusammen,

gibt es irgenwie eine Möglichkeit, alte Variablen (Variablenleichen) einfach
zu löschen ??

Für Tipps wär ich da schon dankbar :slight_smile:

Gruß
My :loveips:

Abend!

Wenn du uns jetzt noch verraten magst, was für dich Variablenleichen sind…dann hat vlt. jemand eine Lösung :slight_smile:

Weder wir noch IPS wissen, was für dich „Leichen“ sind :slight_smile:

Bitte genauer beschreiben.

Grüße,
Chris

Hi,

ich meine diese die ungenutzt da sind, d.h. die im ArchiveHaendler als unbenutzt gekennzeichnet sind…

Hoffe jetzt das bisserl verständlicher umschrieben zu haben und falls die Frage aufkommt warum ?? umstieg
auf Raspi oder Banana :slight_smile: - auf Deutsch gesagt großes „Reinemachen“.

Gruß
My

Dann speicher dir diesen Thread mal gut ab in dem es diesen Beitrag gibt:
IP-Symcon - Wie kann ich… 2.0 - Seite 7

:wink:

Grüße,
Chris

Hi, Chris…

wenn ich dich nicht hätte :)) - SUFU irgendwie danebengesucht :slight_smile:

Gruß
Reiner

Ich wusste es auch nur noch so genau, weil ich den verlinkten Thread erstellt habe und das Problem mit den verwaisten Archiv-Einträgen selbst erst vor kurzem hatte :smiley: :stuck_out_tongue:

Grüße,
Chris

HI,

hab aber nochmal was … wenn im ArchveHandler steht „Objekt #12345 existiert nicht“ - wie kann ich diese Löschen bzw. gibts dafür auch eine Lösung ??

Gruß
Reiner

Hö? :smiley: Das hab ich dir doch grad verlinkt?! :smiley: :confused:

-Chris-

HI,

hab das Script laufen lassen und das war das ergebnis :

Es wurden 0 Archiv-Einträge mit nicht existierenden Variablen gelöscht!

hab im Handler nachgesehen und die Shitteile stehen immer noch drinnen… GRRRR

Gruß
Reiner

Beachte diese Zeile im Skript:

$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! 

-Chris-

Hi, Chris,

klar habe ich das auf „false“ gesetzt :slight_smile:

Hmm, irgendwo steckt der Wurm drin…

LG
Reiner

Wird denn bei Testlauf auf TRUE eine Liste mit Variablen ausgegeben die im Archiv mit „…existiert nicht“ stehen? Oder wird da schon gar nichts ausgegeben?

-Chris-

Du kannst nochmal probieren die ArchivID selbst einzutragen, vlt. wird bei der die Archiv-Instanz nicht erkannt…warum auch immer?!

<?
ini_set("max_execution_time", 600);

$AC_ID =  12345;  // Hier die Objekt-ID von der Kern-Instanz "Archiv" eintragen
$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;
$LoggedVarIDs = AC_GetAggregationVariables($AC_ID,false);
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;
}
?>

-Chris-

HI, Chris,

gleiches Ergebnis, keine Variablen gefunden, hab die ID des ArchiveHandlers eingegeben und die Dinger
sind immer noch Grau hinterlegt ;(

wobei die Grauen nur angezeigt werden wenn ich in die erweiterte Ansicht gehe …

Hmmm

Reiner

Mach bitte mal einen Screenshot von deinem Archiv mit den von dir gemeinten Einträgen, vlt. reden wir aneinander vorbei :slight_smile:

-Chris-

HI,

hier :slight_smile:

Aja, da hast du tatsächlich noch einen Spezialfall gefunden der nicht abgefangen war :slight_smile: Danke dafür! :slight_smile:

Hab hier die neue Version online gestellt:
IP-Symcon - Wie kann ich… 2.0 - Seite 7

…damit funktioniert es auch bei den ausgegrauten Variablen im Archiv die nicht existieren :cool:

Grüße,
Chris

Hi, Chris :slight_smile:

bist der „Held“ und nu isses sauber :slight_smile:

Vielen Dank und einen Gruß aus Bayern :slight_smile:

Reiner

Hi Chris,

bei mir (V4.0) erscheint bei allen „Leichen“:

Warning: EndZeit ist vor der StartZeit in C:\IP-Symcon\scripts\49980.ips.php on line 19
FEHLER - Konnte Variable mit ID 53966 nicht löschen!

Im Archiv-Handler steht „Objekt 53966 exitiert nicht“.

Im Ordner (CSV-File) war letzte Eintrag im Oktober 2014.

Ciao
herbertf

PS: Deine Sammlung nützlicher Dinge ist KLASSE !!!

Moin!

Laut der Doku-Seite:
AC_DeleteVariableData — IP-Symcon :: Automatisierungssoftware
…sieht es so aus, als würde es bei allen IPS-Versionen größer gleich 3.0 funktionieren :confused:

@paresy: Hast du eine Idee, warum das bei IPS 4 nicht funktioniert? Wurde der Befehl da geändert und es steht nur nicht in der Doku? …?

@herbertf: Konnte gar keine Variablen-Leichen gelöscht werden oder nur bestimmte/eine nicht?

Grüße,
Chris