NEWS
Trigger unsubscribe (Verständnisfrage)
-
@ostseeskipper
Dazu ist das "Unsubscribe" da - kann Dir aber nicht sagen, wie man einen Trigger dann wieder anknipst.Das weiß aber sicher @paul53 , gell?
-
@ostseeskipper sagte: mit nem anderen Kommando? wieder aktivieren?
Man muss es innerhalb einer Aktivierungs-Callback-Funktion deklarieren. Im Prinzip genau so, wie man die Uhrzeit eines Zeitplans ändert.
-
@paul53
Lieben Dank.
Dann suche ich mir das raus wenn ich dafür einen Anwendungsfall habe.
Ging ja erstmal nur um das Verständnis.
Bisher war immer 1 Script = 1 Trigger(mit mehreren Datenpunkten)
Langsam kommen Dinge wo 1 sich ändernder Datenpunkt viele Aktionen auslösen sollen wo auch noch geprüft werden muss, hat Mensch ausgelöst, oder hat Mensch gesperrt, Urlaubsmodus, Jahreszeit, etc
So voll in den Logikkram -
@ostseeskipper
Nur so zur Info: Komm nicht auf die Idee, mehrere Trigger (womöglich in verschiedenen Scripten) auf ein und denselben DP zu kreieren.
Das macht vermutlich früher oder später Ärger. -
Das macht vermutlich früher oder später Ärger.
Echt ?
Hab schon ein, zwei Datenpunkte die in mehreren Scripten unterschiedliche Dinge auslösen.
Das würde ja ein Monsterscript mit vielen Datenpunkten ergeben und alles mit if when auszuwerten. -
@ostseeskipper sagte: Datenpunkte die in mehreren Scripten unterschiedliche Dinge auslösen.
Das ist solange kein Problem, solange kein unsubscribe(id) auf diese Datenpunkte erfolgt.
-
also unsubscribe(id) per befehl?
oder auch wenn das Script mit (Trigger auf (id)) beendet wird aber in einem anderen Script der (id) noch überwacht wird ?Script A läuft 24/7 und horcht auf DP 1
Script B läuft z.B. nur Nachts und horcht auch auf DP 1 -
@ostseeskipper naja mach dir nicht so ein kopf darüber.
normalerweise ist das kein problem mehrere skripte zu haben wo evtl der gleiche trigger drin auftaucht. Ausser wie paul schon schrieb du evtl. irgendwo ein unsubscribe hast dann kann es evtl sein das in allen skripten der trigger nicht mehr auslöst. Ist aber das Skript komplett abgestellt, wo dieser Befehl drin ist, dann passiert auch nichts.
-
@ciddi89
ok, Danke, dann kann ich ja beruhigt schlafen gehen -
@ostseeskipper sagte in Trigger unsubscribe (Verständnisfrage):
Script B läuft z.B. nur Nachts und horcht auch auf DP 1
Ich stelle mir hier die Frage: Warum läuft ein Script nur zu bestimmten Zeiten?
Ich würde einen DP auch nur in einem Script verarbeiten und im Trigger die Zeit prüfen.
Also etwa so:
Hier im Forum höre ich gelegentlich von Geister-Scripten, die trotz Beenden als "Geister-Script" noch etwas tun. -
@codierknecht oder was ich mir mittlerweile angewöhne anstatt das ganze Script auszuschalten: einen eigenen Datenpunkt erstellen und den auf eine variabel im Script setzen. Und die Funktionen dann nur laufen lassen wenn dieser auch true ist.
-
@ciddi89
Oder so ... auf jeden Fall besser als ein Script abzuschalten -
@codierknecht ich lern gern dazu.
Warum ist es besser ein Script laufen zu lassen nur damit es feststellt das es nichts tun soll?Beispiel:
Bewegungsmelder der auf Bewegung triggert.
Script mit dem Trigger auf den Bewegungsmelder wird zum Sonnenuntergang ein und zum Sonnenaufgang ausgeschaltet.
Ansonsten würde bei einer Bewegung am Tag der Trigger ausgelöst, dann geprüft werden was für eine Tageszeit ist um dann zu entscheiden ob Licht ein geschaltet werden muss. Das am Tag so 100x . Nachts ist ehh weniger los und es soll Licht werden. -
@ostseeskipper sagte: Warum ist es besser ein Script laufen zu lassen nur damit es feststellt das es nichts tun soll?
Weil ein Skriptstart viele Ressourcen verbraucht (Compiler).
-
@paul53
OK, hätte ich nicht vermutet und wenn du das nicht gesagt hättest auch nicht geglaubt.Apro Po Skriptstart:
Heisst das auch du würdest statt einem Auftruf eines "Unter"-Script(wo kein Trigger drin ist) von einem Haupt-Script, das lieber als Funktion innerhalb des Hauptscripts erledigen lassen.
Dann gibts nur noch ein Script und das ist megariesig. -
@ostseeskipper sagte: Dann gibts nur noch ein Script und das ist megariesig.
Das ist zwar effizienter, aber den Überblick sollte man schon noch behalten.
@ostseeskipper sagte in Trigger unsubscribe (Verständnisfrage):
Auftruf eines "Unter"-Script(wo kein Trigger drin ist)
Wie ruft man ein "Unterskript" ohne Trigger auf?
-
@paul53
Lieben Dank, dann schau ich mal wo es Sinn macht.Unterscript aufrufen mach mit setState(dp,true) wobei dp = 'javascript.0.scriptEnabled.xxx' ist.
-
@ostseeskipper sagte: setState(dp,true) wobei dp = 'javascript.0.scriptEnabled.xxx' ist.
Das ist "Skript starten".
-
@paul53
ja klar Script starten und werden von anderen Scripten mit Triggern aufgerufen / gestartet besser ausgedrückt.
Wir meinen das selbe.