Легкое пробуждение в умном доме (добавление эффекта восхода солнца в RGB светодиодную ленту)

2 мая 2019 г.

Утром будильник становится на цыпочки, выглядывает в окно. Хоть он и помнит, какую обещали погоду, но проверить никогда не мешает. Если не учтешь погоду, можно ошибиться с пробуждением ребенка.

Кир Булычев «Остров ржавого генерала» 

Жизнь человека привязана к естественным изменениям в живой природе, так называемым биоритмам, зависящим от времени суток, восхода и заката солнца и т.д. Порой очень сложно вставать по утрам, особенно в пасмурную погоду или зимой, когда солнечного света утром совсем мало. Может ли наш умный дом помочь легче просыпаться утром? Ответ да, если в изголовье кровати вмонтирована светодиодная RGB лента, интегрированная в систему управления умным домом. Содержание мелатони́на (гормона сна) напрямую зависит от солнечной активности. Моделирование естественного цикла восхода солнца позволит нам проще проснуться по утрам и быть в хорошем настроении. Итак, что для этого нужно?

Если залезть в википедию, то можно увидеть вот такую диаграмму, показывающую кривую натурального освещения. Но как же теперь разложить цветовую температуру в кельвинах на RGB компоненты? Еще немного поискав в интернете, наткнулся на статью Mitchell Charity, в которой он  уже решил эту задачу. 

T(K)RGB
15002551110
220025515241
270025517484
4200
255
217171

Как мы видим, в интересующем нас диапазоне меняются только каналы G, B. Для установки необходимой цветовой температуры на светодиодной ленте необходимо масштабировать весь интересующий нас цветовой диапазон и яркости свечения по шкале от [1, 20] - времени нашего восхода в минутах для того, чтобы смоделировать естественный восход солнца, когда интенсивность света увеличивается, а длина волны постепенно уменьшается от красного к белому. Для этого есть простая формула: X'=(X-Xmin)/(Xmax-Xmin). Здесь X - изначальное значение параметра, X' - нормализованное. Осталось написать небольшой скрипт на DzVents для Domoticz для реализации нашей затеи. 

return {

   on = {
      timer = {'every minute at 06:40-07:00 on mon,tue,wed,thu,fri'}
   },
   
   data = {
      minutes_after_sunrise = { initial = 1 }
   },
   
execute = function(domoticz)

    local maxTime = 20
    local minTemp = 506
    local maxTemp = 1800
    
    local minBr = 5
    local maxBr = 60

        if (domoticz.data.minutes_after_sunrise > maxTime) then domoticz.data.minutes_after_sunrise =  maxTime end
        if (domoticz.time.matchesRule('at 06:40')) then domoticz.data.initialize('minutes_after_sunrise') end
    
    local Kelvin = math.floor((domoticz.data.minutes_after_sunrise-1)/(maxTime-1)*(maxTemp-minTemp)+minTemp)
    local Brightness = (domoticz.data.minutes_after_sunrise-1)/(maxTime-1)*(maxBr-minBr)+minBr
    
        -- перевод цветовой температуры в RGB
        local temp = Kelvin / 100

        if (temp <= 66) then
            R = 255
            G = 99.4708025861 * math.log(temp) - 161.1195681661
            if (temp <= 19) then B = 0
                
            else 
                B = 138.5177312231 * math.log(temp-10) - 305.0447927307

            end

        else 
            R = 329.698727446 * math.pow((temp - 60), -0.1332047592)
            G = 288.1221695283 * math.pow((temp - 60), -0.0755148492 )
            B = 255;

        end
    
        domoticz.log('Minute = '..domoticz.data.minutes_after_sunrise..' T Kelvin = '..Kelvin .. 
             ' Brightness = '.. Brightness..' R='..R..' G='.. G ..' B='..B)
        domoticz.devices('Bed Light').setColor(R, G, B, Brightness)
        domoticz.data.minutes_after_sunrise = domoticz.data.minutes_after_sunrise +1
            
end
}

Скрипт вызывается каждую минуту утром в будние дни, постепенно изменяя оттенки RGB светодиодной ленты от красного света к теплому, меняя яркость, тем самым моделируя первые лучи восхода солнца. Шкалу яркости я выбрал от 5 до 60 (чтобы яркий свет утром не бил в глаза).  Для корректного отображения цвета на светодиодной ленте в прошивке Sonoff-Tasmota необходимо включить LED гамма-коррекцию командой в консоле LedTable 1

Вот так простым способом можно сделать нашу жизнь проще и комфортней. 


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

  1. (TopGun)
    (TopGun) 18 дней назад

    Вот бы такое для HA, зачёт. Я так понимаю это можно применить не только к ленте но и к лампе?

    • Антон Киселёв (Whilser)
      Антон Киселёв (Whilser) 18 дней назад

      Конечно можно, главное чтобы она была RGB, для WW ламп такое тоже можно сделать, но тогда скрипт надо немного изменить. 

К списку блогов

Скидки для сообщества

Ноотехника

+375 17 233-25-45
Промокод:
Sprut
Размер скидки:
10%
Действует у всех официальных представителей. Для применение необходимо указать в поле комментария или при звонке менеджеру.

УЮТНЫЙ ДОМ

+7 495 797-21-74
Промокод:
SPRUT
Размер скидки:
5%

Похожие записи

5 февр. 2019 г.
Строю свой первый дом и рассказываю о муках выбора, проводке под умный дом, оборудовании. 30.04.2019 - об уличной проводке
26 апр. 2019 г.
Обновление Умного зеркала, доработали, причесали, и теперь почти закончили наворачивать функционал зеркала.
15 янв. 2019 г.
Умная вытяжка.
30 янв. 2019 г.
Я построю свой луна-парк, с блекджеком и шлюхами! Хотя, к черту лунапарк !
26 февр. 2019 г.
Первое впечатление от диммера для относительно бюджетного проводного умного дома.
3 февр. 2019 г.
Нам потребуется система на Deconz с установленным GUI, лампа Hue c обновленной прошивкой по предыдущей заметке (потребуется Hue Hub)
16 янв. 2019 г.
Короткая заметка о работе сценариев MiHome без интернета
18 апр. 2019 г.
В статье описана интеграция Wi-Fi переключателя в стандартный удлинитель.
19 февр. 2019 г.
Описываем как подключать устройство в свою Wi-Fi сеть.
19 нояб. 2018 г.
Уведомление о закипании чайника на умной розетке. Или о том, что чайник не был включен и не вскипит.