NEWS
Zugriff auf vis-Variabeln
-
Hallo,
gibt es die Möglichkeit beim editieren eines Views auf vis-Variabeln zuzugreifen? Ich benötige den Namen des aktuellen Views innerhalb eines Mappings.
Für das Mapping mehrerer Widget-Propertys mit einem 'dynamischen' Tag (z.B. javascript.0.Mqtt.%VIEW_NAME%.Temp) benötige ich eine Lösung.
Gibt es diese Möglichkeit?
Konnte in der Doku nichts finden.
Tobias
-
Hallo,
gibt es die Möglichkeit beim editieren eines Views auf vis-Variabeln zuzugreifen? Ich benötige den Namen des aktuellen Views innerhalb eines Mappings.
Für das Mapping mehrerer Widget-Propertys mit einem 'dynamischen' Tag (z.B. javascript.0.Mqtt.%VIEW_NAME%.Temp) benötige ich eine Lösung.
Gibt es diese Möglichkeit?
Konnte in der Doku nichts finden.
Tobias `
Das ist dann Binding von Binding.Wenn du selbst ein Widget schreibst, dann kannst du es implementieren. Für standard-Widgets wird es aber nicht gehen. Man muss dann die alle umschreiben
Ich kann natürlich für einige das einbauen, aber es ist nicht richtig.
-
Hat vis eine API, mit welcher man die Engineeringdaten eines Views ändern kann? Dann könnte ich die notwendigen Bindings (und auch Änderungen in der Statik) von einem Adapter aus machen.
Ich denke dabei an eine Funkion wie z.B.
setWidgetProperty("VIEW_NAME", "WIDGET", "PROPERTY","VALUE")
Ansonsten würde ich die Änderungen per Adapter direkt in vis-views.json machen. Allerdings wäre dies für mich nur eine Notlösung.
Vielen Dank
Tobias
-
Ich verstehe nicht, was du machen willst. Aber es gibt kein API definitiv…
Die Idee mit %VIEW%,%WIDGET%, %PROPERTY%, %VALUE% finde ich grundsätzlich nicht schlecht.
Werde das sogar langsam einbauen, aber langsam, weil ich jeden Widget dann anfassen muss.
-
> Ich verstehe nicht, was du machen willst.
ich möchte vis als Engineering-Tool für meinen sequence-Adapter (Schrittketten) verwenden. Hier meine Idee, weshalb ich von einem Adapter direkt in die vis Engineeringdaten (json) schreiben möchte):
1. Man legt je gewünschter Schrittkette einen neuen View "view_sequence_NAME" im vis edit-mode an
2. Auf "view_sequence_NAME" werden im vis edit-mode die einzelnen Schritte der Schrittkette projektiert. Hierzu erstelle ich ein Widget "widgetSequenceBlock".
-
Für jeden Schritt wird ein "widgetSequenceBlock" benötigt.
-
Weiterschaltbedingungen (Parameter oder Verknüpfungen auf IoBroker Objekte) werden an den Ein-/Ausgängen manuell statisch festgelegt (diese Daten kann der Adapter aus dem json file lesen)
3. Der Adapter wird manuell initialisiert
-
Einlesen aller "view_sequence_*" views
-
Jeder "widgetSequenceBlock" bekommt eine eindeutige StepID. Hierfür würde ich den "view_sequence_*" von oben nach unten durchsuchen/durchnummerieren. Diese StepID muss statisch sein und im json gespeichert werden.
-
Der Adapter baut ein Array für die Speicherung der Daten zwischen vis und dem Adapter auf:
|-view_sequence_1
| |-widgetSequenceBlock <stepid==1>| | |-Input1
| | |-Input2
| | |-Output1
| |-widgetSequenceBlock <stepid==2>| |-widgetSequenceBlock <stepid==3>| |-widgetSequenceBlock <stepid==n>|
|-view_sequence_2
| |-widgetSequenceBlock <stepid=x>4. Wird "view_sequence_1" zur Laufzeit angezeigt, so wird die Schrittkette dynamisch mit den aktuellen Werten angezeigt.
=> die statischen Werte kommen direkt aus dem json file
=> die dynamischen Werte kommen vom Binding "sequence.0.Values[%VIEW%,%StepId%].Input3"
Tobias</stepid=x></stepid==n></stepid==3></stepid==2></stepid==1>
2858_iobroker.2018-12-05_-kopie__2.log -
-
Es ist am besten momentan direct die …/iobroker/iobroker-data/files/vis.0/<vis-project>/vis-views.json zu parsen.
Ich plane noch kein API dafür.</vis-project>
-
Ok, danke
Tobias