NEWS
Kleines Script zum View wechsel…
-
Hallo!
Ich habe mir im Vis mehrere View´s gebaut. Da hätte ich gerne das ich nach dem Umschalten auf einen anderen View wieder automatisch zurückkomme.
Also der Standardview ist "Tablet" und ich wechsle auf z.B. "Fenster", dann soll nach 120 Sekunden wieder auf Tablet.
Vielleicht hat jemand einen Tipp für mich.
Grüße Sebbo
-
Also inzwischen weiß ich wie ich mit einer Variablen das View wechsle und nach Zeit wieder zurück aufs Standardview.
on("hm-rpc.1.xxxxxxxxx.15.STATE", function (obj){ if (obj.newState.val === true || obj.newState.val === "true") { setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "main/Kamera2"}'); // oder //setState("vis.0.control.instance", 'FFFFFFFF'); //setState("vis.0.control.data", 'DemoView'); //setState("vis.0.control.command", 'changeView'); // muss immer letzte sein // Nach 10 Sekunden, zeige wieder Start View setTimeout(function () { setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "main/Tablet"}'); }, 60000); } });
Davon ist dann wohl der untere Teil um wieder in den Standardview zu kommen.
setTimeout(function () { setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "main/Tablet"}'); }, 60000);
Wenn ich jetzt wüsste wie ich dem script sagen kann das ich per Touchscreen den View gewechselt habe, dann könnte ich es mit dem Teil den ich schon habe sicher wieder zurückwechseln.
Danke für eure Hilfe,
Sebbo
-
Hallo Sebbo,,
versuche es mit dem http://forum.iobroker.net/viewtopic.php?f=21&t=1016&sid=83e24bb84a8a7e16571b6831dcc3177c#p8035 zum Aktualisieren über das ack
Dein Skript mal abgewandelt:
function view_wechsel () { setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "main/Kamera2"}'); // oder //setState("vis.0.control.instance", 'FFFFFFFF'); //setState("vis.0.control.data", 'DemoView'); //setState("vis.0.control.command", 'changeView'); // muss immer letzte sein // Nach 10 Sekunden, zeige wieder Start View setTimeout(function () { setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "main/Tablet"}'); }, 60000); } // Gerät überwachen on("hm-rpc.1.xxxxxxxxx.15.STATE", function (obj){ if (obj.newState.val === true || obj.newState.val === "true") view_wechsel(); }); // manuellen Viewwechsel auslösen createState('Viewwechsel', {name: 'Trigger für manuellen Vis Viewwechsel'}); on('javascript.0.Viewwechsel', function (obj) { // Falls ein Kommando und trigger ist true (was eigentlich überflüssig ist). Es kann kein Kommando mit false kommen if (!obj.newState.ack && obj.newState.val) { view_wechsel(); } });
Auch hier wieder der Hinweis: Da createState manchmal nicht sofort nach dem Speichern des Skriptes reagiert, bitte den Javascript Adapter einmal neu starten.
Und dann in Vis einen Knopf erstellen, der bei Klick aktualisiert (oder folgendes Widget importieren):
[{"tpl":"tplBasicState","data":{"oid":"javascript.0.Viewwechsel","visibility-cond":"==","visibility-val":1,"value":"true","html":"[View wechseln]","name":"Viewwechsel"},"style":{"left":"796px","top":"91px","z-index":"40","color":"rgba(250,250,250,0.6)","font-family":"Futura","font-style":"","font-size":"12px","width":"29px","height":"14px"},"widgetSet":"basic"}]
Gruß
Pix
-
Hallo Pix,
erstmal danke. Leider habe ich es noch nicht ganz verstanden. Ich habe das Widget jetzt in allen Views eingefügt außer auf meinem Hauptview.
Das script habe ich ausgetauscht. Leider wechselt der keiner der Views automatisch zurück auf den Hauptview.
Hab ich da irgendwas falsch verstanden?
Gruß, Sebbo