NEWS
Skript um bei view in Widget den view zu wechseln
-
Hallo zusammen,
nachdem ich ja seit gestern anfange mich in JS einzuarbeiten stehe ich schon wieder vor der nächsten Herausforderung.
Ich möchte gerne, wenn sich eine Variable von false auf true ändert, auch den View innerhalb eines "View in Widget" entsprechend wechseln.
Die Variable habe ich, was mir noch fehlt ist der Teil mit dem Viewwechsel in diesem speziellen Widget.
Folgendes sollten den gesamten View wechseln, aber leider nicht den View innerhalb des Widgets:
function view_wechsel () { setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "LiNaDo/Heizung"}'); } on('javascript.0.LiNaDo.h_visible', function (obj) { view_wechsel(); }
Gruß
Dominic
-
… ergänzend eine Idee, von der ich aber nicht weiss, ob sie funktionieren würde (so fit bin ich in iobroker und js leider noch nicht ).
Könnte ich in das Feld "Viewname" einfach eine Variable schreiben? (also z.B. javascript.0.LiNaDo_home.view)
Die Variable würde ich dann mit dem relevanten Viewnamen befüllen.
Geht so etwas?
gruß
Dominic
-
So gut wie meine Idee auch war, sie funktioniert nicht
Bei Viewname ist ein Drop-Down-Menu hinterlegt, so dass ich mein "javascript.0.LiNaDo_home.view" nirgends eingeben kann.
Hat einer eine Idee für mich?
Gruß
Dominic
-
Hmm. Irgendwie bekomme ich es nicht hin. Kann man per Skript überhaupt einen Wert den ein Widget als Eigenschaft mit sich trägt schreiben? Und gibt es dazu vielleicht eine Doku?
Viele Grüße
Dominic
von unterwegs gesendet
-
So gut wie meine Idee auch war, sie funktioniert nicht
Bei Viewname ist ein Drop-Down-Menu hinterlegt, so dass ich mein "javascript.0.LiNaDo_home.view" nirgends eingeben kann.
Hat einer eine Idee für mich?
Gruß
Dominic `
Hab jetzt das Feld auf Autocomplete geändert. Sollte dann auch dein Trick funktionieren. (Wird morgen eingecheckt) -
Super. Vielen Dank. Sagst Du Bescheid, wenn Du eingecheckt hast?
Muss ich dabei irgendwas beachten oder langt ein normales Update über die Admin Oberfläche?
Grüße
Dominic
-
möchte das gerne auch nutzen.
Was heiist denn genau einchecken? Ist das dann so wie unter FAQ auf der Homepage beschrieben?
-
Das heisst, dass Bluefox dieses feature in der nächsten Version bereitstellt.
Gruß
Rainer
-
achso, woran erkennt man denn, das es eine neue Version gibt?
Un eine neue Version von was? iobroker oder Vis oder js-controller oder oder oder?
Oder kann man einfach davon ausgehen, dass das jetzt schon in der aktuellen drin ist?
-
http://www.iobroker.net/wp-content/uplo … pdaten.jpg
zu finden unter:
http://www.iobroker.net/?page_id=44&lan … figuration
Gruß
rainer
-
irgendwie geht das mit dem Update klicken nicht.
es passiert ewig gar nichts und dann sieht die Adapterliste komisch aus.
Habe mal ein iobroker upgrade probiert. Da kommen erst ganz viele etimeout und
dann sagt er das vis 0.6.13 aktuell ist. aber bleufox wollte gestern doch einchecken, dann
kann das ja nicht sein weil ich vorher auch schon 0.6.13 hatte und die funktion geht auch nicht
-
Also wenn ich iobroker admin aufrufe und dann die aktualisierungfunktion aufrufe, erscheint
bei mir beim VIS-Adapter die Version 0.6.14 - ich werde mir diese gleich mal runter laden und dann berichten
@bluefox: Vielen Dank schonmal
-
@Nic:irgendwie geht das mit dem Update klicken nicht.
es passiert ewig gar nichts `
Auf was für einem Rechner läuft ioBroker?Es dauert schon etwas, insbesondere, wenn…
@Nic:Da kommen erst ganz viele etimeout `
Dann sind die Server wieder überlastet.@Nic:Habe mal ein iobroker upgrade probiert. Da kommen erst ganz viele etimeout und
dann sagt er das vis 0.6.13 aktuell ist. `
Vorher auch ein iobroker update??@Nic:aber bleufox wollte gestern doch einchecken, dann
kann das ja nicht sein weil ich vorher auch schon 0.6.13 hatte `
Erstens kann immer mal was dazwischen kommen, so dass die Änderung nicht freigegebn werden kann.Zweitens gibt es inzwischen die 0.6.14
@Nic:und dann sieht die Adapterliste komisch aus. `
F5 oder ggf. Browsercache leeren. und nochmal probieren, denn:sihe oben.
Gruß
Rainer
-
Hallo,
@Communicate:Hallo zusammen,
nachdem ich ja seit gestern anfange mich in JS einzuarbeiten stehe ich schon wieder vor der nächsten Herausforderung.
Ich möchte gerne, wenn sich eine Variable von false auf true ändert, auch den View innerhalb eines "View in Widget" entsprechend wechseln.
Die Variable habe ich, was mir noch fehlt ist der Teil mit dem Viewwechsel in diesem speziellen Widget.
Folgendes sollten den gesamten View wechseln, aber leider nicht den View innerhalb des Widgets:
function view_wechsel () { setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "LiNaDo/Heizung"}'); } on('javascript.0.LiNaDo.h_visible', function (obj) { view_wechsel(); }
Gruß
Dominic `
Es gibt noch ein andere Lösung, die ich früher in DashUI genutzt habe:Das Widget stateful, container view in Widget 8
Es kann 8 verschiedene Views abhängig vom Inhalt einer Variable(in meinem Falle mit dem Inhalt 0 bis 7) anzeigen. Also einfach den Inhalt der Variable in Javascript ändern [durch Schedule, durch SetTimeout, durch Wetterdaten, durch Sensorwerte, was das Herz begehrt], dann wird das passende View gezeigt.
Gruß
Pix
-
Hallo Bluefox,
das Feld ist jetzt beschreibbar => das ist gut.
Ich habe da jetzt meine Variable eingetragen, ich bekomme aber immer nur "Fehler: View ist nicht gefunden" angezeigt.
Kann ich irgendwo debuggen / loggen, was vis da probiert und wo der Fehler liegt?
Hier noch drei Screenshots:
-
Erstens du muss "{javascript.0.view_}" benutzen.
Zweitens, das geht nur im Nicht-Edit mode.
-
Habs ausprobiert. Geht leider nicht. Hast du getestet - dann wüsste ich , dass es an meiner Konfiguration liegt
von unterwegs gesendet
-
Mein Fehler. Die Variable hat den Wert test5. Der View heißt aber Test5. Case Sensitive ist böse
-
Hallo Bluefox,
ich weiss nicht warum. aber nach meinem letzten Upgrade funktioniert der Viewwechsel per Variable nicht mehr korrekt.
Folgendes Verhalten:
1. Variable "view2view" ist gesetzt auf "wohnzimmer_h".
2. Ich starte den View im Browser
3. Der View wohnzimmer_h wird angezeigt.
4. Ich ändere view2view auf "wohnzimmer_r"
5. Das Widget bleibt leer / es wird der View nicht wie gewünscht gewechselt.
Kannst Du mir sagen, woran das liegt?
-
Update: wenn ich einen Browser refresh mache, wird der richtigen view angezeigt.
Es sieht also so aus, als ob das Widget zwar mitbekommt dass sich die Variable ändert aber dje Anzeige wird nicht aktualisiert.
Woran liegt das? Ich bilde mir ein, dass ging schon mal.
Gruß Dominic