NEWS
[Gelöst] Aus verschiedenen Views automatisch auf den Mainview zurück
-
Hallo,
ich habe ein Problem mit meinem Script. Vis soll nachdem ich auf einen View geschaltet habe, automaisch zum Mainview zurück kehren.
Dazu habe ich im Forum schon ein Script gefunden. Das habe ich in einem BASIC HTML Element im MAinview eingegeben.
Der Code sieht so aus://Auf Main zurückschalten
Leider schalte VIS jetzt immer auf Main zurück, unabhängig davon welchen anderen View ich öffne und immer nach 20 Sekunden.
Wo liegt mein Denkfehler. Es soll nur von den Kameraviews und vom Sonos View zurückgewechselt werden.
Gruß,
Alfred
-
Hi Alfred,
ich kann dir jetzt nicht sagen was an deinem Code falsch ist und auch nicht ob das funktioniert wenn man das in einem Html-Widget einbindet.
Aber ich hab da mal schnell was gebastelt, wenn du im IoBroker unter Script ein Script mit folgendem Inhalt erstellst:
on("vis.0.control.data", function (dp){/*Data for control vis*/ if(dp.state.val == "Wandtablet/Licht" || dp.state.val == "Wandtablet/Klima") { setStateDelayed("vis.0.control.command", '{"instance": "*", "command": "changeView", "data": "Wandtablet/Home"}', 5000); } if(dp.state.val == "Wandtablet/Sonos") { setStateDelayed("vis.0.control.command", '{"instance": "*", "command": "changeView", "data": "Wandtablet/Home"}', 10000); } });
sollte es funktionieren (Bei mir im Browser tut es das zumindest).
Und wenn du nur die Seite Sonos länger als alle Anderen sehen möchtest sollte es so gehen:
on("vis.0.control.data", function (dp){/*Data for control vis*/ if(dp.state.val == "Wandtablet/Sonos"){ setStateDelayed("vis.0.control.command", '{"instance": "*", "command": "changeView", "data": "Wandtablet/Home"}', 10000); } else{ setStateDelayed("vis.0.control.command", '{"instance": "*", "command": "changeView", "data": "Wandtablet/Home"}', 5000); } });
Die Zeit und die Wunschseiten deinen Wünschen entsprechend anpassen und testen (Hoffe es klappt).
Gruß
Peoples
-
Hi Alfred,
Aber ich hab da mal schnell was gebastelt, wenn du im IoBroker unter Script ein Script mit folgendem Inhalt erstellst:
on("vis.0.control.data", function (dp){/*Data for control vis*/ if(dp.state.val == "Wandtablet/Licht" || dp.state.val == "Wandtablet/Klima") { setStateDelayed("vis.0.control.command", '{"instance": "*", "command": "changeView", "data": "Wandtablet/Home"}', 5000); } if(dp.state.val == "Wandtablet/Sonos") { setStateDelayed("vis.0.control.command", '{"instance": "*", "command": "changeView", "data": "Wandtablet/Home"}', 10000); } });
Gruß
Peoples `
Hallo Peoples,
danke für Deinen Vorschlag.
ich habe den Code auf mein System angepasst:
on("vis.0.control.data", function (dp){/*Data for control vis*/ if(dp.state.val == "main/Camera_Eingang" ) { setStateDelayed("vis.0.control.command", '{"instance": "*", "command": "changeView", "data": "main/Home"}', 20000); } if(dp.state.val == "main/Sonos") { setStateDelayed("vis.0.control.command", '{"instance": "*", "command": "changeView", "data": "main/Home"}', 60000); } if(dp.state.val == "main/Heizung") { setStateDelayed("vis.0.control.command", '{"instance": "*", "command": "changeView", "data": "main/Home"}', 5000); } if(dp.state.val == "main/Tanken") { setStateDelayed("vis.0.control.command", '{"instance": "*", "command": "changeView", "data": "main/Home"}', 40000); } });
main/Home müsste richtig sein, so steht es jedenfals im Datenpunkt.
Leider passiert dann … gar nichts.
Hier auch noch ein Screenshot wie ich das Script eingegeben habe. Der Fehler liegt ja meist zwischen den Ohren
Gruß,
Alfred
-
ich glaube was peoples meint ist ein Script welches unter Scripte im ioBroker eingefügt wird und nicht im vis.
Sein Script reagiert dann auf eine Veränderung des Datenpunkt "vis.0.contol.data"
-
ich glaube was peoples meint ist ein Script welches unter Scripte im ioBroker eingefügt wird und nicht im vis.
Sein Script reagiert dann auf eine Veränderung des Datenpunkt "vis.0.contol.data" `
Super, das war es.Jetzt klappt es.
Danke Euch beiden!
Gruß,
Alfred
-
Hallo,
ich möchte genau das gleiche erreichen. Prinzipiell funktioniert es auch. Das view wird automatisch zurück gewechselt. Leider wird es aber nicht angezeigt denn mainview hat im CSS plötzlich "display:none;" stehen.
on("vis.0.control.data", function (dp){ if(dp.state.val == "myproject/tablet") { setStateDelayed("vis.0.control.command", '{"instance": "*", "command": "changeView", "data": "mainview"}', 5000); } });
Was mache ich falsch?
vg
-
Hallo,
ich habe bei mir auch das Script eingebunden. Leider funktioniert es noch nicht so, wie ich es mir vorstelle.
Zum testen habe ich bisher zwei Seiten eingegeben.
Es wechselt von "PV-Anlage" zu "Musik" und dann erst zur Startseite.
Kann man da noch ein "oder" einbinden?
on("vis.0.control.data", function (dp){/*Data for control vis*/ if(dp.state.val == "main/PV-Anlage") { setStateDelayed("vis.0.control.command", '{"instance": "*", "command": "changeView", "data": "main/Startseite"}', 10000); } if(dp.state.val == "main/Musik") { setStateDelayed("vis.0.control.command", '{"instance": "*", "command": "changeView", "data": "main/PV-Anlage"}', 10000); } });
-
Hey!
Habe eure Hilfe auch nutzen können! Für mich, einfachste Lösung ist folgende.
Einfach ein Javascript unter SKRIPTE erstellt (Ich hab es mal back2main genannt) mit folgendem Inhalt:
on("vis.0.control.data", function (back2main){/*Data for control vis*/ if( back2main.state.val != "main/Home" ) { setStateDelayed("vis.0.control.command", '{"instance": "*", "command": "changeView", "data": "main/Home"}', 60000); } });
Das bewirkt, dass von jeder (Unter-)Seite zurück zum Home gewechselt wird nach 60 Sek. !
BTW… wenn ich über den web-adapter gehe und die VIS aufrufe, wird direkt eine "Unterseite" geöffnet.
Weiß jemand, wie man sozusagen die indexseite umstellt und die Startseite wechseln kann?
Gruß,
Raidy
-
@raidy007 sagte in [Gelöst] Aus verschiedenen Views automatisch auf den Mainview zurück:
vis.0.control.data", function
ich greif das Thema noch mal auf.
das Skript funktioniert einwandfrei raidy007 danke dafür. ich denke du bist auch auf die Lösung gekommen.
und für alle anderen habe ich hier einen anderen code für eine View Steuerung Ereignis abhängig.
gefunden auf smarthome-tricks.deon('dwd.0.warning.severity', function (obj) { if (!obj.state.ack && obj.state.val) { if ( obj.state.val > 0 ) { setState("vis.0.control.instance", "FFFFFFFF"); setState("vis.0.control.data", "main/viewWetterwarnungen"); setState("vis.0.control.command", 'changeView'); } } });
ich wollte mich einmal daran machen ein Skript zu erstellen das einige täglichen Ereignisse beinhaltet (alltäglich Sachen!) und es anpassbar machen.
hat da schon jemand einmal was angefangen worauf ich aufbauen kann?