🌴 Sync 2026-03-05 23:51:42

This commit is contained in:
github-actions[bot] committed 2026-03-05 23:51:42 +08:00
1 parent 97c049ed0a
commit 0acff03804
14253 files changed
+3893239

No files matched your search

@@ -0,0 +1,89 @@
#!/bin/bash
# Environment GPIOLED
source /usr/share/gpioled/env
function application() {
echo "$TIMESTAMP [$d] $d1" >>$LOG_FILE
while :; do
MONITORING=$(uci get $AAD 2>/dev/null)
if [ "$MONITORING" == "uci: Entry not found" ]; then
if [ "$APP_NOT_FOUND" = false ]; then
APP_NOT_FOUND=true
fi
MONITORING=2
elif [[ "$MONITORING" =~ ^[0-9]+$ ]]; then
if [ "$APP_FOUND" = false ]; then
echo "$TIMESTAMP [$d] $d2" >>$LOG_FILE
echo "$TIMESTAMP [$d] $d4" >>$LOG_FILE
echo "$TIMESTAMP [$d] $d5" >>$LOG_FILE
APP_FOUND=true
fi
MONITORING=$(uci get $AAD)
else
if [ "$APP_INVALID" = false ]; then
echo "$TIMESTAMP [$d] $d2" >>$LOG_FILE
echo "$TIMESTAMP [$d] $d3" >>$LOG_FILE
APP_INVALID=true
break
fi
MONITORING=2
fi
if [ "$MONITORING" -eq 1 ]; then
if [ "$APP_SUCCESS" = false ]; then
echo "$TIMESTAMP [$d] $d7" >>$LOG_FILE
APP_SUCCESS=true
APP_FAIL=false
fi
if [ "$APPON" = false ]; then
APPON=true
fi
elif [ "$MONITORING" -eq 0 ]; then
if [ "$APP_FAIL" = false ]; then
echo "$TIMESTAMP [$d] $d6" >>$LOG_FILE
APP_SUCCESS=false
APP_FAIL=true
fi
if [ "$APPOFF" = false ]; then
APPOFF=true
fi
fi
if [ "$APPON" = true ]; then
if [ "$MAD" = "0" ]; then
echo "1" >/sys/class/gpio/gpio$GIRB/value
sleep $MAD
APPON=false
elif [ "$MAD" = "0.1" ]; then
echo "1" >/sys/class/gpio/gpio$GIRB/value
sleep $MAD
echo "0" >/sys/class/gpio/gpio$GIRB/value
sleep $MAD
APPON=false
elif [ "$MAD" = "1" ]; then
echo "1" >/sys/class/gpio/gpio$GIRB/value
sleep $MAD
echo "0" >/sys/class/gpio/gpio$GIRB/value
sleep $MAD
APPON=false
elif [ "$MAD" = "2" ]; then
echo "1" >/sys/class/gpio/gpio$GIRB/value
sleep $MAD
echo "0" >/sys/class/gpio/gpio$GIRB/value
sleep $MAD
APPON=false
fi
fi
if [ "$APPOFF" = true ]; then
echo "0" >/sys/class/gpio/gpio$GIRB/value
sleep $MAD
APPOFF=false
fi
done
}
case "${1}" in
*)
application
;;
esac
@@ -0,0 +1,71 @@
#!/bin/bash
# Global environment
GPIOBASE=/sys/class/gpio
DEVICE=$(uci get gpioled.global.device)
LOG_FILE=/tmp/gpioled.log
TIMESTAMP=$(date +'%d-%m-%Y %H:%M:%S')
if [ "$DEVICE" = "HG680PR1" ]; then
GPWR1=483
GPWR2=484
GETH1=481
GETH2=482
GIRB=480
elif [ "$DEVICE" = "HG680PR2" ]; then
GPWR1=425
GPWR2=426
GETH1=506
GETH2=510
GIRB=507
fi
# Info GPIO Device service
a="GPIO Export"
a1="Start $a..."
a2="Device $DEVICE"
a3="Export GPIO $DEVICE successfully"
b="GPIO Unexport"
b1="Start $b..."
b2="Device $DEVICE"
b3="Unexport GPIO $DEVICE successfully"
# Power LED service
c="Power LED"
c1="Start $c..."
c2="Service started successfully"
CPWR=$(uci get gpioled.service.pwr_color)
MPWR=$(uci get gpioled.service.pwr_mode)
# Application Detector service
AAD=$(uci get gpioled.service.ad_app)
MAD=$(uci get gpioled.service.ad_mode)
APP_FOUND=false
APP_NOT_FOUND=false
APP_INVALID=false
APP_SUCCESS=false
APP_FAIL=false
APPON=false
APPOFF=false
d="Application Detector"
d1="Start $d..."
d2="Check application availability..."
d3="Application not found. Is it installed?"
d4="Application installed. Start service..."
d5="Service started successfully"
d6="Status application [Stopped]"
d7="Status application [Running]"
# Internet Detector service
CIDL=$(uci get gpioled.service.id_il)
CIDO=$(uci get gpioled.service.id_io)
MID=$(uci get gpioled.service.id_mode)
INET_SUCCESS=false
INET_FAIL=false
INETON=false
INETOFF=false
e="Internet Detector"
e1="Start $e..."
e2="Service started successfully"
e3="Status internet [Disconnected]"
e4="Status internet [Connected]"
@@ -0,0 +1,55 @@
#!/bin/bash
# Environment GPIOLED
source /usr/share/gpioled/env
function create_gpio() {
echo "$TIMESTAMP [$a] $a1" >>$LOG_FILE
printf "$TIMESTAMP [$a] $a1\n"
echo "$TIMESTAMP [$a] $a2" >>$LOG_FILE
printf "$TIMESTAMP [$a] $a2\n"
echo $GPWR1 >$GPIOBASE/export
echo out >$GPIOBASE/gpio$GPWR1/direction
echo $GPWR2 >$GPIOBASE/export
echo out >$GPIOBASE/gpio$GPWR2/direction
echo $GETH1 >$GPIOBASE/export
echo out >$GPIOBASE/gpio$GETH1/direction
echo $GETH2 >$GPIOBASE/export
echo out >$GPIOBASE/gpio$GETH2/direction
echo $GIRB >$GPIOBASE/export
echo out >$GPIOBASE/gpio$GIRB/direction
echo "$TIMESTAMP [$a] $a3" >>$LOG_FILE
printf "$TIMESTAMP [$a] $a3\n"
}
function remove_gpio() {
echo "$TIMESTAMP [$b] $b1" >>$LOG_FILE
printf "$TIMESTAMP [$b] $b1\n"
echo "$TIMESTAMP [$b] $b2" >>$LOG_FILE
printf "$TIMESTAMP [$b] $b2\n"
echo $GPWR1 >$GPIOBASE/unexport
echo $GPWR2 >$GPIOBASE/unexport
echo $GETH1 >$GPIOBASE/unexport
echo $GETH2 >$GPIOBASE/unexport
echo $GIRB >$GPIOBASE/unexport
echo "$TIMESTAMP [$b] $b3" >>$LOG_FILE
printf "$TIMESTAMP [$b] $b3\n"
}
function usage() {
printf "Use start to run $a service\n"
printf "Use stop to run $b service\n"
}
case "${1}" in
start)
create_gpio
;;
stop)
remove_gpio
;;
*)
usage
;;
esac
+187
View File
@@ -0,0 +1,187 @@
#!/bin/bash
# Environment GPIOLED
source /usr/share/gpioled/env
function internet() {
echo "$TIMESTAMP [$e] $e1" >>$LOG_FILE
echo "$TIMESTAMP [$e] $e2" >>$LOG_FILE
while :; do
CONNECTION=$(ping -q -c 1 -W 1 8.8.8.8 >/dev/null 2>&1 && echo "OK" || echo "Fail")
if [ "$CONNECTION" = "OK" ]; then
if [ "$INET_SUCCESS" = false ]; then
echo "$TIMESTAMP [$e] $e4" >>$LOG_FILE
INET_SUCCESS=true
INET_FAIL=false
fi
if [ "$INETON" = false ]; then
INETON=true
fi
elif [ "$CONNECTION" = "Fail" ]; then
if [ "$INET_FAIL" = false ]; then
echo "$TIMESTAMP [$e] $e3" >>$LOG_FILE
INET_SUCCESS=false
INET_FAIL=true
fi
if [ "$INETOFF" = false ]; then
INETOFF=true
fi
fi
if [ "$INETON" = true ]; then
if [ "$CIDL" = "red" ]; then
if [ "$MID" = "0" ]; then
echo "1" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETON=false
elif [ "$MID" = "0.1" ]; then
echo "1" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETON=false
elif [ "$MID" = "1" ]; then
echo "1" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETON=false
elif [ "$MID" = "2" ]; then
echo "1" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETON=false
fi
elif [ "$CIDL" = "yellow" ]; then
if [ "$MID" = "0" ]; then
echo "1" >/sys/class/gpio/gpio$GETH1/value && echo "1" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETON=false
elif [ "$MID" = "0.1" ]; then
echo "1" >/sys/class/gpio/gpio$GETH1/value && echo "1" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETON=false
elif [ "$MID" = "1" ]; then
echo "1" >/sys/class/gpio/gpio$GETH1/value && echo "1" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETON=false
elif [ "$MID" = "2" ]; then
echo "1" >/sys/class/gpio/gpio$GETH1/value && echo "1" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETON=false
fi
elif [ "$CIDL" = "green" ]; then
if [ "$MID" = "0" ]; then
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "1" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETON=false
elif [ "$MID" = "0.1" ]; then
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "1" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETON=false
elif [ "$MID" = "1" ]; then
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "1" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETON=false
elif [ "$MID" = "2" ]; then
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "1" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETON=false
fi
fi
fi
if [ "$INETOFF" = true ]; then
if [ "$CIDO" = "red" ]; then
if [ "$MID" = "0" ]; then
echo "1" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETOFF=false
elif [ "$MID" = "0.1" ]; then
echo "1" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETOFF=false
elif [ "$MID" = "1" ]; then
echo "1" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETOFF=false
elif [ "$MID" = "2" ]; then
echo "1" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETOFF=false
fi
elif [ "$CIDO" = "yellow" ]; then
if [ "$MID" = "0" ]; then
echo "1" >/sys/class/gpio/gpio$GETH1/value && echo "1" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETOFF=false
elif [ "$MID" = "0.1" ]; then
echo "1" >/sys/class/gpio/gpio$GETH1/value && echo "1" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETOFF=false
elif [ "$MID" = "1" ]; then
echo "1" >/sys/class/gpio/gpio$GETH1/value && echo "1" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETOFF=false
elif [ "$MID" = "2" ]; then
echo "1" >/sys/class/gpio/gpio$GETH1/value && echo "1" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETOFF=false
fi
elif [ "$CIDO" = "green" ]; then
if [ "$MID" = "0" ]; then
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "1" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETOFF=false
elif [ "$MID" = "0.1" ]; then
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "1" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETOFF=false
elif [ "$MID" = "1" ]; then
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "1" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETOFF=false
elif [ "$MID" = "2" ]; then
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "1" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
echo "0" >/sys/class/gpio/gpio$GETH1/value && echo "0" >/sys/class/gpio/gpio$GETH2/value
sleep $MID
INETOFF=false
fi
fi
fi
done
}
case "${1}" in
*)
internet
;;
esac
@@ -0,0 +1,79 @@
#!/bin/bash
# Environment GPIOLED
source /usr/share/gpioled/env
function power() {
echo "$TIMESTAMP [$c] $c1" >>$LOG_FILE
echo "$TIMESTAMP [$c] $c2" >>$LOG_FILE
while :; do
if [ "$CPWR" = "red" ]; then
if [ "$MPWR" = "0" ]; then
echo "0" >/sys/class/gpio/gpio$GPWR1/value && echo "1" >/sys/class/gpio/gpio$GPWR2/value
sleep $MPWR
elif [ "$MPWR" = "0.1" ]; then
echo "0" >/sys/class/gpio/gpio$GPWR1/value && echo "1" >/sys/class/gpio/gpio$GPWR2/value
sleep $MPWR
echo "0" >/sys/class/gpio/gpio$GPWR1/value && echo "0" >/sys/class/gpio/gpio$GPWR2/value
sleep $MPWR
elif [ "$MPWR" = "1" ]; then
echo "0" >/sys/class/gpio/gpio$GPWR1/value && echo "1" >/sys/class/gpio/gpio$GPWR2/value
sleep $MPWR
echo "0" >/sys/class/gpio/gpio$GPWR1/value && echo "0" >/sys/class/gpio/gpio$GPWR2/value
sleep $MPWR
elif [ "$MPWR" = "2" ]; then
echo "0" >/sys/class/gpio/gpio$GPWR1/value && echo "1" >/sys/class/gpio/gpio$GPWR2/value
sleep $MPWR
echo "0" >/sys/class/gpio/gpio$GPWR1/value && echo "0" >/sys/class/gpio/gpio$GPWR2/value
sleep $MPWR
fi
elif [ "$CPWR" = "yellow" ]; then
if [ "$MPWR" = "0" ]; then
echo "1" >/sys/class/gpio/gpio$GPWR1/value && echo "1" >/sys/class/gpio/gpio$GPWR2/value
sleep $MPWR
elif [ "$MPWR" = "0.1" ]; then
echo "1" >/sys/class/gpio/gpio$GPWR1/value && echo "1" >/sys/class/gpio/gpio$GPWR2/value
sleep $MPWR
echo "0" >/sys/class/gpio/gpio$GPWR1/value && echo "0" >/sys/class/gpio/gpio$GPWR2/value
sleep $MPWR
elif [ "$MPWR" = "1" ]; then
echo "1" >/sys/class/gpio/gpio$GPWR1/value && echo "1" >/sys/class/gpio/gpio$GPWR2/value
sleep $MPWR
echo "0" >/sys/class/gpio/gpio$GPWR1/value && echo "0" >/sys/class/gpio/gpio$GPWR2/value
sleep $MPWR
elif [ "$MPWR" = "2" ]; then
echo "1" >/sys/class/gpio/gpio$GPWR1/value && echo "1" >/sys/class/gpio/gpio$GPWR2/value
sleep $MPWR
echo "0" >/sys/class/gpio/gpio$GPWR1/value && echo "0" >/sys/class/gpio/gpio$GPWR2/value
sleep $MPWR
fi
elif [ "$CPWR" = "green" ]; then
if [ "$MPWR" = "0" ]; then
echo "1" >/sys/class/gpio/gpio$GPWR1/value && echo "0" >/sys/class/gpio/gpio$GPWR2/value
sleep $MPWR
elif [ "$MPWR" = "0.1" ]; then
echo "1" >/sys/class/gpio/gpio$GPWR1/value && echo "0" >/sys/class/gpio/gpio$GPWR2/value
sleep $MPWR
echo "0" >/sys/class/gpio/gpio$GPWR1/value && echo "0" >/sys/class/gpio/gpio$GPWR2/value
sleep $MPWR
elif [ "$MPWR" = "1" ]; then
echo "1" >/sys/class/gpio/gpio$GPWR1/value && echo "0" >/sys/class/gpio/gpio$GPWR2/value
sleep $MPWR
echo "0" >/sys/class/gpio/gpio$GPWR1/value && echo "0" >/sys/class/gpio/gpio$GPWR2/value
sleep $MPWR
elif [ "$MPWR" = "2" ]; then
echo "1" >/sys/class/gpio/gpio$GPWR1/value && echo "0" >/sys/class/gpio/gpio$GPWR2/value
sleep $MPWR
echo "0" >/sys/class/gpio/gpio$GPWR1/value && echo "0" >/sys/class/gpio/gpio$GPWR2/value
sleep $MPWR
fi
fi
done
}
case "${1}" in
*)
power
;;
esac
@@ -0,0 +1,11 @@
{
"luci-app-gpioled": {
"description": "Grant UCI access for luci-app-gpioled",
"read": {
"uci": [ "gpioled" ]
},
"write": {
"uci": [ "gpioled" ]
}
}
}