Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.

+7 495 204-27-80

В детской комнате можно организовать функцию плавного выключения света в определенное время, например, в десять вечера. Свет будет медленно гаснуть, процесс выключения займет не менее 10 минут, пока свет полностью не выключится.

Рис. 1. Детская комната

Рис. 1. Детская комната

Стандартными средствами контроллеров VeraLite или Vera такую идею можно воплотить через визуальный редактор сцен. Но страшно представить, сколько придется поставить задержек выполнения сцены и запланировать переключений, чтобы ничего не пропустить, особенно при управлении двумя или тремя источника освещения. Предлагается более простой вариант – использование готового кода на языке Lua.

Для того, чтобы физически управлять светом, необходимо иметь установленные диммеры Z-Wave (*1), благо их стоимость не сильно превышает стоимость обычного диммера, а функционал ограничен только фантазией. Все устройства отображаются в панели управления контроллера VeraLite, рис. 2.

Рис. 2. Панель управления интерфейса UI5 VeraLite

Рис. 2. Панель управления интерфейса UI5 VeraLite

Каждое устройство в VeraLite имеет свой номер и необходимо знать его, для того чтобы использовать в дальнейшем. Посмотреть можно в панели управления, в настройках устройства, например, на рис. 3 приведено устройство с номером 35.

Рис. 3. Диммер с порядковым номером 35

Рис. 3. Диммер с порядковым номером 35

Для того, чтобы создать сцену очень медленного выключения света необходимо перейти на вкладку «Автоматизация» / «Новая сцена» и вставить во вкладку «LUUP» нижеприведенный код. Для того чтобы избежать ошибок при копировании кода с сайта, его рекомендуется скачать в виде отдельного файла sleep.zip. Перед вставкой кода измените номера диммеров на ваши собственные, их можно перечислять через запятую {37,38,39,48}. Обратите внимание, что по умолчанию в коде время задержки (в секундах) перед каждым шагом убавления яркости указано очень маленьким, всего три секунды. Это сделано для того, чтобы можно было быстро проверить корректность работы кода. После проверки измените значение шага на более длительное время, например, десять или пятнадцать секунд. Еще одна ремарка заключается в том, что количество шагов по уменьшению света со 100% яркости до 0% должно быть целым числом (100/1=100 шагов, НО не 100/3=33,3 – здесь свет останется включенным на яркости 1%).

Также обратите внимание на то, что если вы задали четыре устройства {37,38,39,48}, то должно быть четыре конечных уровня освещенности и четыре шага диммирования. Если устройство одно, то соответственно, в коде должно быть только одна цифра, например, {48}.

local pollWaitPeriod=10 -- время задержки в секундах перед началом выполнения этой сцены

local dimDelayPeriod=3 -- время задержки в секундах перед каждым шагом убавления яркости
local dimDevices={37,38,39,48} -- номера устройств для диммирования через запятую, например {37,38,39,48}
local dimTargets={0,0,0,0} -- конечные уровни диммирования для вышеобозначенных устройств, если задано четыре устройства, то должно быть четыре конечных уровня диммирования
local dimIncrements={-10,-5,-20,-10} -- процент уменьшения яркости при каждом шаге диммирования, если вы хотите выключить свет в ноль, то 100 делить на процент изменения должно быть целым числом

function DimLights()
local finishedDimming=true
local dimLevel
local dimUpDown

for index,deviceNumber in ipairs(dimDevices) do
dimLevel=luup.variable_get("urn:upnp-org:serviceId:Dimming1","LoadLevelStatus",deviceNumber)
dimUpDown=dimIncrements[index]/math.abs(dimIncrements[index])

if (dimTargets[index]-dimLevel)*dimUpDown>0 then
finishedDimming=false
luup.call_action("urn:upnp-org:serviceId:Dimming1","SetLoadLevelTarget",{newLoadlevelTarget=dimLevel+dimIncrements[index]},deviceNumber)
end
end
if not finishedDimming then luup.call_timer("DimLights",1,dimDelayPeriod,"","") end
end

for _,deviceNumber in ipairs(dimDevices)do
luup.call_action("urn:micasaverde-com:serviceId:HaDevice1","Poll",{},deviceNumber)
end
luup.call_timer("DimLights",1,pollWaitPeriod,"","")


-- основано на коде brsipaq, forum.micasaverde.com
-- z-wave.ru, Михаил Шардин

Обязательно нажмите «Сохранить lua» после вставки кода, рис 4.

Рис. 4. Вставка кода в сцену

Рис. 4. Вставка кода в сцену

Затем переходим во вкладку «Расписания», рис. 5, где задаем необходимое время срабатывания в установленные дни недели в определенное время.

Рис. 5. Задание расписание срабатывания

Рис. 5. Задание расписание срабатывания

Далее «подтвердите изменения» и нажмите «Cохранить» в правом верхнем углу под часами.

После этого сцена будет срабатывать в определенное время, указанное время.

Результатом применения статьи может стать еще один шаг в сторону превращения устройств Z-Wave из простого набора микросхем в умных домашних помощников.

Ссылки, упоминаемые в статье:

*1. http://www.z-wave.ru/shop/category/ispolniteli/dimmery.html

Информация актуальна на дату написания статьи: январь 2015 года.

Автор: Михаил Шардин 

Способы доставки

Самовывоз

Самовывоз заказов осуществляется из ПВЗ СДЭК.

Доставка по Москве

Стоимость курьерской доставки по Москве в пределах МКАД составляет 350 руб.

Доставка по России

В другие города мы отправляем товар компаниями «СДЭК», «EMS» после поступления оплаты заказа.

Подробнее о способах доставки...

 

 

 

Последнее на форуме

Контакты

  • +7 495 204-27-80
  • Пн.-Пт.: с 1000 до 1900
  • Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
  • Реквизиты организации