NEWS
[GELÖST] Automatisiertes Popup im VIS
-
Hallo zusammen,
ich habe mir eine Vis zusammengebastelt, in der ich u.a. durch einen Button das Bild meiner IP Cam vor der Haustür aufrufen kann. Zusätzlich habe ich, da ich nicht unmittelbar auf die Klingel zugreifen kann, einen Bewegungsmelder angebracht, der nur einen kleinen Bereich vor der Haustür abdeckt und auf eventuellen Besuch reagiert. Damit wird im Tablet per Tasker ein kleines Programm ausgeführt, das die App Homekey (für die Keymatic von eQ3) für eine Minute in den Vordergrund bringt, auf der ebenfalls ein Bild der Cam eingebunden ist.
Ich wollte dies aber jetzt etwas vereinfachen, da erstens die Homekey - App sehr verzögert das Bild aktualisiert, und zweitens ich den Fully Kiosk Browser nutze und eben in der Vis bereits das Popup eingebunden habe, welches flotter anspringt.
Aber ich komme beim Einbinden bzw Finden des richtigen Datenpunktes nicht weiter.
Muss ich jetzt den Browser, oder muss ich direkt die VIS ansteuern um das Popup über den BWM auszulösen? Und wenn ja, wie? Ich kann mittels Blockly alle Seiten aufrufen - aber ich komme nicht auf das Popup mit der Kamera...Ich danke euch schon mal für euere Hinweise.
-
@gezi70
Also ich habe bei mir ein Blocky Skript das bei Änderung eines Datenpunktes ein Popup einblendet:Hier zum Inportieren:
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on" id="wuxBPovkl_C$U7LL-I,4" x="38" y="13"> <field name="OID">javascript.0.vis.0.main.Popups.DialogNachrichtenPopupAlexa</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="control" id="S72$%jj9k|2tq[.-Uewr"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">vis.0.control.command</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id=")6HXOR(Xc23_RQ`R;Lh%"> <field name="TEXT">{"instance": "FFFFFFFF", "command": "dialog", "data": "w00319"}</field> </block> </value> </block> </statement> </block> </xml>
Der Datenpunkt wird mit folgenden JSON angesteuert:
{"instance": "FFFFFFFF", "command": "dialog", "data": "w00319"}
w00319 ist ein jqui - container - Button - view der versteckt auf allen VIS Seiten bei mir zu sehen ist,halt nicht im Sichtbaren Bereich, ich habe oben ein Menü eingebunden mit basic - view in widget und es liegt unterhalb der Buttons.
Der jqui ist wie folgt konfiguriert:
Wenn man auf den Button klickt öffnet sich die eingestellte View als PopUp
Mit dem Blocky "klicke" ich also quasi auf den Button der darauf hin - bei mir für 5 Sekunden - das View als Popup anzeigt
Mit den Inventwo-Widget lassen sich auch Popups realisieren, müsstw mit der Ansteuerung genauso funktionieren
-
@bananajoe ich danke dir schon mal, auch wenn ich das nicht gleich versuchen kann. Ich habe null Ahnung welcher Datenpunkt angesteuert werden muss. Ich versuche mal hinter dein Script zu kommen...
Noch eine Frage hätte ich dazu: wie hast du das Widget versteckt? Über die CSS (nur sichtbar wenn...) oder über den z- Wert? -
@gezi70 Meine Standard-Ansicht hat oben ein 120 Pixel Menü auf jeder Seite.
Das Menü befindet sich auf einer eigenen View (=Seite) und wird mit dem Widget basic - view in widget auf jeder anderen View eingeblendet.Das Widget befindet sich nun auf der View mit Menü aber unterhalb von 120 Pixeln und ist damit auf den anderen Seiten nicht zu sehen
Hier wird das Verfahren einmal als Video erklärt:
https://www.youtube.com/watch?v=vnqznMXsOLY -
was nutzt du für eine vis version ?
bei mir kommt erstmal eine warnung, weil ich ein object in den dp schreiben soll
aber es kommt kein popup - egal ob json oder json-object gesendet wird
bei mir ist der name des datenpunktes; Command interface for vis
-
@liv-in-sky bist du in der VIS oder im Blockly?
Mein Blockly reagiert auf einen Datenpunkt der sich ändert - den es bei dir nicht gibt, da musst du dir einen selbst aussuchen oder du lässt das außendrum weg.
steuere steuert den Datenpunkt von VIS an vis.0.control.command
Das w00319 ist die ID von meinem Widget in VIS. Die wird bei dir auch anders sein und die erfährst du erst wenn du das Widget im VIS Editor hinzugefügt hast. Im Skript musst dann den Namen anpassen.
-
danke - so funktioniert es bei mir
hatte diesen dp genommen:
vis.0.command
ohne die umwandlung geht es bei mir nicht
-
@bananajoe was bedeutet die instance: "FFFFFFFF"? Oder anders ausgedrückt: Wie finde ich bei mir die Instanz heraus?
Übrigens habe ich mein Widget auch nach Stefans Anleitung aufgebaut. -
@gezi70 FFFFFFFF steht für alle Instanzen
Da gab es ein Widget für bzw. im Editor steht das irgendwo oben rechts -
@bananajoe also ich habe:
-Einen Button, der auf der Startseite bereits mit dem Popup manuell funktioniert exportiert und
- auf der Navigationsseite im unsichtbaren Bereich wieder importiert.
- Dein Skript soweit an meine Bedürfnisse an der Auslöserseite angepasst und
- außerdem einen debug - Baustein angehängt.
Der Debug - Baustein zeigt mir ein korrektes Auslösen an, in den Objekten wird auch die Kommandozeile kurz rot sichtbar, aber es tut sich (natürlich mit der korrekten Widgetbezeichnung) in der VIS nichts.
Wenn ich die den Baustein zur Konvertierung zuvor stelle, bekomme ich eine Warnmeldung angezeigt...
Wo stehe ich hier auf dem Schlauch? -
@gezi70 Wenn du die VIS von Hand aufrufst (die View mit dem Widget das du aufrufst, ggf. manuell in der Adresszeile angeben) und mit der Maus klickst geht es?
Also mein Command for vis Datenbpunkt ist vom Typ Zeichenkette, das mit dem Umwandeln in ein Objekt bei dir wundert mich, bei mir geht das ohne umwandeln. Im Gegenteil, wenn ich das JSON nach Objekt einbaue bekomme ich eine Warnung (aber es geht immer noch)
-
ich bekomme auch eine warnung, aber ohne umwandlung geht es nicht
evtl. sollte man wohl ein github issue machen - denn von der logik her, ist das eh der falsche dp, den wir da nutzen
-
@liv-in-sky Warum soll das der falsche Datenpunkt sein? Der Datenpunkt gibt der VIS einen Befehl, der ist genau dafür da.
Du kannst auch bei data die View angeben und bei command dann "ChangeView" -
-
ich habe den "roten" dp mal gelöscht und alles neugestartet - seltsam, dieser dp wurde niht mehr neu angelegt - evtl war das was "altes" - jetzt ist er nicht mehr da
-
@bananajoe ich habe bis zum Augenzufallen noch gebastelt. Zum Schluss habe ich es mit der Ansteuerung eines bereits vorhandenen Widgets auf der Startseite hinbekommen. Die Warnung habe ich aber immer noch, und umwandeln json in Objekt muss ich auch. Aber nichts desto trotz, das was ich gerne wollte, kann ich jetzt (endlich) verwirklichen.
Ich weiß nur nicht, ob ich das Thema als gelöst kennzeichnen soll, da ja auch von anderer Seite noch Fragen aufgeworfen werden. -
nun scheint es bei dir, wie bei mir zu sein - das warning ist natürlich nicht gut - ich denke, da muss ein github issue eröffnet werden
-
-
@liv-in-sky das klappt bei mir wieder gar nicht:
es erscheint eine Warnung und, wahrscheinlich weil keine Konvertierung erfolgt steuert es auch nichts an.... -
probier mal ein javascript einzufügen mit dem inhalt - widget id anpassen !
setState("vis.0.control.instance", "FFFFFFFF"); setTimeout(function () { setState("vis.0.control.data", "w02489"); }, 500); setTimeout(function () { setState("vis.0.control.command", 'dialog'); }, 750);
schaut dann so aus