Files
2026-09-08 20:01:03 +08:00

4.0 KiB
Raw Permalink Blame History

luci-app-led-scheduler 0.3.0

0.3.0

  • 增加 OpenWrt 23.05 / 24.10 兼容。
  • OpenWrt 25.12 构建 .apk。
  • OpenWrt 24.10 / 23.05 构建 .ipk。
  • 包仍为 all 架构,因此同一 OpenWrt 系列的产物不绑定 x86、ARM、MIPS 等 CPU 架构。
  • 同时兼容两代 ucitrack:
    • OpenWrt 24.10 / 25.12:/usr/share/ucitrack/*.json
    • OpenWrt 23.05:/etc/config/ucitrack
  • LuCI 通知兼容:
    • 24.10+ 使用 addTimeLimitedNotification()
    • 23.05 自动退回 addNotification() + JavaScript 定时关闭。
  • 仓库新增 .gitea/workflows/build.yml,一次 CI 同时生成 APK 与 IPK。

CI 构建矩阵

OpenWrt 包格式 SDK target Package arch
25.12.0 .apk x86/64 all
24.10.8 .ipk x86/64 all
23.05.5 .ipk x86/64 all

这里故意使用 x86/64 SDK:本项目没有原生二进制,LUCI_PKGARCH:=all, 因此 CI 不需要为每一种 CPU 架构重复构建。

0.2.4

  • 修复无 RTC / 开机时间尚未完成 NTP 同步时,重启后 LED 可能错误保持关闭的问题。
  • 开机先恢复 OpenWrt 原生 LED 状态。
  • 只有系统时间可信时才立即按计划判断。
  • 新增 /etc/hotplug.d/ntp/90-led-scheduler,在 NTP step / stratum 事件后重新执行 led-control apply。
  • 白天重启不会因为假时间误关灯;夜间重启会在 NTP 校时后按真实时间自动熄灯。

0.2.3

  • 安装/升级阶段主动执行 chmod 0755,避免自定义解压/构建流程丢失 Unix 可执行位后导致 /etc/init.d/led-scheduler: Permission denied。
  • 同时确保 /usr/bin/led-control 具备执行权限。
  • 保留 0.2.2 的 ucitrack 自动注册和限时通知修复。

0.2.2

  • 修复首次安装后 ucitrack 未重新扫描,导致 LuCI 保存配置但 cron 不自动更新的问题。
  • 安装/升级后按顺序执行:
    1. led-scheduler enable
    2. ucitrack restart
    3. rpcd reload
    4. led-scheduler restart
  • 手动控制成功通知 3 秒后自动消失。
  • 操作失败通知 6 秒后自动消失。
  • Makefile 补全 OpenWrt buildroot signature。

这个版本只负责 LED 的“定时”,不再自己维护 WAN/LAN 的正常工作方式。

设计

OpenWrt 原生页面:

系统 -> LED 配置

继续负责:

  • WAN / LAN 对应哪个 sysfs LED
  • trigger(例如 netdev)
  • 网口绑定、Link/TX/RX 等正常行为

本插件:

系统 -> LED 定时

只负责:

23:00 -> 临时关闭所选 LED
07:00 -> /etc/init.d/led restart

恢复后 LED 会重新按照 /etc/config/system 中的原生配置运行。

默认配置

config scheduler 'main'
    option enabled '0'
    option off_time '23:00'
    option on_time '07:00'
    option all_system_leds '1'

默认不启用定时。

页面功能

  • 启用 LED 定时
  • 关闭时间 / 恢复时间
  • 控制全部“系统 -> LED 配置”中的 LED
  • 或选择部分 LED
  • 立即关闭
  • 立即恢复
  • 按当前时间应用
  • 重新同步 cron
  • 显示系统 LED 的名称、sysfs、trigger

直接复制到路由器测试

scp -r root/* root@192.168.2.1:/
scp -r htdocs/* root@192.168.2.1:/www/

然后:

ssh root@192.168.2.1
chmod +x /usr/bin/led-control /etc/init.d/led-scheduler
/etc/init.d/led-scheduler enable
rm -f /tmp/luci-indexcache.*
rm -rf /tmp/luci-modulecache/
/etc/init.d/rpcd restart
/etc/init.d/led-scheduler restart

重新登录 LuCI,进入:

系统 -> LED 定时

SSH 调试

/usr/bin/led-control list
/usr/bin/led-control selected
/usr/bin/led-control status
/usr/bin/led-control off
/usr/bin/led-control on
/usr/bin/led-control sync

R2S Plus 当前预计:

WAN    wan_led    netdev
LAN    lan_led    netdev

编译

放入自定义 feed 后:

./scripts/feeds update myfeed
./scripts/feeds install -p myfeed luci-app-led-scheduler
make defconfig
make package/feeds/myfeed/luci-app-led-scheduler/compile V=s

输出为:

luci-app-led-scheduler-0.3.0-r1.apk