Re: Beregnung Timer
Verfasst: 13. Jun 2020 23:31
Der entscheidende Teil ist hier das Number:Temperature. Das bedeutet, es handelt sich um ein UoM (Units of Measurement) Item. Anders gesagt, es liefert keine gewöhnliche Zahl, sondern eine Zahl mitsamt Einheit, in diesem Fall gewöhnlich °C, aber Du könntest die Anzeige auch auf K oder F umstellen (und Du musst Dir dabei keine Gedanken um die Umrechnung machen, das übernimmt openHAB).
Wenn Du allerdings in einer Rule mit diesen Werten rechnen willst (auch ein Vergleich ist eine Rechnung), dann musst Du darauf Rücksicht nehmen. Es gibt hier zwei Möglichkeiten.
Entweder, Du sorgst dafür, dass die zu vergleichende Zahl auch eine Einheit hat (und auch dann kannst Du ohne Probleme mit einer anderen Einheit arbeiten, also z.B.: ist 0°C größer, kleiner oder gleich 32°F?)
Die Alternative ist, die Einheit zu entfernen. Dabei wird immer die default Einheit verwendet (imperial oder metrisch, metrisch ist vorausgewählt, in diesem Fall also °C (obwohl strenggenommen K korrekt wäre
)
Variante eins:
Variante zwei:
Eigentlich müsste man bei Variante eins auch nach Number casten, aber openHAB erledigt das selbst.
Wenn Du allerdings in einer Rule mit diesen Werten rechnen willst (auch ein Vergleich ist eine Rechnung), dann musst Du darauf Rücksicht nehmen. Es gibt hier zwei Möglichkeiten.
Entweder, Du sorgst dafür, dass die zu vergleichende Zahl auch eine Einheit hat (und auch dann kannst Du ohne Probleme mit einer anderen Einheit arbeiten, also z.B.: ist 0°C größer, kleiner oder gleich 32°F?)
Die Alternative ist, die Einheit zu entfernen. Dabei wird immer die default Einheit verwendet (imperial oder metrisch, metrisch ist vorausgewählt, in diesem Fall also °C (obwohl strenggenommen K korrekt wäre

Variante eins:
Code: Alles auswählen
if(LocalWeatherAndForecast_ForecastHours24_MaximaleTemperatur.state > 15 | °C)
Code: Alles auswählen
if((LocalWeatherAndForecast_ForecastHours24_MaximaleTemperatur.state as QuantityType<Number>).floatValue > 15)