Archer C7 v2 - Switching off all LEDs at night

Archer a9 stock has option to turn off all LEDs

So it's working on OpenWrt 19.07.4 for:
Archer C7 v4
Archer C7 v5
Archer C50 v4

Not working:
Archer C7 v2

1 Like

Hi!
I found this topic when I move to OpenWRT from stock, but haven't got the answer "How to turn off leds from 11pm to 8am"
So, here's my way for Archer C7 v4, using uci
First I set up "daytime" rules for each LED, including USB.
Second, wrote a shell script ledcontrol.sh, which can turn all rules to "none" (that turns led off) or to "daytime" state

#!/bin/sh

case "$1" in
        on)
            uci set system.led_lan1.trigger='switch0'
            uci set system.led_lan1.port_mask='0x04'
            uci set system.led_lan1.speed_mask='0x08'
            uci set system.led_lan2.trigger='switch0'
            uci set system.led_lan2.port_mask='0x08'
            uci set system.led_lan2.speed_mask='0x08'
            uci set system.led_lan3.trigger='switch0'
            uci set system.led_lan3.port_mask='0x10'
            uci set system.led_lan4.trigger='switch0'
            uci set system.led_lan4.port_mask='0x20'
            uci set system.led_lan4.speed_mask='0x08'
            uci set system.@led[4].trigger='phy0assoc'
            uci set system.@led[5].trigger='phy1assoc'
            uci set system.@led[6].trigger='netdev'
            uci set system.@led[6].mode='link'
            uci set system.@led[6].dev='eth0.2'
            uci set system.@led[7].trigger='none'
            uci set system.@led[8].trigger='none'
            uci set system.@led[9].trigger='usbport'
            uci set system.@led[9].port='usb1-port1'
            uci set system.@led[10].trigger='usbport'
            uci set system.@led[10].port='usb2-port1'
            uci set system.@led[11].trigger='heartbeat'
            uci commit && reload_config
            ;;

        off)
            uci set system.led_lan1.trigger='none'
            uci set system.led_lan2.trigger='none'
            uci set system.led_lan3.trigger='none'
            uci set system.led_lan4.trigger='none'
            uci set system.@led[4].trigger='none'
            uci set system.@led[5].trigger='none'
            uci set system.@led[6].trigger='none'
            uci set system.@led[7].trigger='none'
            uci set system.@led[8].trigger='none'
            uci set system.@led[9].trigger='none'
            uci set system.@led[10].trigger='none'
            uci set system.@led[11].trigger='none'
            uci commit && reload_config
            ;;

        *)
            echo "Usage: $0 {on|off}"

            exit 1

esac

Finaly, added this script to crontab:

0 23 * * * /usr/bin/ledcontrol.sh off
0 8 * * * /usr/bin/ledcontrol.sh on

Maybe it looks "kinda dirty", but works for me several months.

2 Likes

I added the following LEDs to the LED Configuration page:

This added some extra LEDs that can be configured with system.@led[index]. I think these values vary from router to router. I think that after doing your LEDs configuration the best way to know the names is by running the following command: uci show system | grep "system.led" as mentioned in https://openwrt.org/docs/guide-user/base-system/led_configuration#led_section

Thanks for sharing this script @nihochuha, after adding the LEDs it was breezy to update it.

Best regards!