Задача
Необходимо преобразовать 4х битовое управление (тип данных 03.007 диммирование/жалюзи) в объект с однобайтовым значением (05. 1 байт, целое без знака). Например, для выключателей, работающих только с 4х битовым диммированием и исполнительных устройств, принимающих только однобайтовое значение.
Решение
Создаем 2 групповых объекта: 4х битовое управление (3/2/72) и объект для значения (3/2/73)
Внимание! Проверьте, что объект 10/0/100 имеет тип данных 3.007 и объект 10/0/101 имеет тип данных 05. Для этого следует посмотреть на вкладку Объекты (Objects).
Создаем скрипт в Скрипты –> Резидентные (Scripting -> Resident).
Добавляем следующий код:
step = grp.getvalue('3/2/72')
-- volume up (увеличиваем громкость)
if step == 0x09 then
value = grp.getvalue('3/2/73')
newvol = math.min(100, value + 5)
-- set new value (установка нового значения)
grp.write('3/2/73', newvol)
-- volume down (уменьшаем громкость)
elseif step == 0x01 then
value = grp.getvalue('3/2/73')
newvol = math.max(0, value - 5)
-- set new value (установка нового значения)
grp.write('3/2/73', newvol)
end
os.sleep(0.2)