NEWS
Instance von vis auch in JS einsetzen
-
Hallo zusammen,
in der Visualisierung kann ich mittels dem "Widget "Screen Resolution" die Instance des jeweiligen Gerätes anzeigen. Diese Info (Intanzen-Nr.) benötige ich nun, um die Navigation zu steuern: In den Widgets unter "Sichtbarkeit" -> Object ID mit "instance" füllen, und die Bedingung entsprechend setzen für anzeigen oder nicht.
kann ich diese Intanzen-Nr. des Gerätes auch in JavaScript abfragen und einsetzen?
-
Meinst du das:
-
Genau den meinte ich. Wenn ich nun das Widget „materialdesign - top app bar navigation“ (https://github.com/Scrounger/ioBroker.vis-materialdesign#top-app-bar-with-navigation-drawer) auf zwei iPhones einsetze, überschreibt es mir immer den DP der Navigation und beide Geräte laufen synchron.
Nun setze ich dieses Widget auf der selben View 2x mit zwei unterschiedlichen DP’s ein: einmal blende ich das eine Widget mit der Sichtbarkeit und „instance“ für das eine Gerät ein, einmal für das andere. Funktioniert bis jetzt. Wenn ich aber auf den einzelnen Views weitere, z.b. mit JS generierte Links habe, müsste ich wissen, welches Gerät gerade aktiv ist um den jeweiligen DP der Navigation korrekt setzen zu können. Wenn zwei Geräte gleichzeitig Online sind, funktioniert dieser DP (vis.0.control.instance) nicht zuverlässig, denn ich rufe Views ja über das Widget und nicht direkt auf.Kann ich den Befehl „instance“ auch in JS-direkt nutzen?
-
Vielleicht kannst du damit weiter was anfangen ... siehe das Script weiter unten
https://forum.iobroker.net/topic/1772/wie-durch-vis-aufruf-eine-aktion-starten-variable-setzen/7
-
Das geht in die richtige Richtung! Danke für den Hinweis
Ich werde dies mal im JS ausprobieren... -
<script type="text/javascript"> servConn.setState('0_userdata.0.vis.VisActive', true); </script>
habe ich in einem html-widget eingepflegt. Beim Laden einer Seite werden die DP's unter "vis.0.control" auch aktualisiert.
Ich habe eine View "Übersicht" und eine View "Eingabe". Von der View "Übersicht" wechsle ich in die View "Eingabe" in welcher ich über ein Inputfeld einen Text eingeben kann. Nach der Eingabe lasse ein Script laufen. Nach dem Ablauf des Scripts soll wieder auf die Übersichtsseite zurück gewechselt werden. Ideal wäre für mich, eine Abfrage für die Instanz während der Laufzeit des Scriptes um den Entsprechend korrekten Datenpunkt für die Navigation zu setzen.
Nun habe ich mir überlegt, die View über den DP "vis.0.control.data" per refresh/reload (in vis.0.control.command) während des Ablaufes des Scripts zu aktualisieren. Dies zwingt somit das obengenannte Script zum durchlauf und ändert die Instanz auf das korrekte Gerät (welches aktuell eine Eingabe tätigt). Leider ist der Seitenaufbau extrem langsam da die View sich neu verbindet. Ich könnte auch mittels dem Befehl "changeView" die gleiche Seite nochmal laden, die Instanz wird jedoch nicht zuverlässig aktualisiert...
-
Ich habe jetzt es nur kurz überflogen .. was du geschrieben hast .
Ich weiß nicht genau was du vorhast ( Endergebniss ) ... kannst du es in Kurzversion schildern !??
-
ich erstelle eine Einkaufsliste. Da gibt's eine Tabelle mit allen Produkte die einzukaufen sind. Um ein neues Produkt hinzufügen zu können, soll dieses auf einer weiteren View eingegeben werden können. Nach der Eingabe soll diese auf der Übersicht angezeigt werden.
Da diese auf mehreren Geräten (gleichzeitig) genutzt werden soll ist die Aufteilung nach Geräten sinnvoll.
-
@ice987 sagte in Instance von vis auch in JS einsetzen:
soll dieses auf einer weiteren View eingegeben
mhh ... ok warum in ein View wechseln und wieder zurück , wie wäre es mit dem Widget DialogView.
Du bleibst auf deiner View Liste ... öffnst quasi das Popup ... eingabe ... und schließt das Popup .siehe auch hier ... Link Text
dort öffnet sich auch ein Popup ... funktioniert wunderbar . -
@ice987 sagte in Instance von vis auch in JS einsetzen:
Da diese auf mehreren Geräten (gleichzeitig) genutzt werden soll ist die Aufteilung nach Geräten sinnvoll.
Den Edit habe ich nicht gesehen !
-
Wird nur ein Gerät benutzt ist alles kein Thema, da gebe ich dir recht. Wird die Visualisierung jedoch auf mehreren Geräten eingesetzt, welche nicht synchron laufen sollen, wird's recht interessant
-
@ice987 sagte in Instance von vis auch in JS einsetzen:
welche nicht synchron laufen sollen, wird's recht interessant
da gebe ich dir recht ..... bei Nutzung eines Projektes.
Wäre der Aufwand sehr groß , ein Projekt pro Gerät zu erstellen !??
-
Wäre der Aufwand sehr groß , ein Projekt pro Gerät zu erstellen !??
Das müsste ich mal durchdenken... eigentlich wäre ja bis auf DP’s der Navigation alles unverändert.