NEWS
jsonConfig für jsonTab
-
@simatec Probiert habe ich bereits vieles - leider ohne Erfolg.
Gehen wir mal chronologisch vor und nehmen nur einen Datenpunkt, der als Select fungieren soll.
Die Syntax dazu ist:
"mode": { "type": "state", "label": "tab_mode", "control": "select", "options": [ { "label": "tab_mode_deactivated", "value": 0 }, { "label": "tab_mode_manual", "value": 1 } ], "oid": "control.mode", "xs": 12, "sm": 12, "md": 12, "lg": 12, "xl": 12 },
Dargestellt wird eine Number-Box. Hier kann ich zwar die Werte ändern - jedoch greift das Select nicht.
-
@skb Ich würde
type: 'setState',
nehmen -
@simatec
state
odersetState
funktioniert zum Setzen. Aber beide zeigen keine Select-Box an. -
@skb Zeige mal den State. Der State muss vom Typ her zum json Eintrag passen. Ist da kein select definiert, zeigt er die nur den Wert an. Das würde auch passieren, wenn du einen State vom Type String als Slider integrierst
-
@simatec Ah, ok. Das macht allerdings Sinn. Der state ist tatsächlich eine Number - aber, wie könnte man ihn als "List" passend machen? Dann liegt wohl da der Fehler.
"type": "number", "role": "indicator", "read": true, "write": true, "def": 0, "states": { "0": "Deactivated", "1": "Manual", "2": "Only Surplus", "3": "Minimal + Surplus", "4": "Fast" }
Allerdings steht ja in der Beschreibung der states, das
states
nur bei number oder string gilt. Somit müsste ja dann auch ein select bei jsonTab gültig sein.Was ja auch nicht geht - wie es bei shuttercontrol klappt, eine Zahl ohne Box darzustellen:
"chargeCurrentDisplay": { "newLine": true, "type": "state", "label": "tab_chargeAmpere", "oid": "control.chargeCurrent", "narrow": true, "addColon": true, "readOnly": true, "blinkOnUpdate": true, "highlight": true, "unit": "A", "xs": 12, "sm": 12, "md": 6, "lg": 6, "xl": 6 },
Sollte, wie bei shuttercontrol aussehen:
Edit: Ok, das geht - allerdings nur, wenn der state auch auf
write: false
steht. Sollte das dann nicht eher immer so sein, wenn ich dies aufreadOnly: true
stelle? -
@skb said in jsonConfig für jsonTab:
"type": "number", "role": "indicator", "read": true, "write": true, : : }
Bitte korrigiere die ROLE des States:
role indicator erfordert type BOOLEAN, READ-ONLY.
siehe https://github.com/ioBroker/ioBroker.docs/blob/master/docs/en/dev/stateroles.md#indicators-boolean-read-onlyHier würde wahrscheinlich value[.xxx] oder info.status passen oder wenns schreibbar sein soll level[.x]
-
@mcm1957 Kann ich machen - ändert jedoch nichts an den o.g. "Problemen".
-
@skb
Ja ist schon klar - war nur als ein Hinweis gedacht weil ichs gesehen habe.
Sorry für Unterbrechung /Randanmerkung.An sich sollte aber - weil du in einer der ersten Beiträge gefragt hast - das oben angeführte README auch für tab passen. Wenn was nicht funktioniert wär es ein Issue im admin Adapter Repo. Funktionalität sollte mit admin ausgeliefert werden. Also ggF den aktuellsten Admin gegentesten wenn du nicht eh am latest bin (stable wurde heute aktualissiert).
Die Komponents der jsconConfig sind übrigends da (https://github.com/ioBroker/ioBroker.admin/tree/master/packages/jsonConfig/src/JsonConfigComponent) kodiert. Falls du selbst suchen / schaun willst was da wie implementiert ist.
-
Müsste ein dropdown nicht so definiert sein?
https://github.com/ioBroker/ioBroker.admin/blob/master/packages/jsonConfig/README.md#select -
@oliverio Ja, wenn man es ohne
state
nutzt, wird dies wohl so definiert. Das funktioniert auch. Allerdings nicht, wenn ich einen state habe, der alsnumber
definiert ist und einestates
-List beinhaltet. -
Auch würde mich interessieren, ob man den Wert, den so ein
type: state
ausgibt, weiterverarbeiten kann. Ich würde dann Buttons entsprechend stylen, wenncontrol: select
nicht geht. -
@SKB
Ich hab mal im source geschaut. Was mir auffällt ist, das der Typ select zwar definiert ist,
https://github.com/ioBroker/ioBroker.admin/blob/d64077fb7249005a1253de90eb54d0d84f019679/packages/jsonConfig/src/JsonConfigComponent/ConfigState.tsx#L47
Aber dann bei renderItem es für diesen Typ keine Unterscheidung gibt, was dann die tatsächliche Anzeige beeinflusst.
Also select wohl nicht umgesetzt wurde. Ist allerdings erstmal nur eine flüchtige Analyse, react ist da nicht immer alles gleich ersichtlich -
@oliverio Habe damit nun mal ein Bisschen getestet. Bei den
control
geht eigentlich alles - bis auf eben das select.
Button kann schalten und walten - switch auch.Ich könnte statt mit dem select auch mit einem Button leben - nur müsste ich dann die value, die der Button setzt auch auslesen können, damit ich ggf. mit
variant: outlined
z.B. den aktiven Wert in dem state erkenntlich machen kann. -
-
@mcm1957 Mir ging es im ersten Moment um das Verständnis - allerdings vermute ich nun einen Fehler. Habe ein Issue dazu erstellt.
-
Als workaround könntest du auch ein selectsendto nehmen und den State dann im Adapter lesen und setzen.(vermutlich)
-
@oliverio Mit Sicherheit gibt es viele Ansätze, damit man irgendwie Daten erhält - aber ich muss ja nicht states durch den Adapter schicken, damit ich Resultate bekomme, die eigentlich eine vorgesehene Funktion haben
Ich denke, ein Issue wird erstmal gut sein, damit sich das jemand angucken kann und ggf. die Funktion richtig stellt.