Hat Symcon so etwas wie ein "Autoexec" Script?

Hallo, hat Symcon soetwas wie ein Autoexec Script, das nach Dienststart auseführt wird, nachdem alle Module gestartet wurden?!?

Ich nutze das Modul „Unifi Toolbox“ mit dem ich die IP’s der Kamera blockiere in der Wohnung, wenn wir zuhause sind. Wenn dann der Symcon Dienst neustartet, dann sind alle „Blockierungen“ aufgehoben und die Kameras wieder eingeschaltet, das gibt dann „unerwünschte“ Ereignisse, wenn man dann morgens nackt durch die Bude rennt :grinning:.

Das mindert den WAF :rofl:.

https://www.symcon.de/service/dokumentation/modulreferenz/event-control/
Michael

Danke für deine schnelle Hilfe @Nall-chan - gehe ich recht in der Annahme, das dieses Script erst dann gestartet wird, wenn Symcon komplett inklusiver aller Module geladen wird? Das wäre dann ein Klasse Workaround.

Ich warte zuvor aber noch die Antwort von @BommelPommel ab, ob das Modul die Option bietet (bzw. bieten wird) den Wert der Variablen seines Moduls „zwischenzuspeichern“.

Danke dir und dir noch einen schönen Abend :slight_smile: .

Wenn die Variablen einen falschen Wert haben, dann stimmt etwas mit deinem System nicht. Würde zum Absturz im anderen Thema passen.
Der Wert aller Variablen wird in der settings mit abgespeichert und beim shutdown entsprechend mit gesichert.
Oder, da ich das Modul aber nicht kenne, das Modul bügelt einfach hart neue Werte in die Variablen beim starten vom Dienst.

Beim Event Control genau lesen:

Zu diesem Zeitpunkt sollten bereits alle Schnittstellen verfügbar sein…

Je nachdem wie das Modul intern funktioniert, kann es sein das die Instanzen z.b. noch nicht die aktuellen Werte haben.

Michael

Man könnte aber dort dann einen Timer setzen, der in 20 Sekunden das eigentliche „Startup“ Script startet.

Danke für eure Hilfe.

Es geht um den IP-Blocker vom „Unifi Toolbox“ Modul, dies scheint die Variablen nicht „zwischenzuspeicher“ - habe schon bei @BommelPommel um Hilfe gebeten.

Danke für eure Hilfe :slight_smile: .

@Nall-chan ich habe gerade mal in meinen Code geschaut … also Werte setze ich an sich nicht neu.

Was passiert … eine MAC zum sperren wird angelegt - die ist erstmal „True“ also an.

Wenn man jetzt blocked via False, dann wird die im Unifi Controller auf geblocked gesetzt oder eben auf un-block. Das Modul liest aber nicht vom Controller wenn ich mich richtig erinnere - es ist ein reiner push.

Das einzige was sein könnte wäre, dass beim Apply Changes in der Tabelle alles wieder auf True gesetzt wird - also in Zeile 51. Das sollte aber wohl eher nicht so sein oder macht an dieser Stelle ein Maintain ein Problem?

Ich würde aber zwischen den Jahren mal an dem Modul arbeiten. Ich bin aber einer mit den aktuellen Problemen im System und habe auch den Variablen reset.

Danke für deine schnelle Hilfe.

Wäre es nicht viel einfacher, den Status statt auf True zu setzen vorher auszulesen? Die Variable existiert ja und noch und ist gesetzt - sofern die beim Shutdown von Symcon nicht zurückgesetzt wird.

Oder denke ich hier falsch?!?

Danke dir :slight_smile: .

Und warum machst du das?
Setze die doch nur auf true wenn sie vorher nicht existent war. Jetzt überschreibst du immer alle Werte im Applychanges.
Und SetValue ist schon ewig veraltet.
$this->SetValue wäre korrekt.
Ebenso wie der Wert True statt 1 die Lesbarkeit erhöht.
Das MessageSink hat auch diverse Probleme.
Ab dem zweiten Applychanges triggert jedes SetValue durch VM_UPDATE jedesmal die Funktion AuthenticateAndProcessRequest.
Also so häufig wie Zeilen in $DevicesJSON sind.
Ob die UDM, oder wie die Hardware heißt, jetzt das toll findet da innerhalb von wenigen ms 5-30 Requests zu bekommen?

Auch wenn es jetzt etwas böses klingt, aber du hast die MessageSink missbraucht und RequestAction nicht verstanden.

Weil eigentlich gehört der Code von AuthenticateAndProcessRequest in RequestAction.
Dann würden auch Fehler in der Ausführung der Aktion im WebFront landen, wenn man dort die Variable schaltet. Das verdeckt du damit und verhält sich jetzt so wie das schlechte Aktion-Skript aus der Dokumentation. Aktionsskripte — IP-Symcon :: Automatisierungssoftware
Und die MessageSink brauchst du gar nicht.
Michael

Danke Michael - das schaue ich mir an und ich denke ich habe eine Idee wie ich es angehen kann. Das Modul ist definitiv an der Grenze dessen was meine Kenntnisse im Bereich. Modulentwicklung bisher anging, deswegen freue ich mich über das Feedback.
Ich schaue es mir die Tage an.

1 „Gefällt mir“