This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

Tunable White template - Wiser for KNX
#1
Hi,

Is there any template for tunable white thats based on time and location?
I want the color temperature of the luminaries to follow the outdoor temperature depending on time and season.

Some sort of astronomical function.

Is this possible?
Reply
#2
Hi!

Have you found that template ?

Thanks
Reply
#3
You can do simple linear transition between min/max temperature based on current time relative to sunrise/sunset.
Code:
-- minimum/maximum color temperature
tmin = 2700
tmax = 5000

-- device coordinates
latitude = 0
longitude = 0

sunrise, sunset = rscalc(latitude, longitude)

date = os.date('*t')
now = date.hour * 60 + date.min

now = math.max(now, sunrise)
now = math.min(now, sunset)

pos = (now - sunrise) / (sunset - sunrise)

color = math.floor(tmin + (tmax - tmin) * (1 - pos))

grp.checkupdate('1/1/1', color)
Reply
#4
Made some adjustments. Now it gets true midday and goes from sunset to midday (min-max) and midday to sunset (max-min), because temperature function should be a parabola.

Code:
-- minimum/maximum color temperature
tmin = 2700
tmax = 5800

-- device coordinates
latitude = 0
longitude = 0

sunrise, sunset = rscalc(latitude, longitude)
midday = (sunset + sunrise) / 2

date = os.date('*t')

now = date.hour * 60 + date.min
now = math.max(now, sunrise)
now = math.min(now, sunset)

if (now < midday) then
    pos = (now - sunrise) / (midday - sunrise)
    color = math.floor(tmin + (tmax - tmin) * (pos))
else
    pos = (now - midday) / (sunset - midday)
    color = math.floor(tmin + (tmax - tmin) * (1 - pos))
end
grp.checkupdate('1/1/1', color)
Reply


Forum Jump: