Re: Items runden...
Verfasst: 27. Nov 2020 16:58
Seltsam, dass der Formatter an dieser Stelle keine Units unterstützt, in Labels geht es ja auch (und dort wird meines Wissens der gleiche Formatter verwendet. Aber vielleicht wird die Funktion vorher überladen, wer weiß...)
Damit Du dennoch die Einheit bekommst, kannst Du natürlich die Einheit "manuell" mit in den String schreiben:
Es gibt natürlich immer noch ein potenzielles Problem, nämlich, wenn das Item keinen gültigen Wert enthält. Deshalb ist es anzuraten, über eine lokale Konstante zu gehen:
Beim Umweg über die Variable nTemp sollte es definitiv auch ohne QuantityType gehen (also nur mit as Number).
Der Punkt ist aber natürlich ein anderer. Liefert der Sensor (bzw. hier openWeatherMap) mal keinen Wert, so bricht die Rule nicht mit einer nullPointerException ab, sondern malt einen hübschen Strich statt des Wertes.
Damit Du dennoch die Einheit bekommst, kannst Du natürlich die Einheit "manuell" mit in den String schreiben:
Code: Alles auswählen
val T_akt = String::format("%.1f °C",(OWMLocalWeatherAndForecastCurrentApparentTemperature.state as QuantityType<Number>).floatValue)
Code: Alles auswählen
var Number nTemp = -274
if(OWMLocalWeatherAndForecastCurrentApparentTemperature.state instanceof Number)
nTemp = OWMLocalWeatherAndForecastCurrentApparentTemperature.state as QuantityType<Number>).floatValue
var String T_akt = ""
if(nTemp > -274)
T_akt = String::format("%.1f °C",nTemp)
else
T_akt = "- °C"
Der Punkt ist aber natürlich ein anderer. Liefert der Sensor (bzw. hier openWeatherMap) mal keinen Wert, so bricht die Rule nicht mit einer nullPointerException ab, sondern malt einen hübschen Strich statt des Wertes.
