NEWS
setState aus VIS-Script
-
Hallo zusammen,
besteht die Möglichkeit aus einem VIS-Script heraus einen Datenpunkt zu setzen?
Wenn ja, wie? setState funktioniert ja so nicht, da das ja aus dem JavaScript Adapter kommt. -
Keiner eine Idee?
-
In Vis kannst Du Objekte in true oder false ändern und dann darauf reagieren mit einen Script wechles setState ausführt. Aber was genau willst Du? Ich habe in VIS Eingabefelder wo ich z. B. eine Einschaltzeit eintrage. Ist zwar kein setState macht aber das gleiche —> es befüllt ein Objekt...
-
@SchuetzeSchulz
In vis kannst du den Wert wie folgt ändern:vis.setValue(datenpunkt, wert);
-
@OliverIO sagte in setState aus VIS-Script:
@SchuetzeSchulz
In vis kannst du den Wert wie folgt ändern:vis.setValue(datenpunkt, wert);
Perfekt, genau das hab ich gesucht. Vielen lieben Dank!
-
@oliverio
Wie kann man jarvis vis.setValue unterschieben? So dass man quasi den Befehl vis.setValue von jarvis aus aufrufen könnte?
In v3.1.x hat man in jarvis die Möglichkeit eigenes script zu definieren. Wäre es damit machbar? -
@mcu
SetValue ist ein Befehl von vis
Dazu müsste man das komplette vis Laden
Das macht aber keinen Sinn.Auch in Jarvis muss es eine Funktion geben
Mit dem ein State geschrieben wird.Da aber der Code zerhäckselt ist,
Kann nur der Autor von Jarvis helfen. -
@oliverio sagte in setState aus VIS-Script:
SetValue ist ein Befehl von vis
Weißt Du / jemand, ob/wo man eine Übersicht findet, welche Befehle/Syntax man in VIS (im Reiter Skripte) nutzen kann?
Speziell suche ich gerade soetwas wie "GetValue" und Schleifen für Vis-Skripte. Wenn ich es richtig verstanden habe, "läuft" in Vis eine eigene Skriptsprache und nicht JS?
-
nein es läuft schon javascript darin. ein browser kann auch nix anderes.
binding ist ein syntax, der in vis interpretiert wird, leider sind da hie und da lücken oder fehlinterpretationen möglich.also als erste quelle gilt natürlich die adapter dokumentation, in der das binding detailliert beschrieben ist.
https://github.com/ioBroker/ioBroker.visdarüber hinaus gibt es dann noch die vis bibliothek, die während des runtime modes von vis geladen ist und über die alle internen befehle definiert sind
ich habe mal den folgenden Link auf setValue zeigen lassen.
https://github.com/ioBroker/ioBroker.vis/blob/master/www/js/vis.js#L393jetzt könnte man diese bibliothek durchsuchen nach weiteren sinnvollen funktionen.
da gibt es leider nicht so viele, die ich empfehlen kann.Ausserdem gilt natürlich, das ist sozusagen alles nicht offiziell dokumentiert und es gibt keine Garantie das das für die Zukunft in neuen Versionen auch weiter funktioniert. So ist es bspw auch bei vis-1 nach vis-2 gewesen. da ist einiges nicht mehr so, wie es in vis-1 war. man hat versucht eine größtmögliche kompatibilität zu erreichen, aber das war nicht immer möglich.
-
@oliverio OK, vielleicht ist das doch noch "eine Nummer zu groß für mich", denn Bindings habe ich zwar schon genutzt (die Adapter-Doku dafür ist mir bekannt) und dachte auch, sie einigermaßen verstanden zu haben, blicke aber momentan irgendwie gar nicht,was da jetzt für ein Zusammenhang mit den "Vis-Skripten" existiert.
Dennoch:
Der Link auf die Vis-Bibliothek geht schon in die Richtung, die ich gesucht habe. Bin nur nicht drauf gekommen, bei git zu suchen, weil mir noch gar nicht klar war, daß in den dortigen Dateien diese Bibliotheken ja wohl enthalten sein müssen.Das schaue ich mir genauer an. Vielen Dank für den Hinweis!
-
@andersmacher
aber nicht so viele mühe investieren.wenn du mit debugging kenntnisse hast, dann kannst du über die web developer console mal in vis.js einen breakpoint setzen und mal schauen was da der reihe nach alles abläuft. aber da musst dich schon gut auskennen.
ansonsten -> tu es nicht, da es ansonsten in kopf explosion endet
was noch interessant sein könnte ist, wie vis die datenpunkte verwaltet.
dazu kannst du dir dann vis.states mal anschauen. dazu bedient sich vis aber wieder andere bibliotheken bspw canJS, aber in einer älternen Version.
https://v2.canjs.com/
die kommunikation zwischen client und server erfolgt über https://socket.io/darüber hinaus noch ettliche weitere bibliotheken: jquery, ace und ettliche plugins oder zusatzskripte.
-
@oliverio Danke für die Warnung!