
OpenHab Hissedilen Sıcaklık Hesabı
Bizler gibi OpenHab üzerinde akıllı ev sistemleriyle uğraşanlar için faydalı olması adına Hissedilen Sıcaklık nasıl hesapladığıma dair yapılandırmaları paylaşmak istedik.
Hissedilen Sıcaklık hesabı, ölçüm yapılan bölgenin coğrafi konumuna göre değişiklik gösterebilmekte. Aynı şekilde, hesaplama sonucu elde edilen derecenin konfor değerine dönüştürülmesi de.
Hissedilen sıcaklığı ölçmek için öncelikle ortamın sıcaklık ve değerlerine ihtiyacımız olacak. Örneğimizde, Salonumda bulunan AeonLabs MultiSensor 6‘dan okunan değerler kullanılmıştır. Bu değerler her değiştiğinde hissedilen sıcaklığın yeniden hesaplanması gerektiği için weather.rules adıyla bir kural oluşturduk. Bu dosyanın içeriği şu şekilde;
import org.eclipse.smarthome.core.library.types.DecimalType rule "Hissedilen sicakligi hesapla" when Item sensor_sicaklik changed or Item sensor_nem changed then var double sonuc var double sicaklik var double sicaklikF var double sicaklikF2 var double nem var double nem2 sicaklik = 0 nem = 0 if (sensor_sicaklik.state instanceof DecimalType) { sicaklik = (sensor_sicaklik.state as DecimalType).doubleValue } if (sensor_nem.state instanceof DecimalType) { nem = (sensor_nem.state as DecimalType).doubleValue } sicaklikF = (sicaklik * 1.8) + 32 sicaklikF2 = Math::pow(sicaklikF,2) nem2 = Math::pow(nem,2) sonuc = ((0 - 42.379 + 2.04901523 * sicaklikF + 10.1433127 * nem - 0.22475541 * sicaklikF * nem - 0.00683783 * sicaklikF2 - 0.05481717 * nem2 + 0.00122874 * sicaklikF2 * nem + 0.00085282 * sicaklikF * nem2 - 0.00000199 * sicaklikF2 * nem2) - 32.0) / 1.8 sicaklik_hissedilen.postUpdate(sonuc) end
Bu kural yardımıyla hesapladığım hissedilen sıcaklık değerini sicaklik_hissedilen alanına atıyoruz. Daha sonrada bu alanı site haritası üzerinde aşağıdaki şekilde gösteriyoruz.
Text label="Hissedilen Sıcaklık Değeri [%.1f °C]" item=sicaklik_hissedilen icon=temperature Text label="Hissedilen Sıcaklık [SCALE(humidex.scale):%s]" item=sicaklik_hissedilen icon=temperature
Dikkat ederseniz ikinci girdi de hissedilen sıcaklık değeri için konfor değeri’ni yazmaktayız. Bunun için aşağıdaki scale dönüşüm dosyasını (humidex.scale) kullanıyoruz;
[..-1[=Tanımsız [-1..27[=Soğuk/Serin [27..32[=Sıcak [32..41[=Çok Sıcak [41..54[=Tehlikeli Sıcak [54..100]=Çok Tehlikeli Sıcak ]100..]=Tanımsız