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

Leave a Comment

en_USEnglish