NEWS
Datenpukte Skalieren
-
Hallo zusammen.
So langsam verzweifel ich...
Seit Taggen google und suche ich nach einer vernünftigen Möglichkeit ein E/A-Feld zum Datenpunkt zu skalieren (umzurechnen).Hört sich recht einfach an, aus der Eingabe 1,0 den Wert 60000 zu übergeben, aber trotzdem nur 1,0 anzuzeigen, scheint aber mit VIS nicht so ohne zu sein.
Scheinbar geht soetwas über Alias-Datenpunkte
oder bearbeitung des RAW
oder über Script
oder über HTML (mein favorit)
oder 2 Felder und das input ist versteckt/durchsichtigwas wäre euere best-practice hierfür?
Bitte die Ausführung etwas beschreiben.Danke und Gruß
-
@cybersurver Na Du ja nicht beschrieben, wie die Eingabe aussehen soll - also zum Beispiel zwischen 0 und 1.
Wenn die Anzeige max. 1 sein soll - dann ist der Wert aus Gründen der Sichtbarkeit doch irrelevant. Dann kannst doch einfach über Alias oder Skript diesen Wert mit 60000 multiplizieren und das wars dann. Wahrscheinlich habe ich das nicht verstanden?
Über einen Alias geht das auch easy:
{ "type": "state", "common": { "name": "skalierung", "role": "state", "type": "number", "read": true, "write": true, "alias": { "id": "0_userdata.0.skalierung", "read": "val/60000", "write": "val*60000" } }, "_id": "alias.0.Skalierung.skalierung", "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1630921833869, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
In dem Aliaspunkt sind die Werte von 0-1 also aus der VIS. Im eigentlichen Datenpunkt - hier exemplarisch unter userdata die Werte zwischen 0 und 60000. Je nachdem was man verändert, ändert sich im Counterpart der Wert.
Man kann auch direkt über die Bindings Rechenoperationen durchführen:
ergibt dann in der Anzeige:
Für die Eingabe ist halt das Problem, dass das Widget selbst die Skalierung können muss und das hängt vom Widget ab, aber mit einem Datenpunkt geht das meines Erachtens.
In Kombination mit einem Slider ist dann mit dem Alias folgendes möglich:
während im userdata der Wert linear skaliert steht.
In dem Fall ändert sich der angezeigte Wert und der Slider auch automatisch, wenn man unter Userdata den Quellwert entsprechend verändert.
-
@mickym
Danke für deine Antwort.Die Eingabe wäre komfortabelsten mit einer NKS von 0.0 bis 99.9
Dieser wert muss dann mit 60000 (Millisekunden) multipliziert werden, so das dann Minuten raus kommen.
Umgekehrt kommt z.B. ein Wert von 120000 vom
Datenpunkt und dann sollte 2.0 (oder 2,0) im Feld stehen. -
@mickym
Danke für deine Antwort.Die Eingabe wäre komfortabelsten mit einer NKS von 0.0 bis 99.9
Dieser wert muss dann mit 60000 (Millisekunden) multipliziert werden, so das dann Minuten raus kommen.
Umgekehrt kommt z.B. ein Wert von 120000 vom
Datenpunkt und dann sollte 2.0 (oder 2,0) im Feld stehen. -
@mickym
Danke für deine Antwort.Die Eingabe wäre komfortabelsten mit einer NKS von 0.0 bis 99.9
Dieser wert muss dann mit 60000 (Millisekunden) multipliziert werden, so das dann Minuten raus kommen.
Umgekehrt kommt z.B. ein Wert von 120000 vom
Datenpunkt und dann sollte 2.0 (oder 2,0) im Feld stehen. -
@cybersurver Nun die Formel passen doch bereits bei der Alias Definition. Welchen Wert Du über VIS in den Alias schreibst ist doch Dir über lassen. Die Multiplikation bzw. Division durch 60000 gibt immer den Minutenwert im Alias und umgekehrt.
-
Nun hab mich ich ganz vergessen mich bei Dir zu bedanken!
Ich habe es über den Adapter „Alias-Manager“ umgesetzt, welcher aber scheinbar nichts anderes im RAW macht, als Du in deiner
ersten Antwort gezeigt hast.
Somit läuft und nochmals Danke!