Узлы «Интерфейс и панели»
В эту группу входят узлы, которые связывают программу с интерфейсом на панели и с устройством Knob Display: принимают нажатия, меняют вид элементов, считают серии нажатий и сообщений, зеркалят интерфейсы. Основные из них (UI - Panel in, ui - switch, api - helper - 2, UI - Panel out, interlock - 2) разобраны в разделе «Связь интерфейса с программой»; здесь они даны таблицей со ссылками. Остальные описаны подробно.
Как открыть окно любого узла, как пользоваться встроенной справкой и где остальные категории — на странице «Узлы U-Logic». Подписи полей даны так, как они показаны в окне узла.
Узлы связи с панелью
Эти узлы подробно описаны в разделе «Связь интерфейса с программой». Здесь — коротко и со ссылкой.
Узел |
Что делает |
Где подробно |
|---|---|---|
|
вход программы: принимает события всех открытых панелей и интерфейсов; настраивается один раз на вкладку |
|
|
раскладывает события панели по выходам по правилам: одно правило — один выход |
|
|
меняет вид элемента на панели (состояние кнопки, текст, цвет, ползунок, список) по значению из сообщения; умеет и переходы между страницами и оверлеями |
|
|
передаёт панели готовое сообщение от |
|
|
подсвечивает одну кнопку группы и гасит остальные по ответу устройства |
|
|
не рекомендуем: хранит своё положение отдельно от панели; переключатели делайте средствами UI-Designer |
|
|
отправить команду устройству и принять его ответ |
|
|
устаревшие версии; в новых программах берите |
— |
Примечание
Переключатель на панели обычно делают отметкой «Отметить как toggle» в UI-Designer — см. «Переключатели и группы». Узел toggle - helper для этого не нужен.
gesture - counter: двойное и тройное нажатие
Зачем. Одна кнопка может делать разное: одно нажатие включает свет в зале, двойное — весь свет. Узел gesture - counter считает нажатия выбранных кнопок интерфейса, которые идут одно за другим, и сообщает, набралась ли серия. Он работает с кнопками интерфейса из UI-Designer и получает события от UI - Panel in.
Окно узла gesture - counter: 1 — «Интерфейс», 2 — «Кнопки», 3 — «Событие», 4 — «Выходы», 5 — «Окно (мс)», 6 — «Порог N»
Поля окна:
«Интерфейс» — интерфейс, кнопки которого считаются. Пока интерфейс не выбран, в списке стоит «Выберите интерфейс…». Список заполняется после «Сохранить» и «Опубликовать» в UI-Designer.
«Кнопки» — список строк (на снимке рамка стоит на заголовке, сам список ниже). В каждой строке слева номер выхода, поле «Поиск элемента…» и список кнопок интерфейса; строку добавляет «+ добавить». В списке — только обычные и расширенные кнопки. Вместо одной кнопки можно включить флажок «Шаблон» и задать шаблон имён с режимом сравнения, как в
ui - switch(«Приём событий»).«Событие» — какое событие считать нажатием:
tap,push,release,hold. По умолчанию —release.«Выходы» — «Один выход на объект (By Object)» (по умолчанию: у каждой строки списка свой выход) или «Раздельные выходы (Match / Pass)» (два выхода: серия набрана и все остальные случаи). Для раздельных выходов появляется поле «Тайм-аут»: в нём выбирают, что отправить, если серия не набрана, — исходные сообщения («Pass Through (Original Msg)») или сообщение-описание («Gesture Object (matched: false)»).
«Окно (мс)» — сколько миллисекунд ждать следующего нажатия, чтобы оно считалось продолжением серии. По умолчанию 300.
«Порог N» — сколько нажатий подряд считать серией. По умолчанию 2.
Ещё в окне: «Имя узла» — подпись на вкладке; «Стратегия» — какие накопленные сообщения вернуть при раздельных выходах и «Pass Through»: все («Вернуть ВСЕ накопленные (All)», по умолчанию) или только последнее («Вернуть только последнее (Last)»). Поле видно и при «Один выход на объект», но в этом режиме не влияет.
Сообщения, которые пришли не от UI - Panel in, и события, не совпавшие с полем «Событие» или с кнопками списка, узел молча пропускает.
Пример: двойное нажатие кнопки «HDMI 2» в секции «Компактно» «Первой программы». Эта кнопка (Fp_Map_Hdmi2_b) не переходит на другую страницу, поэтому второе нажатие сделать можно. Что нужно заранее: загружен и опубликован интерфейс «Первая программа» (имена элементов — в «Первой программе»). Соберите новую цепочку на пустой вкладке.
Перетащите на вкладку
UI - Panel in,gesture - counterиdebugи соедините их по порядку. Если на вкладкеUI - Panel inуже есть, подключитесь к нему.Откройте
gesture - counter. В поле «Интерфейс» выберите «Первая программа».Нажмите «+ добавить».
В строке нажмите поле «Поиск элемента…» и начните вводить
Fp_Map_Hdmi2.Выберите в списке кнопку «HDMI 2» секции «Компактно» (в «Первой программе» это
Fp_Map_Hdmi2_b). Если списка нет или кнопки в нём нет, интерфейс не сохранён и не опубликован.Оставьте «Событие» —
release, «Выходы» — «Один выход на объект», «Окно (мс)» — 300, «Порог N» — 2. Нажмите «Готово».Откройте
debugи в поле «Выводить» выберите «весь msg объект сообщения».Нажмите «Готово» и «Развернуть». Откройте вкладку отладки (значок «жук»).
На панели дважды быстро нажмите «HDMI 2» в секции «Компактно».
Цепочка примера: UI - Panel in «События панели» → gesture - counter «Двойное нажатие HDMI 2» → debug «Серия нажатий»
Что вы увидите. В отладке — сообщение, в payload которого есть поле gesture: интерфейс, объект, событие, count (число нажатий) и matched: true. Одно нажатие, после которого за 300 мс не было второго, придёт на тот же выход с matched: false и count: 1. Если на контроллере загружена и сама программа «Первая программа», она параллельно отправляет команду матрице на каждое нажатие. Это работа других узлов вкладки, не gesture - counter.
Частые ошибки.
В списке «Кнопки» нет нужной кнопки — интерфейс не сохранён и не опубликован, или это не кнопка (ползунки и надписи узел не считает).
Серия не набирается — вторая кнопка нажата позже, чем за «Окно (мс)». Увеличьте окно или нажимайте быстрее.
Узел ничего не выдаёт — на его вход приходят не события
UI - Panel in, или в поле «Событие» выбрано не то событие, которое приходит от кнопки. Для обычной кнопки подходитrelease.
message - counter: считать сообщения
Зачем. Нужно среагировать не на каждое событие, а на каждое пятое: «после пяти аварийных сообщений подать сигнал», «после 100 включений напомнить о сервисе». Узел message - counter считает входящие сообщения (все или только с нужным значением) и сообщает, когда счёт дошёл до порога. Он не привязан к интерфейсу: подойдёт любой поток сообщений.
Окно узла message - counter: 1 — «Режим», 2 — «Порог N (триггер)», 3 — «Сброс общего при M»
Поля окна:
«Режим» — «messages — считать каждое сообщение» (по умолчанию) или «value — считать по совпадению значения». Во втором режиме появляются поля: «Путь к свойству» (по умолчанию
payload.input), «Тип сравнения» (equals,contains,regex), «Значение» (строка, число или логический тип) и дляregex— «Флаги regex» (например,i). Считаются только сообщения, у которых значение по указанному пути совпало.«Порог N (триггер)» — через сколько сообщений сработает третий выход. По умолчанию 5; справа в окне подпись «0 — триггер отключен».
«Сброс общего при M» — на каком общем счёте общий счётчик обнуляется. По умолчанию 100; подпись «0 — без авто-сброса».
Ещё в окне: «Имя узла» — подпись на вкладке.
У узла три выхода:
Выход |
Что приходит |
|---|---|
1 |
исходное сообщение с добавленным |
2 |
сообщение с числом в |
3 |
сообщение, когда счёт цикла дошёл до порога N: в |
Сбросить счётчики можно сообщением: если msg.reset равно true — сбрасываются оба счётчика; если в msg.reset лежит объект { "cycle": true, "total": true } — только отмеченные.
Пример без внешнего оборудования. Достаточно пустой вкладки.
Перетащите на вкладку
inject,message - counterи триdebug.Соедините выход
injectсо входомmessage - counter, а три выходаmessage - counter— с тремяdebug(по одному на выход). Подпишитеdebug«Выход 1», «Выход 2», «Выход 3» в поле «Имя».Откройте
message - counter: «Режим» — «messages», «Порог N (триггер)» — 3. Нажмите «Готово».Нажмите «Развернуть» и откройте вкладку отладки (значок «жук»).
Нажмите кнопку слева от
injectтри раза подряд.
Цепочка примера: inject «Сообщение» → message - counter «Считать до трёх» → три debug «Выход 1», «Выход 2», «Выход 3»
Что вы увидите. На каждое нажатие в отладке появляются сообщения «Выход 1» и «Выход 2». После третьего нажатия добавляется сообщение «Выход 3». С четвёртого нажатия счёт цикла идёт снова с начала: следующее сообщение «Выход 3» придёт после шестого нажатия.
Частые ошибки.
Ждёте сообщение на третьем выходе, а оно не приходит — порог N стоит 0 («триггер отключен») или счёт цикла ещё не дошёл до порога.
В режиме «value» ничего не считается — «Путь к свойству» указывает на поле, которого нет в сообщении, или значение не совпадает по выбранному «Типу сравнения». Подключите
debugсо всем сообщением и проверьте, где лежит значение.Общий счёт «пропал» — он обнуляется при достижении «Сброса общего при M». Для счёта без сброса поставьте 0.
Предпросмотр и зеркала интерфейсов
ui preview: окно предпросмотра на рабочей области
Зачем. Видеть результат рядом с программой: узел показывает веб-страницу по адресу в маленьком окне прямо на рабочей области. Входов и выходов нет, на работу программы он не влияет. Кнопка у узла на рабочей области обновляет окно.
Окно узла ui preview (нижняя часть обрезана): 1 — «URL», 2 — «Размер», 3 — «Масштаб», 4 — «Авто-обновление», 5 — «Тест»
Поля окна:
«URL» — адрес страницы (обязательное поле).
«Размер» — ширина и высота окна в пикселях; рядом кнопки «Обновить» и «Тест».
«Масштаб» — масштаб показа: 50%, 75%, 100%, 125% или 150%.
«Авто-обновление» — отключено или раз в 5, 10, 30 секунд, минуту.
«Тест» — открывает адрес в плавающем окне, которое можно двигать и менять по размеру. «Обновить» в окне узла только сообщает, что превью обновится после сохранения.
Ещё в окне: «Имя узла» — подпись на вкладке.
Зеркала интерфейсов: ui - mirror - in и ui - mirror - out
Зачем. Часто в зале несколько панелей с одинаковым составом кнопок (например, одинаковые интерфейсы на разных планшетах). Писать для каждой отдельную программу не нужно: пара узлов ui - mirror подменяет имя интерфейса, и один поток обрабатывает все панели. ui - mirror - in ставят после UI - Panel in, а ui - mirror - out — перед UI - Panel out.
Примечание
Элементы в зеркальных интерфейсах должны называться одинаково, иначе событие или команда не найдёт нужный элемент.
ui - mirror - in
Один вход, один выход. Принимает событие от UI - Panel in и подменяет в нём имя интерфейса на выбранное. Если целевой интерфейс не выбран, сообщение дальше не пойдёт.
Окно узла ui - mirror - in: 1 — «Целевой интерфейс»
Поля окна:
«Целевой интерфейс» — имя интерфейса, которое подставляется в событие (обязательное поле).
Ещё в окне: «Имя узла» — подпись на вкладке.
ui - mirror - out
Один вход; выходов столько же, сколько целевых интерфейсов. Из одного сообщения для UI - Panel out делает копии по числу целевых интерфейсов, в каждой — своё имя интерфейса. Если исходный интерфейс не совпадает с интерфейсом сообщения, сообщение дальше не пойдёт.
Окно узла ui - mirror - out: 1 — «Исходный интерфейс», 2 — «Целевые интерфейсы»: строка выбора и кнопка «Добавить», 3 — список выбранных интерфейсов с корзинами
Поля окна:
«Исходный интерфейс» — интерфейс, для которого собрано исходное сообщение (обязательное поле).
«Целевые интерфейсы» — интерфейсы, для которых нужны копии. В строке «Выберите интерфейс…» выберите интерфейс и нажмите «Добавить».
Список выбранных интерфейсов — по порядку, у каждого корзина для удаления; пока никто не выбран, написано «Нет выбранных интерфейсов».
Ещё в окне: «Имя узла» — подпись на вкладке.
Вспомогательные узлы
Узел press - hold работает рядом с другими узлами программы: отличает короткое нажатие от удержания.
press - hold: короткое нажатие и удержание
Зачем. Одна кнопка может делать два дела: короткое нажатие — один шаг (например, громкость на 1 больше), удержание — повторять шаги, пока кнопку не отпустили. Узел press - hold получает «нажали» и «отпустили», сам измеряет время и сообщает, что кнопку удерживают, а на время удержания выдаёт равномерные импульсы. Короткое нажатие он пропускает дальше как есть.
Окно узла press - hold: 1 — «Hold (мс)», 2 — «Held период (мс)», 3 — «Длина импульса (мс)», 4 — «Пульс при старте hold»
Как подать нажатие с панели. Узлу нужны сообщения, в msg.payload которых true — «нажали» и false — «отпустили». UI - Panel in и ui - switch выдают событие панели целиком (объект), поэтому между ними и press - hold нужны два узла change:
ui - switchс двумя правилами на одну кнопку: событиеpush(выход 1) и событиеrelease(выход 2) — как в блоке «Камеры» («Приём событий»).Выход 1 →
change«Нажали»: «Установить»msg.payload— тип «логический тип», значениеtrue.Выход 2 →
change«Отпустили»: то же, значениеfalse.Выходы обоих
changeсоедините со входомpress - hold.
Подавайте узлу строго true и false. Нажатие и отпускание нужно подать обязательно оба: удержание заканчивается только сообщением false.
Поля окна:
«Hold (мс)» — сколько миллисекунд держать кнопку, чтобы это считалось удержанием. По умолчанию 500.
«Held период (мс)» — через сколько миллисекунд повторять импульс, пока кнопку удерживают. По умолчанию 1000.
«Длина импульса (мс)» — сколько длится каждый импульс;
0(по умолчанию) — моментально:trueи сразуfalse.«Пульс при старте hold» — флажок, по умолчанию включён: подать первый импульс сразу, когда удержание началось, а не ждать «Held период».
Ещё в окне: «Имя узла» — подпись на вкладке.
У узла три выхода:
Выход |
Что приходит |
|---|---|
1 |
|
2 |
пока кнопка удерживается — |
3 |
если кнопку отпустили раньше «Hold (мс)» — два исходных сообщения подряд: нажатие и отпускание; при удержании ничего |
Пример: отличить короткое нажатие от удержания «HDMI 2» в «Первой программе». Что нужно заранее: загружен и опубликован интерфейс «Первая программа» («Первая программа»). Для кнопки возьмите Fp_Map_Hdmi2_b из секции «Компактно». Соберите цепочку на пустой вкладке.
Перетащите
ui - switch, дваchange,press - holdи триdebug. Если на вкладке нетUI - Panel in, добавьте его и соедините сui - switch.В
ui - switch: «Интерфейс» — «Первая программа», два правила наFp_Map_Hdmi2_b— с событиемpush(выход 1) и с событиемrelease(выход 2).Выход 1 подключите к
change«Нажали» (msg.payload— логический типtrue), выход 2 — кchange«Отпустили» (msg.payload— логический типfalse). Обаchangeсоедините сpress - hold; в нём оставьте значения по умолчанию.Три выхода
press - holdсоедините с тремяdebug; в поле «Имя» подпишите ихhold,heldиpassthrough.Нажмите «Развернуть» и откройте вкладку отладки (значок «жук»).
На панели один раз коротко нажмите «HDMI 2» в секции «Компактно». Затем нажмите её и держите около трёх секунд.
Цепочка примера: UI - Panel in → ui - switch «HDMI 2: нажали и отпустили» → change «Нажали» и «Отпустили» → press - hold «Короткое или долгое» → три debug «hold», «held», «passthrough»
Что вы увидите. Короткое нажатие: в passthrough — два сообщения (true, затем false), в hold — false, в held — ничего. Удержание: примерно через полсекунды в hold приходит true, в held — true и сразу false, затем та же пара каждую секунду. Когда вы отпустили кнопку, в hold приходит false, а в passthrough ничего нет. Если программа «Первая программа» загружена, она параллельно отправляет команду матрице на каждое нажатие. Это работа других узлов.
Частые ошибки.
Узел не реагирует — на вход пришло событие панели целиком, без
change. Нужны сообщения сtrueиfalse.Удержание не заканчивается, импульсы идут и идут — до узла не доходит
false: нет правила наreleaseили оно не соединено.Любое нажатие считается удержанием — «Hold (мс)» стоит слишком маленьким; увеличьте.
Короткое нажатие срабатывает дважды — исходное событие кнопки идёт в программу в обход
press - holdи ещё раз через его выходpassthrough. Подключайте действие короткого нажатия только к выходуpassthrough.Импульсы идут слишком часто или редко — настройте «Held период (мс)».
Knob Display и панели
Узлы этой группы работают не с интерфейсом UI-Panel (страница, на которой оператор работает с интерфейсом), а с отдельным устройством Knob Display — круглым дисплеем с энкодером (поворотной ручкой). Он стоит на стене, и вращением ручки меняют значение: яркость света, температуру, громкость. knob screen управляет тем, что показано на дисплее, и передаёт в программу вращение ручки и свайпы; device control управляет самим устройством и принимает показания его датчиков.
Примечание
Для работы обоих узлов нужно само устройство Knob Display в одной сети с контроллером. Окна настройки открываются и без устройства, но результата на дисплее и событий в программе не будет. Поэтому здесь нет примера, который можно собрать «вхолостую»: ниже — что настроить и что покажет статус узла.
Подключение к устройству
Оба узла работают через общую настройку подключения. Она создаётся один раз и выбирается в поле «Подключение» (у knob screen) или «Устройство» (у device control) — в обоих узлах это один и тот же список.
Откройте узел. Рядом со списком «Подключение» нажмите «+».
В открывшемся окне заполните поля и нажмите «Добавить».
Вернитесь в окно узла: новое подключение выбрано в списке. Нажмите «Готово».
Окно настройки подключения к устройству Knob Display: 1 — «Хост», 2 — «Локальный порт», 3 — «Автоподключение», 4 — «Secret Key»
Поля окна:
«Хост» — адрес устройства Knob Display в сети. По умолчанию стоит условный адрес; замените его адресом вашего устройства.
«Локальный порт» — порт, на котором контроллер принимает события устройства. В окне подпись: «Порт для приема событий (0 = случайный)». Оставьте значение по умолчанию, если нет причин его менять. Какие порты использует контроллер — в разделе «Сетевые порты и протоколы».
«Автоподключение» — флажок; включён по умолчанию. При включённом флажке узлы подключаются к устройству сами.
«Secret Key» — ключ доступа к устройству; в пустом поле подсказка «Ключ для configure». Заполняйте значением, которое выдано для вашего устройства, и никому не передавайте.
Ещё в окне: «Имя» — подпись подключения в списках узлов («Device Panel» — подсказка в пустом поле).
Пока подключение не выбрано, поле в окне узла обведено красной рамкой, а под узлом на вкладке — красный статус «no config».
knob screen: что показывать на дисплее
Зачем. Показать на дисплее текущее значение (индикатор или три строки текста), выводить короткие уведомления, переключать «экраны» свайпом и получать в программу вращение ручки. Например, ручка на стене управляет яркостью света: программа получает «повернули вправо» и меняет яркость, а на дисплее в это время показано текущее значение.
Окно узла knob screen, верхняя часть: 1 — «Подключение», 2 — «Режим», 3 — «Свайп → пресеты», 4 — «Экраны», 5 — блок «Тип индикатора», 6 — блок «Значения»
Окно узла knob screen, продолжение: «Настройки спиц» и тексты внутри индикатора (строки 1–3); стрелок нет
Поля окна (снимки — режим «GAUGE (Индикатор)», тип индикатора «Spokes (Спицы)»):
«Подключение» — подключение к устройству (см. выше).
«Режим» — «GAUGE (Индикатор)» (по умолчанию) или «TEXT (Текст)» — три строки текста.
«Свайп → пресеты» — какой свайп переключает экраны: «Отключено» (по умолчанию), «← Влево», «→ Вправо», «↑ Вверх», «↓ Вниз», «← → Горизонтальный», «↑ ↓ Вертикальный».
«Экраны» — вкладки 1, 2, 3 и так далее: набор готовых настроек дисплея. Кнопки «+» и «копия» добавляют экран, «–» удаляет.
Блок «Тип индикатора»: «Тип» — «Arc (Сплошная дуга)», «Sections (Цветные секции)» или «Spokes (Спицы)» (в окне на снимке стоят спицы).
Блок «Значения»: «Минимум» (0), «Максимум» (100), «Значение» (50) — начальное значение индикатора, «Шаг энкодера» (1) — на сколько меняется значение при повороте ручки.
Ещё в окне:
«Имя» — подпись на вкладке.
«Отправить при старте» — флажок; включён по умолчанию.
«Превью» — картинка дисплея, как он будет выглядеть.
«Уведомления» — список всплывающих уведомлений; «+» добавляет. У каждого можно задать текст, значок, положение и размер, цвета, шрифт, время показа.
Блок «Цвета»: «Цвет заполнения» и «Цвет фона».
Блок «Геометрия»: «Толщина», «Начальный угол», «Конечный угол».
Блок «Настройки спиц» (только для типа «Spokes (Спицы)»): «Количество спиц», «Волновая анимация».
Блок «Секции» (только для типа «Sections (Цветные секции)»): цветные участки шкалы.
Три блока «Текст в gauge»: строка 1 (заголовок), строка 2 (основная, по умолчанию
{value}— текущее значение) и строка 3 (подпись). В каждом: «Текст», «Иконка», «Размер иконки», «Цвет иконки», «Размер текста», «Цвет текста», «Шрифт».
Что принимает узел. Сообщение, в msg.payload которого лежит объект:
Что отправить |
Что произойдёт |
|---|---|
|
индикатор показывает 75 |
|
включается экран 2 (нумерация с 1) |
|
показывается уведомление № 1 из списка |
Что-либо кроме объекта узел игнорирует.
Что выдаёт узел. Один выход: события устройства в msg.payload — вращение ручки (encoder, с направлением cw/ccw по часовой и против и значением), свайп (swipe, направление left/right/up/down), готовность дисплея и смену экрана. К событию добавляется номер текущего экрана. Свайп, которым переключён экран, дальше в программу не передаётся.
Что вы увидите. Состояние подключения — в статусе под узлом: зелёный — подключено (написан адрес устройства), жёлтый «connecting…» — идёт подключение, красный «disconnected», «error», «socket error» или «no config» — нет связи или не выбрано подключение.
Частые ошибки.
Красный статус «no config» — не выбрано подключение: откройте узел и выберите его в списке «Подключение».
«disconnected» или «error» — проверьте адрес устройства в подключении и что устройство включено и находится в той же сети.
Адрес в подключении остался условным, заданным по умолчанию — узел не найдёт устройство.
Значение не меняется — на вход пришло не объект (например, просто число). Положите число в поле
value:{ "value": 75 }.
device control: управлять самим устройством
Зачем. knob screen отвечает за картинку на дисплее. Узел device control управляет остальным: включить и выключить экран, поменять яркость, заблокировать клавиши, зажечь светодиод, отправить инфракрасную команду. Он же передаёт в программу показания датчиков устройства (присутствие, температура, влажность, освещённость) и нажатия клавиш.
Окно узла device control: 1 — «Устройство», 2 — «Действие», 3 — блок «Фильтр событий (выход)»
Поля окна:
«Устройство» — то же подключение, что у
knob screen(кнопки «карандаш» и «+» рядом со списком).«Действие» — что делает узел при получении сообщения. По умолчанию «– Нет (только события) –»: узел только принимает события устройства. Действия в списке, по группам:
«Экран»: «Включить экран», «Выключить экран», «Статус экрана»;
«Яркость»: «Установить яркость» — значение 0–255 в поле «Яркость» (по умолчанию 128; подпись рядом: «0-255 (или msg.payload = число)»). Если в пришедшем сообщении
msg.payload— число, берётся оно, а не значение из окна; любое другое содержимоеmsg.payloadигнорируется и берётся значение из окна. Значение вне 0–255 приводится к ближайшей границе;«Клавиши»: «Заблокировать клавиши», «Разблокировать клавиши»;
«LED (D10)»: «LED включить», «LED выключить», «LED мигать» — с полями «LED индекс» и «Интервал мс»;
«IR (тип R)»: «Отправить IR команду» (поля «Профиль», «Команда», «Повторы»), «Список IR профилей»;
«Система»: «Статус устройства»;
«Расширенное»: «Передать msg.payload» — действие и его параметры берутся из
msg.payloadсообщения;служебная группа действий самого устройства (статус, перезапуск, наблюдение за работой) — для обычной программы не нужна.
Блок «Фильтр событий (выход)»: флажок «Фильтровать» («Выбрать какие события выводить», выключен по умолчанию). Когда он включён, вы выбираете, какие события пропускать на выход: «Presence (датчик присутствия)», «Sensors (температура, влажность, свет)», «Daemon (события демона)» (служебные события устройства), «Keys (клавиши, D10)», «Responses (ответы на команды)». Пока «Фильтровать» выключен, на выход идут все события.
Ещё в окне: «Имя» — подпись на вкладке («Device Control» — подсказка в пустом поле).
Что принимает и выдаёт узел. Любое сообщение на входе запускает выбранное «Действие» (при «– Нет –» — ничего). Один выход выдаёт события и ответы устройства в msg.payload, например показание датчика присутствия { "type": "presence", "value": 1 } или температуры { "type": "temperature", "value": 27.5 }. Чтобы разложить события по веткам, добавьте после узла switch по полю payload.type. Вращение ручки и свайпы идут на выход knob screen, а не сюда.
Типовая схема: inject → device control с действием «Установить яркость» меняет яркость экрана устройства. Узел inject по умолчанию кладёт в msg.payload метку времени: это число, и яркость станет 255. Чтобы взять яркость из окна узла device control, задайте в inject для msg.payload тип «строка» и оставьте поле пустым; чтобы задать яркость из inject, выберите тип «число» и впишите значение от 0 до 255. Результат виден только на устройстве.
Что вы увидите. Статус под узлом — состояние подключения: так же, как у knob screen. Красный «no config» — не выбрано устройство.
Частые ошибки.
Нет событий на выходе — устройство не подключено (красный статус) или включён «Фильтровать», а нужный тип события не отмечен.
Сообщение пришло, а команда не выполнена — для «Передать msg.payload» в
payloadлежит не объект нужного вида.Ждёте на выходе вращение ручки — оно приходит на выход узла
knob screen.
Все поля узлов — во встроенной справке: откройте вкладку «справка» боковой панели (значок книги) и выберите узел.