Семейство программных модулей «кнопка + подсветка». Кнопочная часть у всех одинаковая — те же опции и события; отличаются модули только подсветкой: одноцветный светодиод, адресная лента, кольцо, шкала, бегущий эффект.
| Модуль | Подсветка | Аппаратный модуль |
|---|---|---|
| button_led | одноцветный светодиод, плавная яркость, flash | button_led, in_out |
| button_smartLed | адресная лента одним цветом, flash / rainbow | button_smartLed |
| button_ledRing | кольцо: пятно в позиции или бегущее | button_smartLed |
| button_ledBar | шкала заполнения до заданной позиции | button_smartLed |
| button_runFire | бегущий световой эффект по ленте | button_smartLed |
| button_swiperLed | эффект свайпа в четырёх направлениях | button_smartLed |
Общая кнопочная часть
База топика события — <deviceName>/button_<slot>, команд подсветки —
<deviceName>/led_<slot>. Автоматизация на событиях кнопки переносится между
модулями без правок.
Опции кнопки: buttonInverse, buttonDebounceGap, longPressTime, doubleClickTime, eventFilter, switchModeButton.
| Событие | Когда |
|---|---|
button_<slot>/event/press | нажатие 1 / отпускание 0 |
button_<slot>/event/longPress | удержание дольше longPressTime |
button_<slot>/event/doubleClick | два нажатия в пределах doubleClickTime |
button_<slot>/event/switch | режим переключателя (switchModeButton): каждое нажатие меняет 0/1, press не шлётся |
У подсветки всегда есть action/toggleLedState и action/enable; остальные
команды (setRGB, setPos, setMode, swipe, …) зависят от модуля.
Пример
[SLOT_1]
mode = button_smartLed
options = RGBcolor:0 0 255, switchModeButton
;кнопка-переключатель: своё состояние - в собственную подсветку
crosslink = button_1/event/switch:@->led_1/action/enable:@Нажатие включает подсветку, следующее — выключает. Заменив mode на
button_led или button_ledRing, получаем то же поведение с другой
подсветкой.
Подробнее — внутренние связи (crossLink).