Hallo,
wie bekomme ich es hin, das ich den aktuellen Temperaturwert eines HmIP-STH mit einem Referenzwert vergleiche?
Folgendes funktioniert nicht:
var int Temp = (TemperaturUndLuftfeuchtigkeitssensorEG1ACTUALTEMPERATURE.state as DecimalType).intValue
if (Temp < 24) {
// starte Heizung
} //
Vermutlich liegt es daran, das TemperaturUndLuftfeuchtigkeitssensorEG1ACTUALTEMPERATURE.state eine Temperaturangabe mit "°C" zurückgibt, also zb "23,60 °C".... aber wie bekomme ich das weg?
Danke vorab und Gruß
Dirk
Temperaturwerte vergleichen
- peter-pan
- Beiträge: 2564
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Temperaturwerte vergleichen
z.B. so:
Es gibt also verschiedene Möglichkeiten um ein Item mit UoM zu bearbeiten bzw. um Vergleiche vorzunehmen oder auch um eine Umwandlung in eine Ganzzahl vorzunehmen.
Log:
Code: Alles auswählen
rule "UoM compare"
when
Item Dummy_5 changed
then
if(HMIPAussensensorNord1ACTUALTEMPERATURE.state< 7 | °C) {
logInfo("Temperature","Temperature with Pattern: " + HMIPAussensensorNord1ACTUALTEMPERATURE)
} // works
if( (HMIPAussensensorNord1ACTUALTEMPERATURE.state as Number).floatValue < 7) {
logInfo("Temperature","Temperature as Float for comparison: " + HMIPAussensensorNord1ACTUALTEMPERATURE)
} // works
var vTemp = (HMIPAussensensorNord1ACTUALTEMPERATURE.state as Number).floatValue
if( vTemp < 7) {
logInfo("Temperature","Temperature with changed Variable: " + vTemp)
} // works
var vTempInt = (HMIPAussensensorNord1ACTUALTEMPERATURE.state as Number).intValue
logInfo("Temperature","Temperature changed to Integer: " + vTempInt)
end
Log:
Code: Alles auswählen
2020-11-20 20:47:04.698 [INFO ] [e.smarthome.model.script.Temperature] - Temperature with Pattern: HMIPAussensensorNord1ACTUALTEMPERATURE (Type=NumberItem, State=5.50 °C, Label=Aussensensor Nord aktuelle Temperatur, Category=temperature, Groups=[gHomeMatic])
2020-11-20 20:47:04.709 [INFO ] [e.smarthome.model.script.Temperature] - Temperature as Float for comparison: HMIPAussensensorNord1ACTUALTEMPERATURE (Type=NumberItem, State=5.50 °C, Label=Aussensensor Nord aktuelle Temperatur, Category=temperature, Groups=[gHomeMatic])
2020-11-20 20:47:04.720 [INFO ] [e.smarthome.model.script.Temperature] - Temperature with changed Variable: 5.5
2020-11-20 20:47:04.727 [INFO ] [e.smarthome.model.script.Temperature] - Temperature changed to Integer: 5
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian
-
- Beiträge: 41
- Registriert: 9. Sep 2020 12:58
Re: Temperaturwerte vergleichen
Perfekt, das hat funktioniert
Vielen Dank!
Vielen Dank!
peter-pan hat geschrieben: ↑20. Nov 2020 20:48 z.B. so:Es gibt also verschiedene Möglichkeiten um ein Item mit UoM zu bearbeiten bzw. um Vergleiche vorzunehmen oder auch um eine Umwandlung in eine Ganzzahl vorzunehmen.Code: Alles auswählen
rule "UoM compare" when Item Dummy_5 changed then if(HMIPAussensensorNord1ACTUALTEMPERATURE.state< 7 | °C) { logInfo("Temperature","Temperature with Pattern: " + HMIPAussensensorNord1ACTUALTEMPERATURE) } // works if( (HMIPAussensensorNord1ACTUALTEMPERATURE.state as Number).floatValue < 7) { logInfo("Temperature","Temperature as Float for comparison: " + HMIPAussensensorNord1ACTUALTEMPERATURE) } // works var vTemp = (HMIPAussensensorNord1ACTUALTEMPERATURE.state as Number).floatValue if( vTemp < 7) { logInfo("Temperature","Temperature with changed Variable: " + vTemp) } // works var vTempInt = (HMIPAussensensorNord1ACTUALTEMPERATURE.state as Number).intValue logInfo("Temperature","Temperature changed to Integer: " + vTempInt) end
Log:Code: Alles auswählen
2020-11-20 20:47:04.698 [INFO ] [e.smarthome.model.script.Temperature] - Temperature with Pattern: HMIPAussensensorNord1ACTUALTEMPERATURE (Type=NumberItem, State=5.50 °C, Label=Aussensensor Nord aktuelle Temperatur, Category=temperature, Groups=[gHomeMatic]) 2020-11-20 20:47:04.709 [INFO ] [e.smarthome.model.script.Temperature] - Temperature as Float for comparison: HMIPAussensensorNord1ACTUALTEMPERATURE (Type=NumberItem, State=5.50 °C, Label=Aussensensor Nord aktuelle Temperatur, Category=temperature, Groups=[gHomeMatic]) 2020-11-20 20:47:04.720 [INFO ] [e.smarthome.model.script.Temperature] - Temperature with changed Variable: 5.5 2020-11-20 20:47:04.727 [INFO ] [e.smarthome.model.script.Temperature] - Temperature changed to Integer: 5
- peter-pan
- Beiträge: 2564
- Registriert: 28. Nov 2018 12:03
- Wohnort: Schwäbisch Gmünd
Re: Temperaturwerte vergleichen
Gerne.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian