NEWS
Scripteditor Unterschied zwischen common & global
-
Hallo zusammen,
im neuen Scripteditor gibt es ja bereits 2 fertige Ordner common und global.
Kann mir jemand den Unterschied zwischen den beiden Ordnern verraten ?
Vielen Dank.
Gruß
Michael
-
Die Skripte im globalen Ordnern werden im Hintergrund vor allen anderen Skripten kopiert.
Damit kann man dann globale Funktionen realisieren, die in jedem Skript zur Verfügung stehen.
Habe ich z.B. mit der Funktion logs() gemacht, die ein skriptindividuelles Login je Skript ermöglicht, siehe: http://forum.iobroker.net/viewtopic.php … 513#p22194.
Achtung: Variablen stehen nicht global zur Verfügung, da es ja jedesmal ein neues Skript (global + eigentliche Skript) gibt. Da muss man über Datenpunkte gehen.
-
Hallo Ruhr,
wenn auch sehr verzögert noch mal danke für dein Feedback. Gibt es denn einen Unterschied zwischen common und global ?
-
ja
common ist einfach irgendein Ordner
die skripte, die in global stehen und aktiviert sind, werden vor allen anderen Skripten kopiert.
Gesendet von iPhone mit Tapatalk
-
Hallo,
steht auch so in der http://www.iobroker.net/?page_id=156&lang=de#Ordner-_und_Dateiliste
Gruß
Pix
-
Liebe Leute,
der Thread ist zwar schon etwas älter, aber folgende Frage:
Macht es Sinn, ein globales Script zu erstellen, in dem man die einzelnen Aktoren in ID-Variablen packt und so in allen Scripten immer alle Aktoren "im Zugriff" und mit "selbem Namen" hat?
Oder ist das zu viel "Overhead" speziell für kleinere Programme? Hat das negative Folgen auf den Speicher?
Liebe Grüße
tom
-
@etv:in dem man die einzelnen Aktoren in ID-Variablen packt und so in allen Scripten immer alle Aktoren "im Zugriff" und mit "selbem Namen" hat? `
:?: Beispiel :?:
@etv:Hat das negative Folgen auf den Speicher? `
Ja. Alle globalen Skripte werden in alle anderen (nicht globale) Skripte kopiert und compiliert. Sie belegen somit jedesmal RAM, unabhängig davon, ob die im globalen Skript enthaltenen Funktionen aufgerufen werden oder nicht. -
ok danke - Antwort 2 hat's schon erledigt!
Ich meinte sowas:
var idRollladen_Terrasse = "hm-rpc.0.LEQ0904663.1";
…aber eben gleich für alle Aktoren - das ist dann doch recht viel = viel Speicher = mach'ma doch nicht :lol:
Liebe Grüße
tom
-
Wenn Du allen Datenpunkten <u>eindeutige</u>, gut strukturierte Namen verpasst, kannst Du https://github.com/ioBroker/ioBroker.javascript/blob/master/doc/en/javascript.md#getidbyname verwenden.
-
…aja, muss ich mal ausprobieren, danke dir!!
Liebe Grüße
tom