NEWS
[gelöst] Objektwert in VIS anzeigen
-
Hallo, ich würde mir gerne den "Wert" von einem Objekt in VIS anzeigen lassen.
In diesem Fall das "No error(8000)". Das Basic-String Widget zeigt aber nur die 8000 an.
Welches Widget kann mir den kompletten Wert anzeigen ? -
also du hast einen datenpunkt vom typ Objekt?
was steht da genau drin?No error(8000) wäre eigentlich kein gültiger Inhalt für ein Objekt
-
@darkblu sagte in Objektwert in VIS anzeigen:
In diesem Fall das "No error(8000)". Das Basic-String Widget zeigt aber nur die 8000 an.
weiss nicht ob ichs richtig verstehe, meinst du vllt eine Werte Liste?
mit einem basic valuelist widget -
so sieht es im Objekte(baum) aus:
Ich hoffe, dass schafft mehr Klarheit.
Und das was unter "Wert" angezeigt wird, hätte ich eben gerne in VIS angezeigt.
Wie oben geschrieben, zeigt das Basic-String Widget nur die 8000 an.Dieser Datenpunkt kommt aus dem MelCloud Adapter (also Mitsubishi Klimaanlage)
-
nein
hast du mal das widget nach unten vergrößert.
evtl besteht der Text aus 2 oder mehr Zeilen -
ja, habe ich:
und hier noch ein Screenshot von "Objekt bearbeiten":
-
es ist vom typ number, also Zahl
da kann man eigentlich keinen Text eingeben
daher musst du das widget basic number nehmen.
wenn du davor den Text haben willst, dann gibt es ein Feld prependwie diese konstellation zustande kommt ist mir schleierhaft,
konnte ich allerdings nachstellen -
habs ausprobiert, Basic Number zeigt auch nur die 8000 an
.
was meinst du mit "dann gibt es ein Feld prepend" ?
-
@darkblu
da kannst duError Code
rein schreiben -
@darkblu
Zeig bitte mal den Inhalt des Reiters "Objektdaten". -
@codierknecht ,
hier bitteschön:
weil bei "def" nur die 8000 steht, zeigen die Widgets auch nur die 8000 an ?
-
@darkblu sagte in Objektwert in VIS anzeigen:
weil bei "def" nur die 8000 steht, zeigen die Widgets auch nur die 8000 an ?
nicht unbedingt.
8000 ist ja "no error".
Wenn kein Fehler vorliegt ist das eben 8000 -
@homoran ,
ich präzisiere,
weil in "def" eine Zahl steht, zeigen die Widgets auch nur die Zahl an ?Klar, die "8000" steht für "no Error", keine Ahnung was es sonst noch so gibt.
Das will ich ehrlicherweise auch gar nicht rausfinden -
jetzt verstehe ich.
der adapter hat den datenpunkt vorgegeben und definiert in den objektdaten states eine liste von code zu text zuordnungen
im datenpunkt selbst steht als wert nur 8000
in vis sollte diese zahl nun anhand der statesauflistung in den text übersetzt werden
und nur "No error" anzeigen.
Gut hier steht jetzt nur genau eine möglichkeit drin, aber es gibt sicherlich adapter die da mehr möglichkeiten fest reinschreiben.testen kann man das wenn man selbst den wert im objektview ändern möchte.
dann bietet iobroker nicht einfach nur ein eingabe feld wo ich eine neue nummer eintippen kann, sondern ein auswahlfeld, bei dem ich den wert anhand des text auswählen kann.das sieht dann so aus, ich habe mal nich ein paar states hinzugefügt, das es klarer wird
bei folgender dp definition
{ "common": { "name": "test", "desc": "Manually created", "role": "state", "type": "number", "read": true, "write": true, "def": 8000, "states": { "8000": "No error", "8100": "kleiner Fehler", "8200": "großer Fehler" } }, "type": "state", "native": {}, "_id": "0_userdata.0.test", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1726667730564 }
und so eine anzeige benötigt er in vis
bei den vorhandenen normalen widgets fällt mir da aktuell nix ein
wenn dann per javascript adapter den wert in einen weiteren datenpunkt schreiben und den dann anzeigenlet read_dp="0_userdata.0.test"; let write_dp="0_userdata.0.test1"; on({id: read_dp}, function (state) { let obj = getObject(state.id); console.log(obj.common.states[state.state.val]); if (obj.common.states[state.state.val]) { setState(write_dp,obj.common.states[state.state.val]); } else { setState(write_dp,""); } });
-
vielen Dank an alle.
Es gibt zwar (bis jetzt) kein passendes Widget, aber die javascript Lösung von @OliverIO ist ein
guter Lösungsvorschlag. -
vis erhält diese daten nicht, daher ist es nicht so einfach auf die daten zuzugreifen.
das ist wahrscheinlich auch der grund warum es da keine widgets gibtNachtrag
in vis2 gibt es das widget
styled - states controldas zeigt alles states an und färbt den aktuellen wert dann entsprehcend ein.
ist aber das einzige welches states dort verwendet, sowei ich das sehe -
@darkblu sagte in [gelöst] Objektwert in VIS anzeigen:
weil bei "def" nur die 8000 steht, zeigen die Widgets auch nur die 8000 an ?
"def" ist lediglich der Default-Wert.