NEWS
Erledigt! Common/Global-Scripte mit unterschiedl. Instanzen
-
Wenn ich unterschiedliche JavaScript Instanzen nutze wäre meine Erwartungshaltung, dass die Global-Scripte nur jeweils in die Common-Scripte gleicher Instanz reinkopiert werden. Kann dies jemand bestätigen, dass dies so ist?
Habe nun einen Test gemacht: Habe in einem "Common-Instanz.1 Script" Zugriff auf ein in "Global-Instanz.0 Script" definiertes Array. Die Architektur verstehe ich so nicht.
Mache ich einen Denkfehler?
-
Jedes globale Script wird jedem anderen Script "davor" gehängt.
Du kannst also in jedem "normalen" Script auf die globale zugreifen.
Verständlich ?
-
@bahnuhr Nein
Ich würde dies nur getrennt nach JavaScript-Adapter-Instanzen erwarten. Aber dies scheint nicht so zu sein. Danke dennoch für die Bestätigung. Grüße!
Kann so den Sinn von unterschiedlichen Java-Script Instanzen gar nicht erkennen?
-
@uwe72 sagte in Common/Global-Scripte mit unterschiedlichen Instanzen:
Java-Script Instanzen
Ich habe 2 Instanzen
js.0
Hier ist eigentlich alles drin.
Mehr braucht man normalerweise auch nicht.js.1
Hier spiele ich mit Scripten rum (die halt noch nicht fertig sind).
Und wenn da was passiert, und js abstürzt, dann ist js.0 immer noch aktiv und kann die anderen Scripte bedienen. -
@bahnuhr Ok, dies verstehe ich als Sinn. Passt. Danke!
Dass beim "Reinkopieren" von global in common nicht auf die jeweilige Instanz gefiltert wird, verstehe ich dennoch nicht
-
@uwe72 sagte in Common/Global-Scripte mit unterschiedlichen Instanzen:
Dass beim "Reinkopieren" von global in common nicht auf die jeweilige Instanz gefiltert wird, verstehe ich dennoch nicht
Und ich verstehe die Anforderung nicht.
Man sollte so wenig wie möglich global haben.
Weil ja überall dann zur Verfügung steht.Grundsatz:
Erst einmal alles ohne global probieren.
Und nur wenn man etwas in verschiedenen Scripte mehrfach ! braucht dann global benutzen. -
Ich habe eben beispielsweise in den global scripten in einem Array alle Devices (Homematic, Hue) hinterlegt mit einigen Zusatzinformationen (Etage, Raum,.... u.v.m.). In den Common-Scripten möchte ich auf diese Arrays zugreifen. Daraus erzeuge ich generisch ziemlich viel: Checks, HTML-Sichten, Steuerungen, usw. Zudem sind in global viele Funktionen die ich immer wieder benötige und ich möchte Code nicht immer duplizieren.
Mir ist schon klar, dass global-Scripte "gefährlich" sind bzw. eigentlich nicht so toll sind. Ich komme eben aus der Java-Welt oder objektorientierten Welt, da kann man einfach Code reinholen wo man ihn braucht und muss nicht alles redundant implementieren.
Ich komme eben nun beim kompilieren und "reinkopieren" der Scripte an das CPU-Limit wenn ich an einem global Script was ändere. Deshalb hätte ich nun versucht, Themen auf unterschiedliche Instanzen zu verteilen, geht aber nun auch wieder nicht.
Ich finde keine Lösung um redundantfreien Code zu schreiben und wartbar zu bleiben. Sonst ist die Lösung wohl alles in ein Script zu schreiben.
-
sehe gerade es gibt ja schon einen thread
https://forum.iobroker.net/topic/69840/typescript-viele-common-global-scripte-cpu-am-anschlag/7Warum machst du 2 auf ??
-
@bahnuhr Ja war eher ein Fehler dann. Dachte initial, dass es erst einmal 2 Themen waren. Mittlerweilen ist es überlappend. Ich schließe diesen Thread hier. Sorry