[Modul] Symcon Integrity Check

Nein.
Mit IPS_RunAction.
Aber kann natürlich auch so einen Fehler werfen, wenn die Aktion ein Script ausfüht.
Michael

Hi,
schade das man sowas nicht lokalisieren kann. Ich hasse Fehler/Warnungen wenn ich nicht weiß wo die her kommen.

Ralf

Hallo,

ich verwende mehr und mehr Ablaufpläne. Oft für Dinge wie klassische „Treppenhauslicht-Timer“. Diese Ablaufpläne laufen dann recht lange, 5 Minuten und mehr. Das löst dann im Integrity Check immer eine Warnung aus bzgl. zu lange laufendem Skript.

Leider hilft es auch nicht, die betroffenen Ablaufpläne in die Liste der zu ignorierenden Objekte hinzuzufügen. An der Stelle wäre es toll, wenn es eine zusätzliche Kategorie in den Settings gäbe, um bestimmte Skripte & Ablaufpläne von der Threads Prüfung auszuschließen. Oder gar im Ablaufplan selbst einen Kommentar zu hinterlassen, dass dieser bitte ausgeschlossen werden soll.

Was meinst Du, @demel42?

CU
Golo

ja, hört sich nicht falsch an, eine Liste von Scripten/Ablaufpläne zu haben, die von der Prüfung auf Laufzeit ausgeschlossen werden.
Ich schau mal.

1 „Gefällt mir“

Schau mal die 1.14 (Modulstore/Beta), da kann man Script-IDs bei im Panel Threads angeben.

Sollte helfen.

Das funktioniert aber nur bei Scripten und Ablaufplänen, langlaufende Funktionen von Modulen kann man so nicht ausblenden, weil in den Thread-Informationen kein Verweis auf eine bestimmte Instanz (Instanz-ID) vorhanden ist, sondern nur eine Funktionsaufruf - und bestimmte Funktionsname sind nicht so selten

@Dr.Niels : wäre es nicht denkbar, das man die Instanz-ID mit in den Thread-Informationen (IPS_GetScriptThread()) unterbringt?

Der Wunsch kam hier schonmal: IPS_GetScriptThread() - Rückgabe der Instanz-ID von Modulen

Ich habe aber keine Ahnung, wie da der Stand der Dinge ist, da das nicht wirklich meine Baustelle ist :slight_smile:

1 „Gefällt mir“

Cool, danke! Ich habs grade konfiguriert und auf den ersten Test scheint es zu funktionieren.

1 „Gefällt mir“

Moin @demel42,

erstmal vielen Dank für das tolle Modul, welches meine eigenen Skripte schon vor längerer Zeit abglöst hat.

Kann es sein, dass Variablen, Skripte … die unterhalb einer Kategorie liegen deren Objekte nicht berücksichtigt werden sollen, doch mitgezählt werden? Ich bin dabei davon ausgegangen, dass auch darunter liegende Kategorien samt deren Inhalte dann nicht berücksichtigt werden.

Aufgefallen ist mir das weil mir 3 Ablaufpläne angezeigt werden. Diese 3 Test Ablaufpläne liegen in einer Unterkategorie ZZ/Test die unterhalb der nicht zu berücksichtigen Kategorie ZZ liegt.

IP-Symcon 7.0, Windows (amd64), 02.11.2023, 58fc2cba75b1
Integrity Check 1.14

Gruß
Hans

ja, das ist so. Ist aber eventuell eine denkbare Idee, optional Kinder mit auszuschliessen - muss ich mal prüfen.
Bzgl. einer Kategorie gibt es eine spezielles Property „Objekte unterhalb der Kategorie ignorieren“, das ist aber genau eine Kategorie und es muss auch eine Kategorie sein.

Moin,

danke für die schnelle Antwort. Solltest du es ändern können würde ich es begrüßen :slight_smile: Grund ist, dass unterhalb der Kategorie 3 weitere Kategorien liegen für die unterschiedlichen Testprogramme die sich auf HM, IPS bzw. PHP beziehen.

Gruß
Hans

Versuch mal die aktuelle beta (v1.15).
gibt nun einen Schalter in der Objektliste, um das zu steuern

Moin,

ich habe die Kategorie ZZ mit einem Haken für inklusive Kinder versehen. Es ergibt sich aber keine Änderung.

Gruß
Hans

hmm, grübel …
ich muss das morgen nochmal testen, bin aber eigentlich ziemlich sicher, das die Unterobjekte dann auch in der Ignorierliste laden.

