Hallo,
ich habe es heute doch noch geschafft, dass Openhab2 mir die Werte berechnet.
An bei die Items und Rule für den "DS2450 als Multisensor" von https://www.tm3d.de
1) Itmes: Ich habe immer zwei Items gewählt. Eine für die Messung, den zweiten für den berechnet Wert
2) Rules
Gruß
Lothar
ich habe es heute doch noch geschafft, dass Openhab2 mir die Werte berechnet.
An bei die Items und Rule für den "DS2450 als Multisensor" von https://www.tm3d.de
1) Itmes: Ich habe immer zwei Items gewählt. Eine für die Messung, den zweiten für den berechnet Wert
Code:
Number OW_Temp_messung {onewire="deviceId=20.1BDB84000003;propertyName=volt.A;refreshinterval=60"} Number OW_Temp "Temp [%.2f °C]" <temperature> (gGA,RRD_Temp) Number OW_Hum_messung {onewire="deviceId=20.1BDB84000003;propertyName=volt.B;refreshinterval=60"} Number OW_Hum "HUM [%.2f %%]" <humidity> (gGA,RRD_Hum) Number OW_Lux_messung {onewire="deviceId=20.1BDB84000003;propertyName=volt.C;refreshinterval=60"} Number OW_Lux "Helligkeit [%.2f LUX]" <sun> (gGA,RRD_Hum) Number OW_Druck_messung {onewire="deviceId=20.1BDB84000003;propertyName=volt.D;refreshinterval=60"} Number OW_Druck "Luftdruck Ausen2 [%.2f hPa]" (gGA)
2) Rules
Code:
//Volt.A = Temperatur = (voltA - 2.56) * 128 //Volt.B = Feuchte = $voltB * 128 //Volt.C = Helligkeit = EXP(($voltC-2,56)*12,8) //Volt.D = Luftdruck = $voltD * 400
Code:
[SIZE=12px]rule "Temperatur DS2450_Ausen_20.1BDB84000003"[/SIZE] [SIZE=12px]when [/SIZE] [SIZE=12px]Item OW_Temp_messung received update[/SIZE] [SIZE=12px]then [/SIZE] [SIZE=12px]//logInfo("DS2450_Temp", "Temp Berechnen 20.1BDB84000003")[/SIZE] [SIZE=12px]var temp = (OW_Temp_messung.state as DecimalType - 2.56) * 128[/SIZE] [SIZE=12px]//logInfo("DS2450_Temp","ErgebnissTemp: " + temp + " °C")[/SIZE] [SIZE=12px]sendCommand(OW_Temp,temp)[/SIZE] [SIZE=12px]end[/SIZE] [SIZE=12px]rule "Luftfeuchte DS2450_Ausen_20.1BDB84000003"[/SIZE] [SIZE=12px]when [/SIZE] [SIZE=12px]Item OW_Hum_messung received update [/SIZE] [SIZE=12px]then [/SIZE] [SIZE=12px]//logInfo("DS2450_Luftfeuchte", "Feuchte Berechnen 20.1BDB84000003")[/SIZE] [SIZE=12px]var feuchte = OW_Hum_messung.state as DecimalType * 128[/SIZE] [SIZE=12px]//logInfo("DS2450_Luftfeuchte", "ErgebnissFeuchte: " +feuchte + " %")[/SIZE] [SIZE=12px]sendCommand(OW_Hum,feuchte)[/SIZE] [SIZE=12px]end[/SIZE] [SIZE=12px]rule "Helligkeit DS2450_Ausen_20.1BDB84000003"[/SIZE] [SIZE=12px]when [/SIZE] [SIZE=12px]Item OW_Lux_messung received update [/SIZE] [SIZE=12px]then [/SIZE] [SIZE=12px]//logInfo("DS2450_Helligkeit", "LUX Berechnen 20.1BDB84000003")[/SIZE] [SIZE=12px]var double lichtlux = Math::exp(((OW_Lux_messung.state as DecimalType).doubleValue -2.56) * 12.8)[/SIZE] [SIZE=12px]//logInfo("DS2450_Heligkeit", "ErgebnissLichtLUX: " + lichtlux + " LUX")[/SIZE] [SIZE=12px]sendCommand(OW_Lux,lichtlux) end[/SIZE] [SIZE=12px]rule "Luftdruck DS2450_Ausen_20.1BDB84000003"[/SIZE] [SIZE=12px]when [/SIZE] [SIZE=12px]Item OW_Druck_messung received update [/SIZE] [SIZE=12px]then [/SIZE] [SIZE=12px]//logInfo("DS2450_Luftdruck", "Druck Berechnen 20.1BDB84000003") // Höhen Korrektur berechnet hk = [/SIZE](1- HOEHE / 44330) ^ 5.255 // 139m => 0.98363210471 [SIZE=12px]var ldruck = (OW_Druck_messung.state as DecimalType * 400) [/SIZE]/ 0.98363210471 [SIZE=12px]//logInfo("DS2450_Luftdruck", "ErgebnissDruck: "+ ldruck + " hPA")[/SIZE] [SIZE=12px]sendCommand(OW_Druck,ldruck)[/SIZE] [SIZE=12px]end[/SIZE]
Lothar
Kommentar