Дополнительные mode для встроенных светодиодов
Хотелось бы увидеть в шлюзе реализацию некоторых световых эффектов для аппаратных LED. Первое, что уже спрашивало несколько человек - режим blink (мерцание с заданными таймингами). Сделать можно что то типа такого:
{"mode":"blink","hex":"#FFFFFF","on_duration":"500","off_duration":"500"}
где on_duration - продолжительность во включенном состоянии (мсек), а off_duration - соответственно, в выключенном.
Еще в голову приходит режим, при котором происходит плавная смена цвета от предыдущего к новому заданному. Например, так:
{"mode":"smooth","hex":"#FFFFFF","duration":"1000"}
Уже только на основе этого можно запрограммировать интересные световые эффекты для разных задач.
Я бы добавил опционально продолжительность таких мерцаний в течение какого-то времени, например, мерцать 2 минуты полусекундой включения и 250 мсек выключения:
{"mode":"blink_persist","hex":"#FFFFFF","on_duration":"500","off_duration":"250","duration":"120000"}
Это тогда можно было бы отнести в целом к светодиодам шлюза, вроде команды "включить подсветку на N секунд".
https://github.com/dimon78/sls.lua/blob/main/spectrum.lua https://github.com/dimon78/sls.lua/blob/main/flame.lua https://github.com/dimon78/sls.lua/blob/main/led.lua
ну и прикрутить это к таймеру не составит труда