Status von Events abfragen

@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.

Moin,

bei dir. Du pflegst dein System vermutlich auch mehr als der Durchschnitt.

ohne nachgesehen zu haben würde ich sagen auf jeden Fall. Egal welche Action, wenn eine hinterlegt ist dürfte die Variable auch einen Sinn haben.

Ralf

  1. 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?

Moin,

hatte ich auch überlegt aber es gibt ja auch Variablen die aktualisiert werden ohne das sie sich je ändern wie z.B. 230V bei Steckdosen.

Ralf

Mir fällt gerade ein, dass auch Diagramme Profile nutzen können. :slight_smile:

Burkhard

Hi Demel,
noch eine Idee (von dir) für das Modul :grin:

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 :smiley:

Ralf

schau mal in Modulstore/Beta …

Moin,
war das schon drin oder hast Du das „mal eben schnell“ eingebaut?:slight_smile:

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.

Danke Ralf

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.

demel

Habe ich mir gedacht das Du das mal eben schnell kannst deswegen hatte ich es vorgeschlagen.

Test mit 100sec Script bei 40sec für Fehler und Prüfung alle 20sec aber kein Fehler. Ich schätze weil der ThreadCount noch nicht erreicht wurde.

Ralf

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

1 „Gefällt mir“

Ahh OK im IPS Log steht Warnung und Fehler alles OK soweit. Eintrag in Variablen wäre nicht schlecht.

Ralf

hast du das wirklich?

Ich bekomme nur eine Warnung Zeile in gelb, aber keinen Error in rot.

Update: Mit Update bekomme ich es dann entsprechend.

QED:

04.02.2022 09:04:53 | 21864 | WARNING | Integrity Check      | MonitorThreads: thread=7, script=Test(48988), sender=Execute, duration=34s
04.02.2022 09:05:53 | 21864 | WARNING | Integrity Check      | MonitorThreads: thread=7, script=Test(48988), sender=Execute, duration=1m34s
04.02.2022 09:20:32 | 21864 | ERROR   | Integrity Check      | MonitorThreads: thread=24, script=Test(48988), sender=Execute, duration=48s

In der neuen Version ist jetzt der Check von Threads realisiert … das bringt mir in der default Konfigurations jede Menge Einträge weil ein Ablaufplan bei mir 4 Minuten läuft (Licht im Keller nach Auslösung durch Bewegungsmelder)…
Sicher kann ich jetzt die Einstellungen ändern, aber macht es nicht Sinn die Ablaufpläne auszuklammern?
…oder sollte ich den Ablaufplan unter ‚zu ignorierende Elemente‘ listen?

Gruß, Michael

@micserver habe es hier hin verschoben weil es
a) nicht mehr mit deinem ursprünglichen Thema zu tun hat.
b) hier im Thema alle anderen Fragen zu dem Modul liegen.
Michael

ah…sorry…war grad verwirrt wieso es verschoben wurde :slight_smile:

Ist eine Frage zum Modul ‚Integrity Check‘ … ist das hier jetzt richtig angesiedelt?

Versuch mal das Modul Treppenhauslichtsteuerung. Das sollte dein Problem lösen. Oder du baust deinen Ablauf um. Bei Auslösung aktivieren ein Ereignis, das z.b. alle 10 Sekunden eine Variable um 10 erhöht. Wenn der Wert größer als 240 Sekunden ist, löse den Ablaufplan wieder mit einem Ereignis aus, und drehe das Licht ab. Das hätte auch noch den Vorteil, dass du den Timer bei erneuter Bewegung zurücksetzen kannst. Bewegung löst den Ablaufplan aus, aktiviert das Ereignis zum Hochzählen, schaltet das Licht ein und setzt den Timer auf 0. Wird wieder eine Bewegung erfaßt, wird der Zähler wieder auf 0 gesetzt und der Timer läuft von vorne. Oder du verwendest das Treppenahausmodul.

…guter Denkanstoß!
Normalerweise mache ich das ja sowieso mit einem PHP Script…wollte aber doch auch mal die hochgelobten Ablaufpläne ausprobieren … :slight_smile:

Die sind nicht schlecht. Für Kleinigkeiten muss man nicht zwingend ein Skript anreißen. Nur ich mag es persönlich nicht, einen Prozess mehrere Minuten lang anzuhalten, ohne jeglichen Einfluss darauf. Das wiederstrebt mir. Das Ding braucht nur hängen zu bleiben und dann hängt und hängt es. Ich verwende auch die Treppenauslichtsteuerung (funktioniert nicht nur fürs Treppenhaus, sondern auch im Carport und im Garten :wink: ). Das Timerding hab ich z.b. beim Absenken der Temperatur der Heizung. Ist ein Fenster länger als eine Minute offen, werden die Heizkörper geschlossen. Auch das funktioniert mit dem Timer sehr gut.