NEWS
*gelöst* View Wechsel nach zeit
-
Hallo,
In der Facebook Gruppe wurde eine Frage gestellt die mich auch interessiert, aber leider gab es dazu keine Antwort bzw Lösung. Von euch jemand eine Idee?
Hier die Frage von Facebook kopiert:
Halo zusammen, Ich möchte gerne zwei Views automatisch ständig wechseln lassen. Im Forum fand ich nur immer "per wischen", "per Fensterkontakt", usw. Das ist alles nicht das Richtige. Einfach nur eine Zeitschleife, die zwei Views im Wechsel aufruft. Leider habe ich von den Scripten noch null Ahnung. Kann mir da jemand weiterhelfen ? LG und Danke Jens
Gruß Danyel
-
Hallo,
ich habe das so gelöst.
Ich wechsle nach Sonnenunter- /aufgang die View.
schedule({astro: "sunset", shift: 15}, function () { changeView(30000); log(" sunset --> Switch View"); }); schedule({astro: "sunriseEnd", shift: 20}, function () { //sonnenaufgang changeView(30000); log(" sunriseEnd --> Switch View "); }); function changeView(timeout) { if ( getState("javascript.0.astro.night"/*astro.night*/).val ) setTimeout(function () { setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "main/rebuiledDark"}'); }, timeout); if ( !getState("javascript.0.astro.night"/*astro.night*/).val ) setTimeout(function () { setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "main/rebuiled"}'); }, timeout); }
für einen zeitlichen Wechsel einfach ein schedule eiführen.
schedule("*/20 * * * *", function () { // alle 20 Minuten View echseln changeView(30000); });
-
OK!?
Erstmal danke.
Versteh es bloß noch nicht.
Habe in der Küche einen Monitor mit raspi 3 auf dem Kiosk OS läuft. Bewegungsmelder schaltet Monitor an.
Dort kann ich in der config vom raspi einen link angeben zu einer view die dann gezeigt wird.
Wo trage ich nun das Script ein? Unter scripte oder irgendwo im vis?
Steh gerade bisl aufm Schlauch.
Gruß Danyel
-
Du musst dir unter VIS und dann Scripte ein neues Script erstellen.
Und dann oben genanntes eintragen.
Speichern und ausführen nicht vergessen.
Und vorher an deine Bedürfnisse anpassen.
P.S. habe auch noch diese Seite gefunden.
-
Hab das jetzt mal so übernommen aber leider tut sich da nichts
schedule({astro: "sunset", shift: 15}, function () { changeView(30000); log(" sunset --> Switch View"); }); schedule({astro: "sunriseEnd", shift: 20}, function () { //sonnenaufgang changeView(30000); log(" sunriseEnd --> Switch View "); }); schedule("*/20 * * * *", function () { // alle 20 Minuten View echseln changeView(30000); }); function changeView(timeout) { if ( getState("javascript.0.astro.night"/*astro.night*/).val ) setTimeout(function () { setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Kueche/Kueche1"}'); }, timeout); if ( !getState("javascript.0.astro.night"/*astro.night*/).val ) setTimeout(function () { setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Kueche/Kueche2"}'); }, timeout); }
View 1 => http://192.168.178.80:8082/vis/index.ht … he#Kueche1
View 2 => http://192.168.178.80:8082/vis/index.ht ... he#Kueche2
Wo ist mein fehler?
Gruss
-
Hier nochmal ein Link zu einem ähnlichen Thema: <url url="https://forum.iobroker.net/viewtopic.php?f=30&t=7930&p=84436#p84436">
[https://forum.iobroker.net/viewtopic.php?f=30&t=7930&p=84436#p84436 " target="_blank">](</s><LINK_TEXT text=)[<link_text text="
https://forum.iobroker.net/viewtopic.p … 36#p84436
">https://forum.iobroker.net/viewtopic.php?f=30&t=7930&p=84436#p84436</link_text>](</s><LINK_TEXT text=)</url> -
Ich möchte aber nicht wechseln wenn irgendwas passiert (Jedenfalls jetzt noch nicht)
Sondern einfach alle z.b. 2 minuten
Gruss
-
@ringdingringding:Hab das jetzt mal so übernommen aber leider tut sich da nichts
schedule({astro: "sunset", shift: 15}, function () { changeView(30000); log(" sunset --> Switch View"); }); schedule({astro: "sunriseEnd", shift: 20}, function () { //sonnenaufgang changeView(30000); log(" sunriseEnd --> Switch View "); }); schedule("*/20 * * * *", function () { // alle 20 Minuten View echseln changeView(30000); }); function changeView(timeout) { if ( getState("javascript.0.astro.night"/*astro.night*/).val ) setTimeout(function () { setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Kueche/Kueche1"}'); }, timeout); if ( !getState("javascript.0.astro.night"/*astro.night*/).val ) setTimeout(function () { setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "Kueche/Kueche2"}'); }, timeout); }
View 1 => http://192.168.178.80:8082/vis/index.ht … he#Kueche1
View 2 => http://192.168.178.80:8082/vis/index.ht ... he#Kueche2
Wo ist mein fehler?
Gruss `
Also laut deinen links heisst dein View "Kueche#Kueche1" , richtig ?
Im Script steht aber "Kueche/Kueche1" also mit einem "Slash".
-
Nee das war es leider nicht!
Wäre auch zu einfach gewesen
Gruss
-
Keiner eine Idee?
Hat das wirklich noch keiner gebraucht oder umgesetzt?
Gruß
-
Idee schon, habe das anders gelöst.
lege dir einen Datenpunkt Viewwechsel an den du per Cronjob alle x Minuten
true und false schaltest.
Im Blockly erstellst du ein Script Viewwechsel.
In dem sagst du, wenn Datenpunkt Viewwechsel ist true dann schalte um auf View x,
wenn Datenpunkt Viewwechsel ist false dann schalte um auf View x
Bild anbei.
5230_viewwechsel_v10.jpg -
Hallo,
es gibt noch eine Möglichkeit, die dann den Wechsel mehrerer Views als nur zwei ermöglicht (Diashow):
Im JavaScript Adapter ein Skript anlegen und darin einen Datenpunkt Number anlegen (createState). Dann per Intervall eine Zahl hochzählen und in den Datenpunkt schreiben (setInterval).
Bitte keine Objekte unter Vis.0 oder so anlegen, wie das oben empfohlen wurde.
Dann in Vis ein neues Widget anlegen (View 8 heißt das, glaube ich). Das Widget zeigt je nach Zahlenwert der Steuer ID eine in den Einstellungen definierte View.
Fertig.
Zusammengefasst:
Objekt vom Typ Nummer ändert in einem Intervall den Wert 0,1,23,… wieder 0,1,2...
Ein VIS Widget zeigt abhängig vom Wert eine definiertes Widget.
Es gibt auch noch andere *8 Widgets. Zum Beispiel zum anzeigen von HTML
Gruß
Pix
-
Ok aber wie sag ich der view das sie wechseln soll auf view2 und wieder zurück auf view1 irgendwann?
Da fehlt noch der klick in meinem kopf
-
Solange du nur 2 Views wechseln möchtest geht das wie von mir Beschrieben
mit true und false.
Möchtest du mehr View schalten übergebe dem Datenpunkt eine Number.
Bild anbei.
5230_viewwechsel_v11.jpg -
@ringdingringding:Ok aber wie sag ich der view das sie wechseln soll auf view2 und wieder zurück auf view1 irgendwann?
Da fehlt noch der klick in meinem kopf `
Wie gesagt, es gibt zwei Möglichkeiten:-
Das Skript erzeugt und füllt eine Steuervariable, die von VIS ausgewertet wird
-
Das Skript setzt selbst den Befehl zum Viewwechsel ab. Es gibt also dem Adapter Vis den Befehl „Wechsle jetzt auf die View XXXX“
Ich übe beide Varianten im Einsatz. Letzteres ereignisgesteuert (wenn ich gehe oder komme), ersteres für eine Art Diashow. Bei mir läuft nur ein Intervall (10s), das ich eben nicht nur für die Diashow (Webcams) nutze, sondern auch an anderer Stelle zB für Wechselanzeigen von Wetterdaten oder Börsenkurse.
Pix
-
-
Hab die Lösung jetzt hier gefunden.
Ich danke euch für die Hilfe
Gruß und schönen rest Sonntag
-
@pix hi könntest du mit bitte dieses Diashow Programm schicken das wäre sehr freundlich oder wenn du eine bessere Lösung gefunden hast wäre ich auch für neue Sachen offen vielen dank schon mal im Voraus.
-
@lws-naja Hi, mal etwas Werbung: Ich habe mittlerweile einen Diashow bzw. Slideshow-Adapter gebaut. Er kann in der VIS Fotos aus unterschiedlichen Quellen anzeigen, kannst es ja mal anschauen:
-
@aggroralf
Danke das hilft mir schon mal weiter allerdings kann ich nur die Bing Bilder öffnen