Ja, ich hab es getestet und meine Profile bereinigt.
Die Überprüfung erfolg hier
if ($profil == IPS_GetVariable($variable)["VariableProfile"] or $profil == IPS_GetVariable($variable)["VariableCustomProfile"]) $gefunden=true;
Jedes Profil wird in jeder Variable gesucht. Einmal wird überprüft ob es als sog. Custom Profile (von dir definiert) verwendet wird, oder ob es als Variable Profile (von einem Modul zugewiesen) verwendet wird. Wird es entweder da oder dort gefunden, dann wird die Variable $gefunden auf true gesetzt und das Profil wird nicht gelöscht.
Hi,
zusätzlich werden die Grundprofile von IPS, starten mit ~, nicht gelöscht denn zukünftig installierte Module könnten sich darauf verlassen das es sie gibt.
Hallo Ralf,
sorry, das ich nicht reagiert hatte, war mit anderen Angelegenheiten sehr beschäftigt.
klar, kann ich das in das Integrity-Modul einbauen
demel
Moin Demel,
kein Problem. War nur so eine Idee von mir weil schon fast alles überprüft wird was man überprüfen kann und die 2 Sachen sind mir noch eingefallen.
Automatisch löschen ist gefährlich und 100te von Warnung ausgeben könnte von richtigen Problemen ablenken. Bisher beschränkte sich das ganze ja auf wenige Meldungen.
@HarmonyFan
ich habe mal gerade den Check eingebaut.
Bei mir kommen da ein paar 100 Variablen … aber das sind alles Variablen von Instanzen (gerne HmIP) - wenn ich die löschen würde, kämen die ja bei nächsten Reboot oder einer Änderung anders jew. Instanz schwuppdiwupp wieder
Wenn ich zusätzlich auf Vorhandensein eines ObjectIdent prüfen (was ja vornehmlich bei Modulen gesetzt wird), sind das bei mir 0 Variablen.
Dann habe ich mal eine Variable von Hand angelegt … die ist gleich Aktualisiert, denn die wird ja initialisiert. Mit „Trick 17“ habe ich dann mal eine nicht initialisierte Variable angelegt (beim erzeugen der Variable den Standardwert gelöscht - gibt zwar eine Fehlermeldung, die Variable ist aber angelegt). Und die wird dann angezeigt.
Die Ausbeute ist aber dann ja gering …
Bei deinem Script prüfst du übrigens nur auf VariableAction == 0 … wäre nicht VariableCustomAction == 1 ebenfalls wichtig?
oder verstehe ich das Ziel nicht so ganz?
@cbeham: auto. Löschen sehe ich erstmal (noch) nicht, die Gefahr was falsches zu löschen ist ja doch nicht zu unterschätzen.
Schritt: „ungenutzte Variablen“ sind nun dabei (Modulstore/Beta)
allerdings ist die Überprüfung auf „Updated“ schon sehr einschränkend … naja, solche Variablen sind ja kaum von Hand zu erstellen
Ob eine Prüfung auf „Changed“ besser ist?
Im Thread Zu viele gleichzeitige Skripte. Verwerfe Ausführ - #6 von demel42 hast Du ein Script vorgestellt das die Threads überwacht.
Wäre das nicht eine schöne Erweiterung für dieses Modul. Auf Wunsch alle X Sekunden (Standard vielleicht 60) die Threads überprüft und wenn > N das Zeitlimit überschreiten Meldung geben.
Mir und auch anderen hat es schon sehr geholfen einen Fehler zu finden. Es geht nichts über eine Rekursion ohne Ende- oder Abbruchbedingung
Moin,
war das schon drin oder hast Du das „mal eben schnell“ eingebaut?
Ich habe das Script jetzt mal deaktiviert und die Prüfung im Modul aktiviert. Jetzt muss ich warten bis ich mal wieder Mist baue um zu sehen ob es geht.
nee, schnell eingebaut. Ist ja kein Hexenwerk, weil der Code ja schon als Script existierte und von daher nur da mit rein musste.
Zum Test, mach do einfach ein Script, in dem ein IPS_Sleep(140*1000) steht.
Das hängt dann ja 140s … wenn du ungeduldig bist, stellst du die Grenzen einfach auf kürzer
ich erwarte
a) passende Meldungen alle 60s
b) eine Änderung in der HTML-Box - die wir aber ja nur alle 60m aktualisiert - also einfach manuell auslösen.
da wollte ich aber auch noch was dran machen, und versuchen, das Erkenntnis in dem minütlichen MonitorThread auch hier dargestellt wird.
ThreadCount=0 bedeutet, das zu dem Zeitpunkt nix lief. Oder ich habe einen Gedanklichen Fehler, denn ich prüfe, ob die Thread-Struktur eine „ScriptID“ != 0 enthält … prüfe ich gleich nochmal
sobald ein Script-Laufzeit eine der in der Konfig angegebene Grenzen überschreitet, gibt es eine LogMessage. Die HTML-Box nur dann wenn die PerformCheck (also die stündlich laufende Prüfung) passend abläuft