NEWS
[gelöst]Automatischer Vis Wechsel durch Status Änderung
-
Danke für die Antworten.
in meinem Script habe ich unter IP-Adresse meine 192.XXXX eingetragen.
Ich werde es heute Mittag mit der Änderung von Bluefox versuchen - Rückmeldung folgt.
setState("vis.0.control.command", '{"instance": "*", "command": "changeView", "data": "Garten-Cam"}');
-
Leider kein Erfolg - es ändert sich weiterhin nichts. :roll:
Der code lautet nun:
on({id: 'sonoff.0.Kinderzimmerlicht.POWER', change: "any"}, function (obj) { setState("vis.0.control.command", '{"instance": "*", "command": "changeView", "data": "Garten-Cam"}'); // oder //setState("vis.0.control.instance", '*'); //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": "*", "command": "changeView", "data": "Allgemein"}'); }, 10000); });
18:27:35.741 [info] javascript.0 Stop script script.js.Manni_Schalter.View_Wechsel
18:27:35.763 [info] javascript.0 Start javascript script.js.Manni_Schalter.View_Wechsel
18:27:35.764 [info] javascript.0 script.js.Manni_Schalter.View_Wechsel: registered 1 subscription and 0 schedules
18:28:03.126 [warn] javascript.0 at Object. (script.js.Manni_Schalter.View_Wechsel:2:12)
18:28:13.128 [warn] javascript.0 at Object. (script.js.Manni_Schalter.View_Wechsel:9:23)
Zum besseren Verständnis meiner View hier mal ein Bild davon.- vielleicht erkennt man so einen Fehler in der Abhandlung.
Wenn der untere Schalter Alarm an geht - wird der Status von dem sonoff.0.Kinderzimmerlicht.POWER von true auf fals geschaltet - das klappt.
Nun soll von dem Tab Allgemein/view auf das Tab/view Garten-Cam ( Rote Pfeile) gewechselt werden- das klappt nun nicht.
Über den den Button Garten Ansicht kann ich Manuell auf die Seite Garten-Cam wechsel- das ist ok.
Ich habe grade auch nochmal eine Aktualisierung der vorhanden Adapter durchgeführt - das brache hier aber auch kein erfolg.
Vielleicht fällt euch ja auch eine andere Möglichkeit ein wie ich meinen Wunsch umsetzen könnte.
Ein Manuellen wechsel per Alexa würde ich später gerne auch noch umsetzen.- das ist aber erst prio 2
http://up.picr.de/32511621ho.jpg" /> -
Leider kein Erfolg - es ändert sich weiterhin nichts. :roll:
Der code lautet nun:
on({id: 'sonoff.0.Kinderzimmerlicht.POWER', change: "any"}, function (obj) { setState("vis.0.control.command", '{"instance": "*", "command": "changeView", "data": "Garten-Cam"}'); // oder //setState("vis.0.control.instance", '*'); //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": "*", "command": "changeView", "data": "Allgemein"}'); }, 10000); });
18:27:35.741 [info] javascript.0 Stop script script.js.Manni_Schalter.View_Wechsel
18:27:35.763 [info] javascript.0 Start javascript script.js.Manni_Schalter.View_Wechsel
18:27:35.764 [info] javascript.0 script.js.Manni_Schalter.View_Wechsel: registered 1 subscription and 0 schedules
18:28:03.126 [warn] javascript.0 at Object. (script.js.Manni_Schalter.View_Wechsel:2:12)
18:28:13.128 [warn] javascript.0 at Object. (script.js.Manni_Schalter.View_Wechsel:9:23)
Zum besseren Verständnis meiner View hier mal ein Bild davon.- vielleicht erkennt man so einen Fehler in der Abhandlung.
Wenn der untere Schalter Alarm an geht - wird der Status von dem sonoff.0.Kinderzimmerlicht.POWER von true auf fals geschaltet - das klappt.
Nun soll von dem Tab Allgemein/view auf das Tab/view Garten-Cam ( Rote Pfeile) gewechselt werden- das klappt nun nicht.
Über den den Button Garten Ansicht kann ich Manuell auf die Seite Garten-Cam wechsel- das ist ok.
Ich habe grade auch nochmal eine Aktualisierung der vorhanden Adapter durchgeführt - das brache hier aber auch kein erfolg.
Vielleicht fällt euch ja auch eine andere Möglichkeit ein wie ich meinen Wunsch umsetzen könnte.
Ein Manuellen wechsel per Alexa würde ich später gerne auch noch umsetzen.- das ist aber erst prio 2
http://up.picr.de/32511621ho.jpg" />`Bei mir geht. Baue LOG vor dem setState -
> Baue LOG vor dem setState
ich weiss nun nicht wie ich LOG vor dem setState bauen soll - kenne mich wie gesagt so nicht in der script Erstellung aus.
Im Iobroker Admin Log steht folgendes:
javascript.0 2018-04-26 20:21:20.117 warn at Object. (script.js.Manni_Schalter.View_Wechsel:9:23) javascript.0 2018-04-26 20:21:20.115 warn State "vis.0.control.command" not found javascript.0 2018-04-26 20:21:10.114 warn at Object. (script.js.Manni_Schalter.View_Wechsel:2:12) javascript.0 2018-04-26 20:21:10.110 warn State "vis.0.control.command" not found javascript.0 2018-04-26 20:20:19.759 warn at Object. (script.js.Manni_Schalter.View_Wechsel:9:23) javascript.0 2018-04-26 20:20:19.757 warn State "vis.0.control.command" not found javascript.0 2018-04-26 20:20:09.755 warn at Object. (script.js.Manni_Schalter.View_Wechsel:2:12) javascript.0 2018-04-26 20:20:09.751 warn State "vis.0.control.command" not found javascript.0 2018-04-26 20:19:39.999 info script.js.Manni_Schalter.View_Wechsel: registered 1 subscription and 0 schedules javascript.0 2018-04-26 20:19:39.994 info Start javascript script.js.Manni_Schalter.View_Wechsel
-
Der Fehler wurde gefunden.
Danke für deine mühe Bluefox - du hattest recht, das Script war soweit Richtig.
Es gibt aber noch ein Kleinigkeit im Script - wo ich Hilfe benötige.
Fehler:
Ich hatte vor Projekt beginn die Vis Version 1.0.4 als ich dann mit dem Vis Wechsel begann habe ich ein Update auf Version 1.1.1 gemacht.
Heute viel auf das mein neu gebauter Schalter Widget keine Eigenschaften mehr Angezeigt hat.
~~http://up.picr.de/32519460dl.jpg" />
Der Schalter ist genannte Sonoff.0.Kinderzimmer…
Ein Freund sagte mir vorhin das er die Version 1.1.4 am laufen hätte.
Das war im Grunde der Fehler.
Mit dem Update auf 1.1.4 hat der schalter / Widget wieder seine Eigenschaften und reagiert somit auf das Script.
Der Wechsel lief direkt nach dem Status wechsel des Sonoff - soweit ok.
~~http://up.picr.de/32519500rb.jpg" />
Nun noch mein Kleines Problem.
Der View wechsel auf die Seite Garten-Cam läuft nun richtig ab - Alarm wurde also erkannt - schalter geschaltet - view wechsel.
Nun wird die Seite Garten-Cam solange angezeigt bis der schalter auf Alarm aus - true geschaltet wird.
Der wechsel auf Allgemein funktioniert dann auch noch Richtig- so sollte es bleiben alles ok.
Fehler:
Nach einigen Minuten wechselt die View Ansicht nun aber wieder auf die Garten-Cam ohne das der schalter Alarm (sonoff ) erkannt wird - das ist Falsch. Diese Anzeigt bleibt dann auf Garten-Cam stehen.
Es sollte aber die Seite Allgemein angezeigt bleiben- bis zum nächsten Status wechsel.
****Vielleicht könnte man noch eine Zyklische Abfrage vom Status mit einbauen :?:
Oder besser, weiß jemand warum der ungewollte wechsel auf Garten-Cam durchgeführt wird, und wie man es abschalten könnte :?:****
Die Nächste Herausforderung wäre dabei noch das ich 2 Kameras überwachen/Anzeigen möchte.
Der zweite schalter sagen wir mal sonoff 2 sollte dann die View Hof-Cam schalten.
Tja und nun dürfen sich bei Aktionen nicht stören :?
Das ist mein Aktueller Code: Edit - das war nur ein versuch - grade gemerkt das es so gar nicht läuft also ignorieren
on({id: 'sonoff.0.Kinderzimmerlicht.POWER', change: "any"}, function (obj) { setState("vis.0.control.command", '{"instance": "false", "command": "changeView", "data": "Garten-Cam"}'); // oder //setState("vis.0.control.instance", '*'); //setState("vis.0.control.data", 'DemoView'); //setState("vis.0.control.command", 'changeView'); // muss immer letzte sein // Nach 10 Sekunden, zeige wieder Start View setState("vis.0.control.command", '{"instance": "true", "command": "changeView", "data": "Allgemein"}'); });
So läuft der wechsel - allerdings nicht nach den festen vorgaben vom schalter zustand false oder true.
Und der Timeout müsste raus - das hatte ich oben im script versucht- aber läuft gar nicht.
on({id: 'sonoff.0.Kinderzimmerlicht.POWER', change: "any"}, function (obj) { setState("vis.0.control.command", '{"instance": "*", "command": "changeView", "data": "Garten-Cam"}'); // oder //setState("vis.0.control.instance", '*'); //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": "*", "command": "changeView", "data": "Allgemein"}'); }, 80000); }); ````~~~~
-
Nachtrag,
hier sieht man das der schalter richtig schaltet.
Die View Ansicht müsste am Schluss auf Allgemein stehen bleiben.
Wechselt aber später nach ein paar min auf Garten-Cam
http://up.picr.de/32520119lk.jpg" /> -
Zusatz Info:
Es ist ein Zeitliches Muster bei den ungewollten View wechsel zu erkennen.
Hier die Uhrzeiten und der Verlauf.
Die Ansicht Allgemein bleibt immer für 03:40 min angezeigt bis die Ansicht auf Garten-Cam wechselt.
Die Ansicht Garten Cam bleibt dann immer für 01:20 min angezeigt bis die Ansicht wieder auf Allgemein wechselt.
So plus minus 5 sec.
Ich suche noch den Grund dafür - eigentlich sollte hier kein Wechsel stattfinden.
Das geht so immer weiter:
View Ansicht Allgemein 0:09:25 Uhr dann wechsel auf Garten Cam.
View Ansicht Garten-Cam 0:13:05 Uhr dann wechsel auf Allgemein.
View Ansicht Allgemein 0:14:25 Uhr dann wechsel auf Garten Cam.
View Ansicht Garten-Cam 0:18:05 Uhr dann wechsel auf Allgemein.
View Ansicht Allgemein 0:19:25 Uhr dann wechsel auf Garten Cam.
View Ansicht Garten-Cam 0:23:05 Uhr dann wechsel auf Allgemein.
View Ansicht Allgemein 0:24:25 Uhr dann wechsel auf Garten Cam.
-
Ich versuche den wechsel der Views mal über Blockly- vieleicht kommt man so weiter. :roll:
Leider will das nicht klappen - seht ihr den Fehler?
http://up.picr.de/32526872kn.jpg" /> -
Auch wenn ich zum Schluss nur noch mit mir selbst schreibe, der View Wechsel über Status wechsel wurde wie folgt gelöst:
Vielleicht kann das später noch jemand gebrauchen.
~~http://up.picr.de/32532459ya.png" />
Im Funktionsblock wurden das entsprechende Script für den jeweiligen Seiten Aufruf eingefügt.
Seite 1 Garten:
~~http://up.picr.de/32532470wl.png" />
Seite 2 Allgemein
http://up.picr.de/32532473mw.png" />~~~~ -
Vielen lieben Dank. Habe es gerade in Blockly nachgebaut und es funktioniert perfekt!!