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