NEWS
Scipt in Vis startet nicht
-
Hallo,
Ich bin am verzweifeln.
Um es vorweg zu schicken. Nutze ioBroker nun schon eine ganze Weile. Habe auch eine ganze Reihe von Scripten geschrieben, die problemlos laufen.
Nun wollte ich ein Script beim Öffnen eines Views in Vis ausführen. Weil nichts funktionierte bin ich auf einen einfachen View mit dem Widget der Bildschirmauflösung umgestiegen und hab folgendes einfache Script im View eingefügt:
setTimeout(function () {setState('javascript.2.stest', true)}, 2000);
Die Variable existiert und ist änderbar.
Wenn ich den View starte passiert nichts.
Kann mir jemand helfen.
Danke!
-
Hallo,
Ich bin am verzweifeln.
Um es vorweg zu schicken. Nutze ioBroker nun schon eine ganze Weile. Habe auch eine ganze Reihe von Scripten geschrieben, die problemlos laufen.
Nun wollte ich ein Script beim Öffnen eines Views in Vis ausführen. Weil nichts funktionierte bin ich auf einen einfachen View mit dem Widget der Bildschirmauflösung umgestiegen und hab folgendes einfache Script im View eingefügt:
setTimeout(function () {setState('javascript.2.stest', true)}, 2000);
Die Variable existiert und ist änderbar.
Wenn ich den View starte passiert nichts.
Kann mir jemand helfen.
Danke! `
setState existiert nur in Javascript adapter. im vis ist es was anders. -
Hallo Gieselbert,
ich weis nicht ob ich es richtig verstanden habe, du möchtest beim "Anzeigen" von der View "stest" ein Script ausführen?
Wenn dem so ist könntest du ganz normal in den Sripten folgenden Ansatz verwenden:
on("vis.0.control.data", function (dp){/*Data for control vis*/ if(dp.state.val != "*/Hier den Namen deiner auslösenden Wunschview*/"){ /*Und hier das was du ausführen möchtest*/ } });
Es gibt unter den Objekten einen "Datenpunkt" der die aktuell angezeite View speichert, diese könntest du wie oben beschrieben abfragen.
Und wenn du das Script bei jedem anzeigen eines beliebigen Views ausführen möchtest sollte es funktionieren wenn du die If-Bedingung weg lässt.
Gruß
Peoples
-
Vielen Dank für den Tip.
So geht das.
Habe allerdings != durch === ersetzt.
-
Da hast du vollkommen recht