ioBroker.jarvis icon indicating copy to clipboard operation
ioBroker.jarvis copied to clipboard

v3.0.11 - Data point style not working as expected

Open Pla5ma opened this issue 2 years ago • 9 comments

Jarvis version: v3.0.11

Issue: JSON for data point style does not apply as expected.

JSON: {">4499":{"color":"yellow"},">4999":{"color":"red"}}

Expected behavior: Values from 0-4499 normal Text 4500-4999 yellow Text 5000- red Text

Values over 4499 are always yellow. Even turning the JSON around {">4999":{"color":"red"},">4499":{"color":"yellow"}} gives the same result. In Jarvis v2 this was working as expected.

I would like to see the old behavior or a way to define ranges.

Pla5ma avatar Aug 29 '22 12:08 Pla5ma

Jarvis immer den ersten richtigen Wert. Also immer mit < arbeiten nur der letzte dann >. https://forum.iobroker.net/post/812357

mcuiobroker avatar Aug 29 '22 18:08 mcuiobroker

Das kann nicht sein, denn sonst würde {">4999":{"color":"red"},">4499":{"color":"yellow"}} nicht dazu führen, dass ein Wert über 5000 gelb ist, denn Rot wäre der erste richtige Wert.

Desweiteren bräuchte man so oder so eine Variante um Bereiche abzudecken, dies macht oftmals Sinn, gerade bei Prozentangaben.

PS: Ich habe jetzt eine Lösung gefunden de funktioniert, warum ist nicht mit Logik zu erklären, denn dann müsste das Statement oben auch funktionieren.

Pla5ma avatar Aug 29 '22 21:08 Pla5ma

Wie ist die Lösung?

mcuiobroker avatar Aug 29 '22 21:08 mcuiobroker

{"<4500":"default",">=5000":{"color":"red"},"<5000":{"color":"yellow"}}

Warum das nun geht und {">4999":{"color":"red"},">4499":{"color":"yellow"}} sowohl auch {">4499":{"color":"yellow"},">4999":{"color":"red"}} ab 4500 immer in Gelb resultiert erschließt sich mir nicht.

Pla5ma avatar Aug 29 '22 21:08 Pla5ma

Abgesehen davon ist es beim JSON für Icons nicht so, das Jarvis das erste passende nimmt. Da nimmt er das letzte passende, so wie bei v2 auch für Data Point Style.

Pla5ma avatar Aug 29 '22 21:08 Pla5ma

Soweit ich mich erinnere sortiert "jarvis" intern nochmal (also wäre das 1. die kleinste Zahl) und nimmt dann erste korrekte. Wie sieht bei den Icons das JSON aus? EDIT: Es geht nicht um das erste eingegebene, da nochmal intern sortiert wird. @Zefau kann evtl. mehr dazu sagen.

mcuiobroker avatar Aug 29 '22 21:08 mcuiobroker

Beispiel: {"<=100":"akar-icons:battery-full","<=80":"akar-icons:battery-medium","<=50":"akar-icons:battery-low blink_slow_yellow","<=25":"akar-icons:battery-empty blink_fast_red"}

Nimmt bei 20% akar-icons:battery-empty blink_fast_red auch wenn davor alle anderen auch passend sind. Das Verhalten ist also alles andere als homogen.

Pla5ma avatar Aug 29 '22 21:08 Pla5ma

Das würde dem entsprechen. Nach interner Sortierung nimmt in dem Fall das erste richtige <=25.

mcuiobroker avatar Aug 29 '22 21:08 mcuiobroker

Ok, wenn er intern von klein nach groß sortiert, macht alles Verhalten Sinn, dass muss man allerdings erstmal wissen.

Pla5ma avatar Aug 29 '22 21:08 Pla5ma