0
Voltooid

Триггер с памятью, возвращающий последнее установленное значение переменной

Ekaterina (head of support) 6 jaar geleden in iRidium Script / AV and Driver scripts bijgewerkt 5 jaar geleden 1
Триггеры, которые переключаются из нуля в свое предыдующее состояние, часто используются для раелизации кнопки Mute и управления светом, вместе с основным управляющим элементом - уровнем. Триггер с памятью позволяет именно вренуться в последнее включенное состояние, а не к "умолчанию" обычного триггера.

Чтобы сделать триггер с памятью, используйте скрипт, приведенный в проекте-примере:

KNX_SmartTrigger.irpz

Скрипт подходит для любого драйвера, не только KNX.
Чтобы он начал работать, настройте связь с оборудованием, команды и каналы, кнопки, которые будут служить в качестве "умных" триггеров.

Кнопка должна иметь тип Button, к ней должен быть привязан канал обратной связи от управляемого адреса, чтобы она отображала реальное его состояние.

Далее, откройте редактор скриптов - [JS], и создайте в нижней части скрипта описание всех "умных" триггеров так же, как это сделано в примере.

Для каждого триггера описывается:
  • имя управляемого драйвера
  • имя адреса, куда триггер отправляет данные (имя команды, куда отпарвляются данные, и имя канала обратной связи в настройках драйвера должны быть одинаковыми)
  • путь к кнопке-триггеру (страница, имя элемента)
  • значение, которое триггер "помнит" по умолчанию. Оно нужно при запуске проекта. Если при запуске переменная = 0, триггер он установит при нажатии это значение.
Экземпляр триггера в файле скрипта выглядит так:
trigger(IR.GetDevice("KNX Router (KNXnet/IP)"),    // драйвер          
	"Address 1",                               // адрес KNX (Command = Feedback)
IR.GetItem("Page 1").GetItem("Item 2"),    // кнопка-триггер          
	50)                                        // значение триггера по-умолчанию
чтобы создать другой триггер, вам нужно скопировать только этот блок данных и заменить необходимые параметры - адрес элемента, адрес KNX, имя драйвера. Остальная часть файла скрипта остается неизменной.