Temperaturwerte vergleichen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
dirkspostbox
Beiträge: 41
Registriert: 9. Sep 2020 12:58
Answers: 1

Temperaturwerte vergleichen

Beitrag 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

Benutzeravatar
peter-pan
Beiträge: 2564
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: Temperaturwerte vergleichen

Beitrag 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
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

dirkspostbox
Beiträge: 41
Registriert: 9. Sep 2020 12:58
Answers: 1

Re: Temperaturwerte vergleichen

Beitrag 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

Benutzeravatar
peter-pan
Beiträge: 2564
Registriert: 28. Nov 2018 12:03
Answers: 25
Wohnort: Schwäbisch Gmünd

Re: Temperaturwerte vergleichen

Beitrag von peter-pan »

Gerne. 👍🏻
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.1 openhabian

Antworten