[Modul] Symcon Integrity Check

Du kannst auf dem Testsystem die gleiche Lizenz nehmen wie auf deinem Produktivsystem, wenn es im gleichen Haushalt ist.

ja, klar, hatte ich früher genutzt. Ist nur zum Testen doof, wenn man externen Zugang braucht (ipmagic-Adressen). Ich habe daher zum Testen zwei Systeme mit getrennte ipmagic-Adressen.

ok, downgrade ging, hab’s einfach mal versucht und war, nach etwas internet-recherce, kein Problem

ich werde dann mal schauen, wie das so aussieht

Hab schon einen guten Ansatz: in den setting.json tauch nun ein Element sync auf, das eine Auflistung der Sync-Instanzen und dazu alle beteiligten Object-ID’s enthält - genauer gesagt ein Mapping der ID’s im remote-Objekt zu den lokalen Object-ID’s.

Meine Idee ist: einfach alle Objekte auszuschliessen, die hier aufgeführt werden.

Ich vermute, das die lokalen “Duplikate” bei Übernahme vom Remote-System im Zielsystem leer angelegt werden, damit diese ID’s nicht im lokalen System verwendet werden.

Weil man nicht mehr als 3 Antworten schreiben darf, bevor jemand anderes geantwortet hat, nun als Änderung:

@bumaas: versuch mal Modulstore/Beta V1.23 …

Bitte auch aufmerksam gegenchecken, nicht das ich damit was anderes verschlimmbessert habe.

1 „Gefällt mir“

Vielen Dank soweit!

Leider bekomme ich eine Fehlermeldung:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 20480 bytes) in C:\ProgramData\Symcon\modules\.store\demel42.symcon.integrity\IntegrityCheck\module.php on line 806
 in C:\Windows\System32\- on line 77

Das ist genau die Zeile mit dem IPS_GetSnapshot() :frowning:

Vielleicht ist es besser/einfacher, zu prüfen, ob die ID im Filenamen in der Liste von IPS_GetObjectList() enthalten ist und es sich um ein Script, Ablaufplan oder Logikplan Objekt handelt.

In der php.ini steht standardmäßig

memory_limit=32M

je nach Maschine/Speicherausbau kannst du auch auf

memory_limit=64M

gehen.

Ja, das wäre der letzte Weg. Möchte ich aber aus dem Anlass ungern machen. Zumal es ja dann bedeutet, dass alle mit einer größeren setting das ebenfalls machen müssten.

Besser ist es, erst gar nicht soviel Speicher zu benötigen :slight_smile:

Hmm, das ist ja blöd, das Du da ein Memory-Problem bekommst mit der settings.json

Ich kenne keine Funktion, direkt auf einen Teil der settings zuzugreifen… blöd, blöd

Ich verstehe natürlich, das eine andere Lösung einfacher wäre, insbesondere, weil ja (glaube ich) doch recht viele das Modul benutzen. Und bei allen potentiell das Limit hoch setzen zu müssen ist auch blöd.

ich sehe zwar keinen Grund, das memory_limit nicht hoch zu setzen, denn das ist ja nur das maximal Limit/Thread und das mal Anzahl der möglichen Thread ist bei dem üblichen heutigen Hauptspeicher-Größen nicht wirklich relevant.

Aber ok, einverstanden.

Ich werde mal morgen einen anderen Ansatz versuchen und zwar bei allen Instanzen mit der Modul-GUID {C8A197F4-7BDF-41E4-AB15-FA59CD417FEA} (= Sync Remote) von allen Childs die Liste der ID’s gegenzuprüfen, ob die deckungsgleich ist mit der o.g. Information aus der settings.json. Und wenn ja, kann ich ja diese Objekte nehmen.

1 „Gefällt mir“

nächster Versuch bitte

Jetzt funktioniert es perfekt. Die Dateien, die jetzt noch gefunden werden sind tatsächlich ungenutzt. Hier vermute ich, dass sie von Sync Remote hinterlassen werden, wenn man auf dem entfernten System Automations-Objekte löscht. Das werde ich noch verifizieren :slight_smile:

Meinen ganz lieben Dank!

Burkhard

Prima. Bin gespannt, was sich bei den übrig gebliebenen Objekten ergibt

Tagchen,

gibt es eine Möglichkeit im DarkMode den Hintergrund der HMTL Kachel anders einzufärben?

Rot ist hier nicht zu lesen…

Danke und lg

Das war einfach :slight_smile:

Ich habe die drei Testobjekte auf dem entfernten System wieder gelöscht und nun werden sie in der Ergebnisliste mit angezeigt :frowning: , was jetzt völlig korrekt ist.

ich nehme an, das die Objekte mit diesen ID‘s auf dem lokalen System auch weg sind?

Wenn ja, ist es schon unschön. Dann sind die ja hier auch ungültig und eigentlich zu entfernen. Wenn die lokal nicht mehr da sind, kann ich ja keinen Unterschied erkennen zu Dateien, die aus anderen Gründen zuviel sind.

Da fällt mir erstmal nicht zu ein,

Sieht mir so oder so nach einem Fehler in der Synchronisation aus.

So ist es. Integrity Check hat seine Aufgabe voll erfüllt und weist die Dateien nun als verwaist auf. :+1:

Ich habe dazu einen einen eigenen Thread erfasst.

1 „Gefällt mir“

Ist so nicht vorgesehen.

Das ist ja ein statisches HTMl-Text in der Variable, da kann man nicht automatisch anpassen.

Es gibt allerdings ein Script, das nach dem Prüflauf aufgerufen wird - wird in den Einstellungen angegeben - und da bekommt man die ganze Struktur mit allen Meldungen übergeben.

Als Beispiel ist da eine Datei in _../docs/mail_on_error.php_ im Git-Repository vorhanden

Zuerst ein Danke für das coole Modul!

Wie löst ihr das mit dem Fehlereintrag zur Laufzeit des Symcon-Backup-Moduls? Der Eintrag unter “zu ignorienden Elemente” (inkl. Kinder) funktioniert hier nicht…

14.11.2025, 04:55:44 | Integrity Check      | MonitorThreads: thread=1, function=SB_CreateBackup(24625);, sender=RunScript, duration=20m44s

Ich würde die Fehlerzeit bei Threads höher setzen je nachdem wie lange dein Backup braucht vielleicht 1800 Sekunden.

Ignorieren kannst Du es hier auch aber das würde ich nicht machen dann fällt ein hängendes Backup vielleicht nicht auf.

Ralf

Es gibt nicht immer einen Bezug eines Thread zu einem aufrufenden Objekt (Script, Instanz, …)
Manchmal steht da eine ScriptID drin (da würde ein Eintrag in zu ignorierende Elemente berücksichtigt werden, ansonsten eventuell ein Funktionsnamen.
Also nicht so, das man weiss, „das Objekt hat das ausgelöst“.
Man sieht das auch in der Thread-Übersicht, die man sich ja in der Web-Console einblenden kann,

Ich würde das genau so empfehlen, wie @HarmonyFan geschrieben hat, und die Zeiten für die Warnung anpassen.
Grundsätzlich sind eigentlich ja nur Threads von Interesse, die solange hängen bleiben, das die Anzahl der Threads (also die Anzahl der gleichzeitig laufenden Prozesse) vollläuft. Und die muss man schon im Auge behalten.

Danke, so werde ich es machen.