Nur damit ich das richtig verstehe

  • die Kategorie ZZ ist in der Liste der zu ignorierenden Objekte
  • darunter ist eine Kategorie „Test“
  • unterhalb von ZZ/Test sind Ablaufpläne, die zb auf eine Variable verweisen, die es nicht mehr gibt.

diese Ablaufpläne sollen nicht geprüft werden

soweit richtig verstanden?

Moin,

ein Bild sagt mehr als 1000 Worte.

grafik

Urprünglich hatte ich angenommen, dass alles unterhalb der Kategorie ZZ ignoriert wird, wenn man die Kategorie ZZ bei „Objekte unterhalb dieser Kategorie ignorieren“ einträgt (so als gäbe es ZZ mit allen Kindern nicht).

Nur unterhalb von ZZ liegen Test Ablaufpläne und diese werden mitgezählt. Dadurch bin ich darauf aufmerksam geworden. Dies gilt auch für Var … Mein Wunsch wäre, dass alles was unterhalb von ZZ liegt komplett ignoriert wird.

Wenn das nun in der Objektliste so realisiert würde, dann wäre es natürlich viel filigraner einstellbar.

Gruß
Hans

Moin,

noch ein Nachtrag. Die Anzahl der z. B. Ablaufpläne hole ich mir mit:

$ErgebnisArray = json_decode(GetValueString(IPS_GetObjectIDByIdent("CheckResult", IPS_GetInstanceListByModuleID('{9BC98F5F-A5F1-7980-D9C9-11C29B64F288}')[0])), true);

Das muss ich morgen nochmals überprüfen. Vielleicht liegt da irgendwo das Problem.

Gruß
Hans

Ich kann es leider nicht nachvollziehen

ID 12345 ist ungültig.

Mit der Einstellung wird die fehlerhafte ID angemeckert

und so nicht mehr

so ist es auch … aber das war ja bereits so vorhanden?? Ich hatte deine Anfrage so verstanden, das man letztendlich beliebig Kinder ausschliessen kann und nicht nur die, die unterhalb der speziell anzugebenden Kategorien liegen.

Nunmehr ist dieses spezielle Attribut

abbildbar über die allgemeine Objekt-Liste und eigentlich überflüssig.

Moin @demel42,

zunächst einmal sorry für die ausgelöste Verwirrung was wirklich nicht meine Absicht war.

Es ging nur darum, dass wenn man die Kategorie ZZ bei „Objekte unterhalb dieser Kategorie ignorieren“ einträgt, dass dann die Objekte auch in CheckResult auftauchten. Mein Verständnis von ignorieren war, dass alles komplett ignoriert wird also auch die Anzahl von Variablen, Ablaufplänen … und das für alle Kinder des zu ignorierenden Objektes. Prüfungen hatte ich damit gar nicht gemeint.

Aber die jetzige Lösung mit den granularen Einstellungen ist wirklich top :slight_smile:

Gruß
Hans

kein Problem, aber etwas verwirrt bin ich noch

Du meinst bei den Anzahlen von Objekten (Element counterList) oder als Meldung (Element messageList)?

Ich denke, ein Objekt, das ignoriert werden soll - egal ob direkt oder als Kind - dürfte in beiden Listen nicht auftauchen, muss aber zugeben, das das auf einem schnellen Blick auf den Quellcode basiert und ich das aktuell nicht mehr getestet habe.

Moin,

genau das dachte ich auch. Da ich aber keine Ablaufpläne derzeit verwende, wunderte ich mich also folglich, dass mir dort 3 Ablaufpläne bei der Auswertung von CheckResult angezeigt wurden. Diese liegen aber in einer der „Kind Kategorien“ unterhalb der zu ignorierenden Kategorie ZZ.

Array
(
    [timestamp] => 1702218628
    [counterList] => Array
        (
            [objects] => Array
                (
                    [total] => 7111
                )

            [instances] => Array
                (
                    [total] => 296
                    [active] => 283
                )

            [scripts] => Array
                (
                    [total] => 1311
                    [types] => Array
                        (
                            [0] => 1308
                            [1] => 3
                        )

                )

Unter Scripts werden 1308 php Skripte und die 3 Ablaufpläne (ganz unten im Objektbaum) angezeigt, obwohl ZZ ignoriert werden soll.

Gruß
Hans

Das ist ja die Gesamtanzahl der Skripte in deiner Installation abzüglich der zu ignorierenden Objekte. Und wie viele Script hast du insgesamt? Das müsste m.E. in dem Objektbaum-Widget unter Automationen subsummiert sein.