NEWS
Datenkonvertierung "10 %" -> 10
-
Hallo!
Ich bin noch recht neu in der IOBroker Welt und noch so firm in der Suchformulierung
Mein Problem ist das ich die Farbe einer Anzeige basierend auf dem Wert darstellen mächte.
Das klappt soweit gut doch bekomme ich den Wert nicht als numerisch sondern eben mit einem Prozentwert bzw. als String.
Gibt es einfachen Weg aus "10 %" den numerischen Wert 10 zu konvertieren?
Mein Aufruf lautet:
{v:ble.0.c4:7c:8d:63:7d:91.humidity;v < 20 ? "#d60505" :: v < 60 ? "#14d229" :: "#1d14d2"}
Da aber eben da Prozentzeichen darin steht klappt das nicht. Ich suche da den idealen Weg, doch finde ich kein Beispiel.
Malc
-
kannst du diese Werte ggf. mit dem Parser-Adpter auslesen (und zurechtschneiden)?
Gruß
Rainer
-
parseInt(value,10) sollte tun
-
Vielen Dank für den Tipp!
parseInt(value,10) sollte tun `
Ich habe das mal so versucht:
{v:parseInt(ble.0.c4:7c:8d:63:81:66.humidity,4);v < 20 ? "#d60505" :: v < 60 ? "#14d229" :: "#1d14d2"}
Wenn ich ble.0.c4:7c:8d:63:81:66.humidity in einem Textwidget anzeigen lasse steht da nur der Wert ohne Einheit. Bin ich da vielleicht auf der falschen Richtung? Im Objektexplorer habe ich die Einheit dahinterstehen. Daher dachte ich das meine Ermittlung daran scheitert.
Aber da komme ich noch nicht weiter,
habe ich was falsch verstanden?
-
parseInt(val, 10) macht aus dem String eine Zahl. Damit ist die Maßeinheit weg.
Mache doch einen Stringvergleich:
{v:ble.0.c4:7c:8d:63:7d:91.humidity;v < '20 %' ? "#d60505" :: v < '60 %' ? "#14d229" :: "#1d14d2"}
So ist es ein Zahlenvergleich (ohne Maßeinheit):
{v:parseInt(ble.0.c4:7c:8d:63:81:66.humidity, 10);v < 20 ? "#d60505" :: v < 60 ? "#14d229" :: "#1d14d2"}