NEWS
[Frage] zu Scripte anderer JavaScript-Instanz zuordnen.
-
Hallo Zusammen.
Bisher hatte ich meine Produktivinstanz unter javascript.0 und Testinstanz unter javascript.1.
Forumsanfragen habe ich dann auch immer unter der Testinstanz durchgeführt.
Das war immer recht umständlich, weil die meisten Fragenden nur javascript.0 haben.
Jetzt habe ich das alles umgestellt.
Nun fällt mir auf, dass die Scripte immer noch unter javascript.0/scriptEnabled aufgeführt werden, obwohl sie javascript.1 zugeordnet wurden.
Ist das richtig so?
Grüße
-
Nun fällt mir auf, dass die Scripte immer noch unter javascript.0/scriptEnabled aufgeführt werden, obwohl sie javascript.1 zugeordnet wurden. `
Hast Du mal beide JS-Instanzen neu gestartet ? -
Hallo rantanplan,
ja, das ist so. Leider werden die scriptEnabled Datenpunkte nicht gelöscht. Ist vielleicht mal was fürs ToDo (Trello).
Du musst weiterhin darauf achten, dass vom Skript erzeugte States (mit createState()) jetzt auch in der neuen Instanz liegen. Falls weiter unten in einem Skript wieder darauf zugegriffen wird, sollte das angepasst werden. Um da etwas weniger Arbeit zu haben, habe ich mir angewöhnt, ganz oben im Skript immer die Pfade der Datenpunkte festzulegen.
zB
const idTemperatur = 'javascript.' + instance + '.Status.Temperaturen.Wohnzimmer'; // instance ist die aktuelle Instanz ind er das Skript läuft createState(idTemperatur, 0); on(idTemperatur, function(data) { // tue was });
So brauche ich nur ganz oben im Skript nachsehen, ob die Instanzen stimmen, wenn ich das Skript von einer Instanz auf eine neue schiebe. Manchmal greift man auch von anderen Skripten aus anderen Instanzen auf die Datenpunkte eines Skripts zu. Dann muss man natürlich alles durchgehen.
Falls das Skript Datenpunkte erzeugt hat (createState()) und nun in einer anderen Instanz läuft, dann sind die bereits erzeugten Datenpunkte in der alten Instanz noch da. Sie werden nicht mitgelöscht. Wenn sich da bereits wertvolle History-Daten angesammelt haben, kann es von Vorteil sein, im Skript in der neuen Instanz nicht neue Datenpunkte zu erstellen, sondern einfach auf die alten zuzugreifen. Das hängt natürlich vom Skript ab, von den Javascript-Kenntnissen und vom Nutzen.
Denken wir noch einen Schritt weiter:
Es gibt hier im Forum dazu die Lösung eines Wrappers. Der erzeugt Alias-Datenpunkte für die Ewigkeit. Die eigentliche Quelle kann dann beliebig gewechselt werden. Wenn man zB einen defekten Homematic-Fenstersensor austauscht, kann man die neue ID einfach dem bereits bestehenden Wrapper-Datenpunkt zuordnen und muss dann nix mehr weiter ändern.
Für jemanden, der seine Skripte neu aufbaut, ist das sicher eine Überlegung wert. Ich selbst habe bereits zuviele Skripte und will mich da nicht mehr durchwurschteln…
Gruß
Pix
-
Hast Du mal beide JS-Instanzen neu gestartet ? `
Jepp, habe ich gemacht.Nun habe ich teilweise doppelte Einträge in 0 und 1.
Sehr verwirrend. Aber es läuft noch alles.
Kann es es daran liegen, dass ich die Scripte alle Unterordnern sortiere?
Grüße
-
@pix:Um da etwas weniger Arbeit zu haben, habe ich mir angewöhnt, ganz oben im Skript immer die Pfade der Datenpunkte festzulegen. `
Manchmal, aber nur manchmal, bin ich ganz schön neidisch auf die JavaScriptler.Blockly könnte noch so viel gebrauchen. Meine Wunschliste ist lang….
Grüße
-
Manchmal, aber nur manchmal, bin ich ganz schön neidisch auf die JavaScriptler.
Blockly könnte noch so viel gebrauchen. Meine Wunschliste ist lang…. `
Dann steig doch um :twisted: So schwer ist es auch nicht -
Dann steig doch um :twisted: So schwer ist es auch nicht `
Keine Zeit und keine Lust.Irgendwann "juckt" es nicht mehr was Neues anzufangen.
Als ich angefangen habe, musste ich Programme noch "fädeln"
Im Laufe der Jahre ist da einiges an Sprachen zusammengekommen.
Ich bleibe erstmal auf der dunklen Seite der Macht
Grüße