NEWS
[gelöst] VIS fernsteuern / view automatisch wechseln
-
Hi,
ich würde gerne meine VIS views fernsteuern.
Auf der GitHub Seite habe ich etwas dazu gefunden. Allerdings komme ich hier noch nicht weiter. Mir fehlt irgendwie der Anfang.
Vielleicht hier mal meine 2 Ideen.
A) Wenn es bei mir an der Haustür klingelt (Homematic Taster), würde ich gerne eine bestimmte view einblenden.
B) Nach einer bestimmten Zeit soll wieder der Start view angezeigt werden.
Hat jemand etwas in dieser Richtung schon umgesetzt?
Wo kann ich hier anfangen?
gruß
Michael
PS: ioBroker kann echt süchtig machen
-
Hi,
ich würde gerne meine VIS views fernsteuern.
Auf der GitHub Seite habe ich etwas dazu gefunden. Allerdings komme ich hier noch nicht weiter. Mir fehlt irgendwie der Anfang.
Vielleicht hier mal meine 2 Ideen.
A) Wenn es bei mir an der Haustür klingelt (Homematic Taster), würde ich gerne eine bestimmte view einblenden.
B) Nach einer bestimmten Zeit soll wieder der Start view angezeigt werden.
Hat jemand etwas in dieser Richtung schon umgesetzt?
Wo kann ich hier anfangen?
gruß
Michael
PS: ioBroker kann echt süchtig machen `
Es geht über Script:on("hm-rpc.0.Haustür_klingelt", function (obj){ if (obj.newState.val === true || obj.newState.val === "true) { setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "TürView"}'); // 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": "StartView"}'); }, 10000); } });
-
Hallo,
hat jemand schon mal das Scipt angewendet?
Ich bin erst am Anfang mit ioBroker, hatte mit DashUI ein Scrpit dafür, war einfach mit ScriptGUI zu machen.
-
Guten Abend,
ich hol den alten Fred mal aus dem Keller, weil ich Denke hier passt es am besten.
Das mit der View umschalten per Ereignis klappt ganz Wunderbar.
Jetzt aber die nächste Frage.
Kann ich vor dem Umschalten die aktuelle View auslesen?
Eventuell von mehreren Tablets, die dürften doch sicher eine Eindeutige-ID bekommen haben, oder?
Beste Grüße Andreas
-
da häng ich mich mal dran :geek:
-
Guten Abend Arteck,
ich habs selber heraus gefunden, nur noch nicht hier Erwähnt.
Unter Objekte findest du
vis.0.control.data
und da siehst du das letzte aufgerufene View.
Gruß Andreas
-
Guten Abend Arteck,
ich habs selber heraus gefunden, nur noch nicht hier Erwähnt.
Unter Objekte findest du
vis.0.control.data
und da siehst du das letzte aufgerufene View.
Gruß Andreas `
das letzte pro Gerät ?? oder allgemein ?? habe 3 Tablets bei mir laufen..
-
das gerät steht bei "instance"
FFFF…. bedeutet alle Geräte.
-
das ist immer die letzte View die da steht.
Da gibt es auch noch den Punkt Instanz. Wenn du kein Appl Gedöns hast steht da auch etwas sinnvolles. :mrgreen:
Das könntest du ja bei aktualisierung in Variablen speichern lassen und die letzte View dazu.
So könnte man dann jedes Tablet wieder auf die Ursprungsview zurück schalten.
-
Jain, Bluefox hat für alle Geräte jetzt das '*' spendiert.
Geht schneller
-
Moin Leute,
auch wenn der Beitrag schon etwas älter ist hoffe ich das dies Script bei jemanden läuft der mir was berichten kann.
Das Script läuft bei mir auch, aber:
-
die Instance nimmt er nur von meinem PC, das tablet an der wand hat anscheinend keine ?!
-
Bei aktivierung durch einen Taster ändert sich leider nix bei mir. Nicht mal in den Datenpunkten zeigt er eine Veränderung an.
Kann es sein das in dieser Codezeile ein Fehler ist? Klingt irgendwie nicht sinnvoll:
if (obj.newState.val === true || obj.newState.val === "true") {
-
-
Hallo galferiz,
versuch es einmal mit dieser Startzeile, natürlich auf deinen Klingeltaster gemünzt.
on({id: 'javascript.0.States.Doorbell', change: "any"}, function (obj) {
dann lass die Prüfung auf True raus.
So reicht eine Änderung des Datenpunktes. So läuft das bei mir bestens.
Die Instanz hab ich immer von Android und PC.
Und heute beim Testen sogar mal vom iGedöns :lol:
das war aber auch das erste mal, sonst unbekannt.
Gruß Andreas
-
on({id: 'hm-rpc.0.NEQ1000713.2.PRESS_SHORT', change: "any"}, function (obj) { //setState("vis.0.control.command", '{"instance": "xyz", "command": "changeView", "data": "LCars/wetter"}'); // oder setState("vis.0.control.instance", 'xyz'); setState("vis.0.control.data", 'LCars/wetter'); 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": "xyz", "command": "changeView", "data": "LCars/main"}'); }, 10000); });
xyz - durch instance ersetzt.
Leider geht es nicht.
Man sieht das er kurz arbeitet, aber ohne Output auf dem Tablet.
Merkwürdig.
Wenn ich die View am Tablet wechsel steht aber im Datenpunkt immer Instanze - notdefined, die View wird aber richtig angezeigt.
Eventuell hängt das damit zusammen?!
Die Instance kann man ja im VIs-Editor erzeugen, aber woher weis ich welche der Tabletbrowser nutzt ?
Hier denke ich, könnte mein Fehler liegen.
-
Ok, wer lesen kann ist klar im vorteil.
control Instanz auf "FFFFFFF" geändert, was dank der guten Doku von Rainer super beschrieben ist,
und schon geht es
Danke Andreas
-
Moin,
wollte mich da gerade auch mal reinarbeiten.
Leider steht bei mir unter objekte vis nur vis.0.app und vis.0.command sonst nix.
Unter Zustände habe ich sowas aber nicht unter Objekte.
vis.0.control.data vis.0 vis.0.control.data Home/page2 true web.0
-
HI,
ich das script unter common abgelegt und auch unter vis.o control erscheint der entsprechende Eintrag.
Nur die View wechselt am Tablett bzwe an beiden nicht.
Muss in der VIS App etwas angepasst werden ??
Oder habe ich in dem Script was falsch eingestellt?
Danke
Tobias
! on({id: 'hm-rpc.0.NEQXXX6446.1', change: "any"}, function (obj) {
! //setState("vis.0.control.command", '{"instance": "f3.ff055", "command": "changeView", "data": "main/Kameras"}');
! // oder
! setState("vis.0.control.instance", 'f3.ff055');
! setState("vis.0.control.data", 'main/Kameras');
! 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": "f3.ff055", "command": "changeView", "data": "main/Kameras"}');
! }, 10000);
! }); -
Hallo,
ich hatte das gleiche Problem wie tobih83.
Die View-Einträge im Objekt-tree wechselten sich, nur am Tablett tat sich in der Visu nichts.
Lösung war bei mir, den aktiven Vis-Editor zu schließen, danach wechselte die View auch auf dem Tablett.
Gruß
Frank
-
Guten morgen zusammen,
ich möchte auch, dass bei mir auf dem Tablet nach einem Timeout die bestimmte View angezeigt wird. Ich habe das Script aus dem Post #2 im VIS Editor bei dieser View unter "Scripte" eingefügt, passiert nichts. Gibt es ein Script nur auf Timeout und soll es im VIS Editor eingesetzt werden oder bei Admin unter Scripte?
Vielen Dank im Voraus,
Ole
-
Das Script muss als Script im Javascript Adapter angelegt werden. Nicht im VIS Editor!
-
Hat eigentlich schon jemand eine Lösung für das Problem gefunden,
daß jedes gerät in den zuletzt verwendeten View zurückspringt nachdem die Zeit abgelaufen ist ?