fix(led): swap WiFi(play)/LAN(wifi+eth), LAN carrier via CLAWD_ETH_IFACE, faster alarm

- WifiLed drives play; LanLed drives wifi+eth pair (matches panel silkscreen)
- hasLanCableCarrier(): CLAWD_ETH_IFACE-only carrier when set (reliable unplug)
- LAN poll 1s; config.activated persisted for immediate setApps on boot/reconnect
- setApps double vfdOn alarm after 50ms for slow OpenVFD
- Clear activated + setSetup on credential errors
- install.sh env comment for CLAWD_ETH_IFACE

Made-with: Cursor
This commit is contained in:
stswangzhiping
2026-03-28 21:50:56 +08:00
parent 347b19a0c9
commit 8f5a8ec896
5 changed files with 50 additions and 12 deletions

View File

@@ -62,6 +62,22 @@ function hasWiredCarrier() {
return getWiredIfaceWithCarrier() !== null;
}
/**
* LAN 面板灯专用:若设置 CLAWD_ETH_IFACE只认该口 carrier拔网线必灭
* 未设置时退回 hasWiredCarrier()(可能受其它网口影响,建议在 box 上配置 end0 等)。
*/
function hasLanCableCarrier() {
const explicit = process.env.CLAWD_ETH_IFACE;
if (explicit) {
try {
return fs.readFileSync(`/sys/class/net/${explicit}/carrier`, 'utf8').trim() === '1';
} catch (_) {
return false;
}
}
return hasWiredCarrier();
}
function _tryPingInternet() {
try {
run('ping -c 1 -W 3 8.8.8.8');
@@ -312,6 +328,7 @@ function getLocalIps() {
module.exports = {
hasInternet,
hasWiredCarrier,
hasLanCableCarrier,
hasWiredInternetProbe,
getWiredIfaceWithCarrier,
hasSavedWifiConnection,