Семейство программных модулей «кнопка + подсветка». Кнопочная часть у всех одинаковая — те же опции и события; отличаются модули только подсветкой: одноцветный светодиод, адресная лента, кольцо, шкала, бегущий эффект.

МодульПодсветкаАппаратный модуль
button_ledодноцветный светодиод, плавная яркость, flashbutton_led, in_out
button_smartLedадресная лента одним цветом, flash / rainbowbutton_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).

в этой папке 6 элементов