Виртуальное устройство "Кнопка"

Материал из XIOT Wiki
Перейти к навигации Перейти к поиску


Кнопка - это системное виртуальное устройство XIOT для обработки физической или программной кнопки. Устройство принимает сигнал нажатия/отпускания, определяет тип действия и запускает связанные команды: управление светом, шторами, устройствами или сценариями.

⚙️ Назначение

Кнопка используется как промежуточный логический слой между реальным входом и управляемыми устройствами. На практике это позволяет:

  • превратить дискретный вход контроллера, KNX-клавишу или другой источник в события XIOT;
  • быстро выполнять действие сразу при нажатии;
  • отличать одиночный, двойной и тройной клик;
  • отличать короткое нажатие от долгого удержания;
  • использовать одну кнопку для света, штор, реле, розеток, сирен и сценариев.

🧩 Работа характеристик

Устройство содержит две обязательные характеристики и одну дополнительную:

  • состояние кнопки - входная характеристика. Принимает состояния нажата и отжата. Обычно именно она связывается с физическим адресом состояния входа.
  • действие кнопки - логическая характеристика. Заполняется автоматически по результату обработки нажатия.
  • счетчик нажатий - дополнительная характеристика для источников, которые передают не состояние нажата / отжата, а растущий счетчик нажатий.

При изменении характеристики состояние кнопки устройство запускает внутреннюю логику. Результат записывается в действие кнопки и может быть использован встроенными блоками управления или сценариями.

Если используется счетчик нажатий и включен параметр Определять действие кнопки по счетчику нажатий, изменение счетчика на одно значение формирует одиночный клик, на два значения - двойной клик, на три значения - тройной клик. После такого события кнопка автоматически возвращает действие кнопки в состояние отпустили.

🔌 Интеграция с оборудованием

Для корректной работы необходимо связать характеристику состояние кнопки с адресом состояния входа.

Поддерживаются:

  • Входы контроллера или модулей Wiren Board — WBDI-14, WB-MCM8 (в режиме быстрого Modbus), входы реле и диммеров
  • Выключатели KNX — через привязку к соответствующему групповому адресу (GA)

При замыкании вход должен переводить характеристику в состояние нажата, при размыкании - в состояние отжата.

Если оборудование или интеграция передает только счетчик нажатий, можно добавить характеристику счетчик нажатий и связать ее с соответствующим адресом состояния.

⚙️ Настройка действий

Можно назначить действия для разных типов нажатий:

  • Управлять светильниками (Одиночный клик - вкл/выкл, долгое нажатие - диммирование).
  • Управлять светильниками (Одиночный клик - включение, долгое нажатие - диммирование вверх).
  • Управлять светильниками (Одиночный клик - выключение, долгое нажатие - диммирование вниз).
  • Управлять светильниками (Одиночный клик - переключить).
  • Управлять устройствами (Одиночный клик и удержание - переключить).
  • Управлять шторами (Одиночный клик - открыть/закрыть, долгое нажатие - стоп).
  • Действие при нажатии кнопки, Действие при отпускании кнопки, Действие при долгом нажатии, Действие при одиночном клике, Действие при двойном клике, Действие при тройном клике.

Вы можете использовать встроенные разделы:

  • управлять светильниками;
  • управлять устройствами;
  • управлять шторами;
  • действия при событиях кнопки.

В этих разделах достаточно выбрать нужные устройства из списка — кнопка автоматически выполнит нужные действия по каждому типу нажатия.

При управлении несколькими устройствами действует следующая логика:

  • Если выбраны несколько светильников:
    • Если их состояния различаются (один включён, другой выключен) — первое короткое нажатие выключает все светильники, следующее включает все.
    • При удержании кнопки, если светильники поддерживают диммирование — они будут плавно менять яркость от текущего значения до максимального. Повторное удержание меняет направление — до минимального уровня.
  • Если выбраны несколько светильников в режиме переключения без диммирования:
    • Если хотя бы один светильник включён — одиночный клик выключит все выбранные светильники.
    • Если все выключены — одиночный клик включит все выбранные светильники.
  • Если выбраны несколько штор:
    • Короткое нажатие, если не все шторы открыты — откроет все.
    • Повторное короткое нажатие — закроет все шторы.
    • Удержание кнопки — остановит движение всех штор одновременно.

Если нужно больше гибкости — можно не использовать встроенные блоки, а задать произвольную логику через сценарий Сценарные кнопки. В этом сценарии:

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

Возможность задать действия при одновременном нажатии двух кнопок — находится в планах реализации.

⏱ Параметры

  • Время долгого нажатия - длительность удержания, после которой формируется событие долгое нажатие. Значение задается в единицах по 0.1 сек. По умолчанию: 6, то есть 0.6 сек.
  • Максимальное количество нажатий - сколько кликов объединять в одну серию: одно, два или три. Если выбрано одно, одиночный клик определяется сразу после отпускания. Если выбрано два или три, система короткое время ожидает следующие клики серии.
  • Определять действие кнопки по счетчику нажатий - включает обработку характеристики счетчик нажатий. При изменении счетчика на одно, два или три значения формируются соответствующие клики.

🧾 Возможные значения «Действие кнопки»

Характеристика действие кнопки принимает одно из следующих состояний:

Событие Когда формируется
нажали сразу при переходе состояния кнопки в состояние нажата
отпустили при переходе состояния кнопки в состояние отжата или после обработки счетчика
одиночный клик после одного короткого нажатия
двойной клик после двух коротких нажатий подряд
тройной клик после трех коротких нажатий подряд
долгое нажатие после удержания дольше заданного времени

Нажали - это мгновенное событие при замыкании входа. Его удобно использовать там, где нужна минимальная задержка, например для быстрого включения света или переключения простого реле. В старых материалах это событие может называться коснулись.

Одиночный клик определяется после отпускания. Если разрешены двойной или тройной клик, система короткое время ждет продолжения серии, поэтому одиночный клик может сработать с небольшой задержкой.

Долгое нажатие отменяет определение короткого клика. После отпускания кнопки дополнительно формируется событие отпустили.

🧪 Что удобно показать на практике

Для живого эфира удобно подготовить три демонстрации:

  • Свет - добавить виртуальную кнопку, связать состояние кнопки с входом, выбрать светильник в блоке управлять светильниками. Проверить одиночный клик, удержание и отпускание.
  • Шторы - выбрать карниз в блоке управлять шторами. Проверить одиночный клик открыть/закрыть и долгое нажатие стоп.
  • Сценарий - создать сценарий Сценарные кнопки, выбрать кнопку в поле Кнопка 1 и назначить разные действия на одиночный клик и долгое нажатие.

👁 Интерфейс

Кнопка — это системное устройство. Она не отображается в пользовательском интерфейсе и служит для построения логики.

🔍 См. также

Источник — https://wiki.xiot.ru/index.php?title=Виртуальное_устройство_%22Кнопка%22&oldid=3799