Шаг 1 – Соединитесь с LogicMachine
Соединитесь с LogicMachine при помощи стандартных параметров доступа (IP: 192.168.0.10; login/password: admin/admin)
Шаг 2 – Создайте сценарий: “Выключить все/включить, что было выключено”
На панели Скрипты (Scripting) нажмите кнопку Событийные (Even-based), затем добавьте сценарий, нажав Добавить новый скрипт (Add new script). В данном примере сценарий будет запущен каждый раз при активации группового адреса KNX со значениями 12/1/1
Шаг 3 – Сохраните сценарий и войдите в редактор
После сохранения сценария, нажмите на значке в колонке Редактор (Editor), чтобы войти в редактор сценариев. Вы легко можете найти подходящий код для ввода среди встроенных шаблонов, расположенных в левой части окна.
-- сохраняем ключ
key = 'multiswitch_1'
-- группы используемые в скрипте
groups = {
-- 1 байтовое диммирование
{ address = '0/0/7', status = '0/0/10', dt = dt.scale },
-- 1 байтовое диммирование
{ address = '0/0/8', status = '0/0/11', dt = dt.scale },
-- 1 битовое управление
{ address = '0/0/9', status = '0/0/12', dt = dt.bool },
}
-- текущее действие
on = event.getvalue()
-- текущее значение выключателя
value = storage.get(key .. 'status', false)
-- сейчас свет включён и мы его выключаем.
if value and not on then
state = {}
-- сохраняем текущее состояние для каждой группы и выключаем свет
for _, group in ipairs(groups) do
if type(group) ~= 'table' then
group = { address = group }
end
gdt = group.dt or dt.bool
state[ group.address ] = {
value = grp.getvalue(group.status or group.address),
dt = gdt
}
-- отправляем 0 или false, в зависимости от типа данных
val = group.dt == dt.scale and 0 or false
grp.write(group.address, val, gdt)
end
-- сохраняем значения и отмечаем что мы выключили
storage.set(key .. 'groups', state)
storage.set(key .. 'status', false)
end
-- сейчас свет выключен и мы его включаем - возвращаем значения
if not value and on then
state = storage.get(key .. 'groups', {})
-- возвращаем значения для каждой группы
for group, v in pairs(state) do
grp.write(group, v.value, v.dt)
end
-- отмечаем что свет включен
storage.set(key .. 'status', true)
end