Позволяет выбрать нужный цвет и в последствии менять яркость свечения, при этом не изменяя цвет.
Настройка
Для установки уровня яркости потребуется еще один групповой адрес (0/0/10)
Шаг 1 — Соединитесь с LogicMachine
Соединитесь с LogicMachine при помощи стандартных параметров доступа (IP: 192.168.0.10; login/password: admin/admin)
Шаг 2 – Создайте групповые адреса
Создайте 6 групповых адресов управления каждым цветом RGB светильника.
Для отправки значений на EVIKA KNXLED используйте адреса: 0/0/5, 0/0/6 и 0/0/7
Для выбора цвета будут использоваться адреса: 0/0/12, 0/0/13 и 0/0/14
Для установки уровня яркости потребуется еще один групповой адрес (0/0/10)
Шаг 3 — Создайте скрипт: “RGB диммирование”
На панели Скрипты (Scripts) нажмите кнопку Событийные (Event-based), затем добавьте сценарий, нажав Добавить новый скрипт (Add new script). В данном примере сценарий будет запущен каждый раз при отправке значения на любой из групповых адресов KNX, управляющих RGB светильником (если меняется значение одного из цветов или яркость).
Шаг 4 — Cохраните сценарий и войдите в редактор
После сохранения сценария, нажмите на значке в колонке Редактор (Editor), чтобы войти в редактор сценариев. Вы легко можете найти подходящий код для ввода среди встроенных шаблонов.
Следующий код для диммирования заданного цвета, но необходимо сделать еще установку цвета, с учетом установленного уровня яркости.
-- получение значение яркости с регулятора
bright = event.getvalue()
-- получение значения о выбранном цвете из групповых адресов
red1 = grp.getvalue('0/0/12')
green1 = grp.getvalue('0/0/13')
blue1 = grp.getvalue('0/0/14')
-- получение нового значения каждого канала с учетом уровня яркости
red2 = red1*bright/100
green2 = green1*bright/100
blue2 = blue1*bright/100
-- запись новых значений
grp.write('0/0/5', red2)
grp.write('0/0/6', green2)
grp.write('0/0/7', blue2)
-- с учетом уровня яркости
new_red = value_red * value_lum / 100
new_green = value_green * value_lum / 100
new_blue = value_blue * value_lum / 100
-- запишите новые значения
grp.write('1/1/2', new_red, dt.scale)
grp.write('1/1/3', new_green, dt.scale)
grp.write('1/1/4', new_blue, dt.scale)
Шаг 5 — Создаем 3 скрипта на каждую из составляющих цвета
Необходимо создать 3 событийных скрипта на групповых адресах, использующихся для выбора цвета (0/0/12, 0/0/13, 0/0/14).
На примере красного цвета (0/0/12):
-- получение значения на вводе
value = event.getvalue()
-- получение значения яркости из группового адреса
bright = grp.getvalue('0/0/10')
-- получение нового значения канала с учетом уровня яркости
red = value*bright/100
color = math.floor(red + 0.5)
-- запись нового значения
grp.write('0/0/5', color)