Управление освещением
    Презентации
    Технические решения на LogicMachine
    Визуализация
      evika.ru    Технические решения на LogicMachine    Сценарий: Выключить всё когда уходите. Включить когда вернетесь домой, только то, что было выключено

    Сценарий: Выключить всё когда уходите. Включить когда вернетесь домой, только то, что было выключено

    Шаг 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




    Copyright © Evika.ru 2017
    All Rights Reserved