Seite 1 von 1

Temperaturwerte vergleichen

Verfasst: 20. Nov 2020 19:08
von dirkspostbox
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

Re: Temperaturwerte vergleichen

Verfasst: 20. Nov 2020 20:48
von peter-pan
z.B. so:

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
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

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

Re: Temperaturwerte vergleichen

Verfasst: 23. Nov 2020 14:34
von dirkspostbox
Perfekt, das hat funktioniert

Vielen Dank!
peter-pan hat geschrieben: 20. Nov 2020 20:48 z.B. so:

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
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

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

Re: Temperaturwerte vergleichen

Verfasst: 23. Nov 2020 17:38
von peter-pan
Gerne. 👍🏻