-
+
" . $wifiname . "";
@@ -370,7 +368,7 @@
?>
"
-
-
Misc Options
@@ -467,12 +464,12 @@
Install RTL88X2BU-Drivers
- These drivers are for several network cards like these:
+ These drivers are for several network cards like these:
-
+
" />
-
@@ -501,7 +497,7 @@
DietPi-WiFi-Monitor
Automatic reconnection to wifi, if signal is lost.
- ".$wifi_monitor_state."";
?>
@@ -510,7 +506,7 @@
Check for best wifi connection
Checks the WiFi SSIDs in the area every 10 seconds and connects to the strongest SSID if this is stored in the configuration. May cause connection dropouts, but allows for quick switching in a multi-Wifi environment.
- ".$wifi_autoconnect_state."";
?>
@@ -521,7 +517,7 @@
Disabling this service will result in faster boot time.
New: The package wsdd (Web-Service-Discovery-Daemon) will be also installed.
- ".$samba_state."";
?>
@@ -529,7 +525,7 @@
FTP-Server
- ".$ftp_state."";
?>
@@ -540,7 +536,7 @@
Enables or disables VNC-Service! The service allows remote access to the browser (Display). Usage recommended for Pi version 3 and up. Usually doesn't work with onboard WiFi.
- ".$vnc_state."";
?>
@@ -551,5 +547,5 @@
diff --git a/README.md b/README.md
index 58349a32..9b59dc3b 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
[](https://discord.gg/4EjCgpCbbe) [](https://mupibox.de) [](https://www.youtube.com/channel/UCiqTXPBQLYgTB4uPBKzLENA) [](https://www.facebook.com/mupibox) [](https://paypal.me/DonateMuPiBox)
MuPiBox is an easy to use music player, controlled via touch display. You can use local music, Spotify and streams.
-
+
## Website & Support
For more information:
- visit https://mupibox.de
diff --git a/autosetup/autosetup.sh b/autosetup/autosetup.sh
index 128232cd..1213d4e6 100644
--- a/autosetup/autosetup.sh
+++ b/autosetup/autosetup.sh
@@ -54,9 +54,9 @@ rm -Rf /home/dietpi/mupibox.zip /home/dietpi/MuPiBox-* >&3 2>&3
before=$(date +%s)
rm -f /usr/bin/jq >&3 2>&3
if [ "$(getconf LONG_BIT)" = "32" ]; then
- wget -q -O /usr/bin/jq https://github.com/jqlang/jq/releases/download/jq-1.8.1/jq-linux-armhf >&3 2>&3
+ wget -q -O /usr/bin/jq https://github.com/jqlang/jq/releases/latest/download/jq-linux-armhf >&3 2>&3
else
- wget -q -O /usr/bin/jq https://github.com/jqlang/jq/releases/download/jq-1.8.1/jq-linux-arm64 >&3 2>&3
+ wget -q -O /usr/bin/jq https://github.com/jqlang/jq/releases/latest/download/jq-linux-arm64 >&3 2>&3
fi
chmod 755 /usr/bin/jq >&3 2>&3
after=$(date +%s)
diff --git a/autosetup/autostart.sh b/autosetup/autostart.sh
index ec7df515..66abe00f 100644
--- a/autosetup/autostart.sh
+++ b/autosetup/autostart.sh
@@ -1,5 +1,5 @@
#!/bin/bash
echo "echo '' && echo '' && echo 'Please wait, MuPiBox-Installer starts soon...' && sleep 10" >> /home/dietpi/.bashrc
-echo "cd; curl -L https://raw.githubusercontent.com/splitti/MuPiBox/main/autosetup/autosetup.sh | sudo bash" >> /home/dietpi/.bashrc
+echo "cd; curl -L https://raw.githubusercontent.com/splitti/MuPiBox/main/autosetup/autosetup.sh | bash" >> /home/dietpi/.bashrc
reboot
\ No newline at end of file
diff --git a/config/templates/.bashrc b/config/templates/.bashrc
index f48b6297..c19ad9f4 100644
--- a/config/templates/.bashrc
+++ b/config/templates/.bashrc
@@ -203,4 +203,4 @@ clear
# Failsafe: Never load this script in non-interactive shells, e.g. SFTP, SCP or rsync
[[ -t 0 && $- == *'i'* ]] || return 0
-mupi-info
\ No newline at end of file
+mupi-info
diff --git a/config/templates/crontab.template b/config/templates/crontab.template
index 495fda04..17a00100 100644
--- a/config/templates/crontab.template
+++ b/config/templates/crontab.template
@@ -1,31 +1,24 @@
# Edit this file to introduce tasks to be run by cron.
-#
+#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
-#
+#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
-#
+#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
-#
+#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
-#
+#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
-#
+#
# For more information see the manual pages of crontab(5) and cron(8)
-#
+#
# m h dom mon dow command
-#@reboot /usr/local/bin/mupibox/./get_network.sh
-#@reboot sleep 30; /usr/local/bin/mupibox/./get_network.sh
* * * * * /usr/local/bin/mupibox/./save_rrd.sh
-* * * * * sleep 15; /usr/local/bin/mupibox/./save_rrd.sh
-* * * * * sleep 30; /usr/local/bin/mupibox/./save_rrd.sh
-* * * * * sleep 45; /usr/local/bin/mupibox/./save_rrd.sh
-* * * * * /usr/local/bin/mupibox/./get_network.sh
-* * * * * sleep 30; /usr/local/bin/mupibox/./get_network.sh
diff --git a/config/templates/smb.conf b/config/templates/smb.conf
deleted file mode 100644
index 2048980c..00000000
--- a/config/templates/smb.conf
+++ /dev/null
@@ -1,19 +0,0 @@
-[global]
-workgroup = workgroup
-security = user
-server string = MuPiBox %h
-server role = standalone server
-disable netbios = yes
-log file = /var/log/samba/smb.log
-map to guest = bad user
-unix password sync = no
-
-[mupibox]
-path = /home/dietpi/MuPiBox/media
-browsable = yes
-valid users = dietpi
-create mode = 0660
-directory mode = 2770
-comment = MuPiBox
-force user = dietpi
-writeable = yes
diff --git a/scripts/OnOffShim/off_trigger.sh b/scripts/OnOffShim/off_trigger.sh
index deec30d9..dab5120f 100644
--- a/scripts/OnOffShim/off_trigger.sh
+++ b/scripts/OnOffShim/off_trigger.sh
@@ -29,15 +29,15 @@ if [ -z "$GPIO_CHIP" ]; then
echo "$(date) - ERROR: No GPIO chip found, aborting." >> ${LOGFILE}
exit 1
else
- echo "$(date) - INFO: GPIO chip found -> ${GPIO_CHIP}" >> ${LOGFILE}
+ echo "$(date) - INFO: GPIO chip found -> ${GPIO_CHIP}" >> ${LOGFILE}
fi
# Check GPIO status
-gpio_status=$(sudo gpioget ${GPIO_CHIP} ${TRIGGER_PIN})
+gpio_status=$(pinctrl lev ${TRIGGER_PIN})
echo "$(date) - INFO: GPIO${TRIGGER_PIN} status: ${gpio_status}" >> ${LOGFILE}
check_button_pressed() {
- local button_state=$(sudo gpioget ${GPIO_CHIP} ${TRIGGER_PIN})
+ local button_state=$(pinctrl lev ${TRIGGER_PIN})
if [ "$button_state" = "0" ]; then
return 0 # Button is pressed
else
@@ -48,7 +48,7 @@ check_button_pressed() {
# Main monitoring loop
while true; do
echo "$(date) - INFO: Waiting for button press..." >> ${LOGFILE}
- sudo gpiomon --num-events=1 --falling-edge ${GPIO_CHIP} ${TRIGGER_PIN} &>> ${LOGFILE} &
+ gpiomon --chip ${GPIO_CHIP} --num-events=1 --edges falling ${TRIGGER_PIN} &>> ${LOGFILE} &
GPIOMON_PID=$!
if [ $? -ne 0 ]; then
echo "$(date) - ERROR: Failed to start gpiomon for GPIO${TRIGGER_PIN}" >> ${LOGFILE}
@@ -61,7 +61,7 @@ while true; do
wait $GPIOMON_PID
if [ $? -eq 0 ]; then
echo "$(date) - INFO: Button pressed, checking hold duration..." >> ${LOGFILE}
-
+
# Check if button is held for the required duration
button_held=true
for ((i=0; i> ${LOGFILE}
diff --git a/scripts/OnOffShim/poweroff.sh b/scripts/OnOffShim/poweroff.sh
index 68cd15b8..03ab23ca 100644
--- a/scripts/OnOffShim/poweroff.sh
+++ b/scripts/OnOffShim/poweroff.sh
@@ -8,10 +8,10 @@ if [ "$1" = "poweroff" ]; then
echo "$(date): Initiating poweroff sequence"
# CUT_PIN setzen (z. B. Stromzufuhr abschalten)
- gpioset gpiochip0 ${CUT_PIN}=1
+ pinctrl set ${CUT_PIN} op dh
# POWEROFF_PIN setzen (Signal an OnOff SHIM)
- gpioset gpiochip0 ${POWEROFF_PIN}=0
+ pinctrl set ${POWEROFF_PIN} op dl
echo "$(date): Poweroff sequence complete"
fi
diff --git a/scripts/mupibox/add_wifi.sh b/scripts/mupibox/add_wifi.sh
index 40514615..d13bd578 100644
--- a/scripts/mupibox/add_wifi.sh
+++ b/scripts/mupibox/add_wifi.sh
@@ -41,7 +41,7 @@ do
sudo mv -f ${TMP_WPACONF} ${WPACONF}
sudo chmod 600 ${WPACONF}
sudo chown root:root ${WPACONF}
- restart_network
+ restart_network
elif [ "${PSK}" = "" ]
then
echo 'network={' | sudo tee -a ${WPACONF}
@@ -50,7 +50,7 @@ do
echo '}' | sudo tee -a ${WPACONF}
restart_network
else
- WIFI_RESULT=$(sudo -i wpa_passphrase "${SSID}" "${PSK}")
+ WIFI_RESULT=$(sudo -i wpa_passphrase "${SSID}" "${PSK}")
IFS=$'\n'
i=0
new_line='scan_ssid=1'
@@ -69,5 +69,5 @@ do
fi
sudo rm ${MUPIWIFI}
fi
- sleep 2
+ sleep 60
done
diff --git a/scripts/mupibox/check_network.sh b/scripts/mupibox/check_network.sh
index 5be7a38f..9eaa6eb2 100644
--- a/scripts/mupibox/check_network.sh
+++ b/scripts/mupibox/check_network.sh
@@ -21,8 +21,8 @@ if [ ! -f ${DATA_FILE} ]; then
exit
else
touch ${DATA_LOCK}
- echo -n "[]" > ${DATA_FILE}
- chown dietpi:dietpi ${DATA_FILE}
+ echo -n "[]" >${DATA_FILE}
+ chown dietpi:dietpi ${DATA_FILE}
rm ${DATA_LOCK}
fi
fi
@@ -33,26 +33,25 @@ if [ ! -f ${RESUME_FILE} ]; then
exit
else
touch ${RESUME_LOCK}
- echo -n "[]" > ${RESUME_FILE}
- chown dietpi:dietpi ${RESUME_FILE}
+ echo -n "[]" >${RESUME_FILE}
+ chown dietpi:dietpi ${RESUME_FILE}
rm ${RESUME_LOCK}
fi
fi
if [ ! -f ${NETWORKCONFIG} ]; then
- sudo echo -n "[]" ${NETWORKCONFIG}
- chown dietpi:dietpi ${NETWORKCONFIG}
- chmod 777 ${NETWORKCONFIG}
- /usr/bin/cat <<< $(/usr/bin/jq -n --arg v "starting" '.onlinestate = $v' ${NETWORKCONFIG}) > ${NETWORKCONFIG}
+ sudo echo -n "[]" ${NETWORKCONFIG}
+ chown dietpi:dietpi ${NETWORKCONFIG}
+ chmod 777 ${NETWORKCONFIG}
+ /usr/bin/cat <<<$(/usr/bin/jq -n --arg v "starting" '.onlinestate = $v' ${NETWORKCONFIG}) >${NETWORKCONFIG}
else
- OLD_ONLINESTATE=$(/usr/bin/jq -r .onlinestate ${NETWORKCONFIG})
+ OLD_ONLINESTATE=$(/usr/bin/jq -r .onlinestate ${NETWORKCONFIG})
fi
-#wget -q --spider http://google.com
+/usr/local/bin/mupibox/./get_network.sh
-while true
-do
- if ( $(/usr/bin/python3 /usr/local/bin/mupibox/check_network.py) == ${TRUESTATE} ); then
+while true; do
+ if ($(/usr/bin/python3 /usr/local/bin/mupibox/check_network.py) == ${TRUESTATE}); then
ONLINESTATE=${TRUESTATE}
if [ "${ONLINESTATE}" != "${OLDSTATE}" ]; then
if [ ! -f ${ACTIVE_FILE} ]; then
@@ -75,41 +74,41 @@ do
else
ONLINESTATE=${FALSESTATE}
if [ ! -f ${OFFLINE_FILE} ]; then
- echo -n "[" > ${OFFLINE_FILE}
- echo -n $(jq '.[] | select(.type != "spotify") | select(.type != "radio" | select(.type != "rss")' < ${DATA_FILE}) >> ${OFFLINE_FILE}
- echo -n "]" >> ${OFFLINE_FILE}
+ echo -n "[" >${OFFLINE_FILE}
+ echo -n $(jq '.[] | select(.type != "spotify") | select(.type != "radio" | select(.type != "rss")' <${DATA_FILE}) >>${OFFLINE_FILE}
+ echo -n "]" >>${OFFLINE_FILE}
sed -i 's/} {/}, {/g' ${OFFLINE_FILE}
chown dietpi:dietpi ${OFFLINE_FILE}
elif [ ! -s ${OFFLINE_FILE} ]; then
rm ${OFFLINE_FILE}
- echo -n "[" > ${OFFLINE_FILE}
- echo -n $(jq '.[] | select(.type != "spotify") | select(.type != "radio" | select(.type != "rss")' < ${DATA_FILE}) >> ${OFFLINE_FILE}
- echo -n "]" >> ${OFFLINE_FILE}
+ echo -n "[" >${OFFLINE_FILE}
+ echo -n $(jq '.[] | select(.type != "spotify") | select(.type != "radio" | select(.type != "rss")' <${DATA_FILE}) >>${OFFLINE_FILE}
+ echo -n "]" >>${OFFLINE_FILE}
sed -i 's/} {/}, {/g' ${OFFLINE_FILE}
chown dietpi:dietpi ${OFFLINE_FILE}
elif [ $(stat --format='%Y' "${DATA_FILE}") -gt $(stat --format='%Y' "${OFFLINE_FILE}") ]; then
- echo -n "[" > ${OFFLINE_FILE}
- echo -n $(jq '.[] | select(.type != "spotify") | select(.type != "radio" | select(.type != "rss")' < ${DATA_FILE}) >> ${OFFLINE_FILE}
- echo -n "]" >> ${OFFLINE_FILE}
+ echo -n "[" >${OFFLINE_FILE}
+ echo -n $(jq '.[] | select(.type != "spotify") | select(.type != "radio" | select(.type != "rss")' <${DATA_FILE}) >>${OFFLINE_FILE}
+ echo -n "]" >>${OFFLINE_FILE}
sed -i 's/} {/}, {/g' ${OFFLINE_FILE}
fi
if [ ! -f ${OFFLINERESUME_FILE} ]; then
- echo -n "[" > ${OFFLINERESUME_FILE}
- echo -n $(jq '.[] | select(.type != "spotify") | select(.type != "radio" | select(.type != "rss")' < ${RESUME_FILE}) >> ${OFFLINERESUME_FILE}
- echo -n "]" >> ${OFFLINERESUME_FILE}
+ echo -n "[" >${OFFLINERESUME_FILE}
+ echo -n $(jq '.[] | select(.type != "spotify") | select(.type != "radio" | select(.type != "rss")' <${RESUME_FILE}) >>${OFFLINERESUME_FILE}
+ echo -n "]" >>${OFFLINERESUME_FILE}
sed -i 's/} {/}, {/g' ${OFFLINERESUME_FILE}
chown dietpi:dietpi ${OFFLINERESUME_FILE}
elif [ ! -s ${OFFLINERESUME_FILE} ]; then
rm ${OFFLINERESUME_FILE}
- echo -n "[" > ${OFFLINERESUME_FILE}
- echo -n $(jq '.[] | select(.type != "spotify") | select(.type != "radio" | select(.type != "rss")' < ${RESUME_FILE}) >> ${OFFLINERESUME_FILE}
- echo -n "]" >> ${OFFLINERESUME_FILE}
+ echo -n "[" >${OFFLINERESUME_FILE}
+ echo -n $(jq '.[] | select(.type != "spotify") | select(.type != "radio" | select(.type != "rss")' <${RESUME_FILE}) >>${OFFLINERESUME_FILE}
+ echo -n "]" >>${OFFLINERESUME_FILE}
sed -i 's/} {/}, {/g' ${OFFLINERESUME_FILE}
chown dietpi:dietpi ${OFFLINERESUME_FILE}
elif [ $(stat --format='%Y' "${RESUME_FILE}") -gt $(stat --format='%Y' "${OFFLINERESUME_FILE}") ]; then
- echo -n "[" > ${OFFLINERESUME_FILE}
- echo -n $(jq '.[] | select(.type != "spotify") | select(.type != "radio" | select(.type != "rss")' < ${RESUME_FILE}) >> ${OFFLINERESUME_FILE}
- echo -n "]" >> ${OFFLINERESUME_FILE}
+ echo -n "[" >${OFFLINERESUME_FILE}
+ echo -n $(jq '.[] | select(.type != "spotify") | select(.type != "radio" | select(.type != "rss")' <${RESUME_FILE}) >>${OFFLINERESUME_FILE}
+ echo -n "]" >>${OFFLINERESUME_FILE}
sed -i 's/} {/}, {/g' ${OFFLINERESUME_FILE}
fi
if [ "${ONLINESTATE}" != "${OLDSTATE}" ]; then
@@ -133,16 +132,12 @@ do
fi
if [ "${ONLINESTATE}" != "${OLDSTATE}" ]; then
- /usr/bin/cat <<< $(/usr/bin/jq --arg v "${ONLINESTATE}" '.onlinestate = $v' ${NETWORKCONFIG}) > ${NETWORKCONFIG}
- # if [ "${ONLINESTATE}" == "${FALSESTATE}" ] && [ "${OLDSTATE}" != "starting" ]; then
- # #sudo dhclient -r
- # sudo service ifup@wlan0 stop
- # sleep 5
- # sudo service ifup@wlan0 start
- # #sudo dhclient
- # fi
+ /usr/bin/cat <<<$(/usr/bin/jq --arg v "${ONLINESTATE}" '.onlinestate = $v' ${NETWORKCONFIG}) >${NETWORKCONFIG}
+ if [ "${ONLINESTATE}" == ${TRUESTATE} ]; then
+ /usr/local/bin/mupibox/./get_network.sh
+ fi
fi
OLDSTATE=${ONLINESTATE}
-
- sleep 10
-done
\ No newline at end of file
+
+ sleep 60
+done
diff --git a/scripts/mupibox/get_monitor.sh b/scripts/mupibox/get_monitor.sh
index 19728868..1449b19f 100644
--- a/scripts/mupibox/get_monitor.sh
+++ b/scripts/mupibox/get_monitor.sh
@@ -5,34 +5,37 @@
MONITOR_FILE="/home/dietpi/.mupibox/Sonos-Kids-Controller-master/server/config/monitor.json"
minimumsize=18
-while true
-do
+lastState=0
- actualsize=$(wc -c <"${MONITOR_FILE}")
+while true; do
+ actualsize=$(wc -c <"${MONITOR_FILE}")
- if [ ! -f ${MONITOR_FILE} ]; then
- sudo echo -n "{}" ${MONITOR_FILE}
- sudo chown dietpi:dietpi ${MONITOR_FILE}
- /usr/bin/cat <<< $(/usr/bin/jq -n --arg v "On" '.monitor = $v' ${MONITOR_FILE}) > ${MONITOR_FILE}
- elif [ $actualsize -le $minimumsize ]; then
- sudo rm ${MONITOR_FILE}
- sudo echo -n "{}" ${MONITOR_FILE}
- sudo chown dietpi:dietpi ${MONITOR_FILE}
- /usr/bin/cat <<< $(/usr/bin/jq -n --arg v "On" '.monitor = $v' ${MONITOR_FILE}) > ${MONITOR_FILE}
- else
- MONITOR=$(sudo -H -u root bash -c "vcgencmd display_power")
- MONITOR=(${MONITOR##*=})
- POWER=-1
- if [ ${MONITOR} == "-1" ]; then
- POWER=$(cat /sys/class/backlight/*/bl_power)
- fi
+ if [ ! -f ${MONITOR_FILE} ]; then
+ sudo echo -n "{}" ${MONITOR_FILE}
+ sudo chown dietpi:dietpi ${MONITOR_FILE}
+ /usr/bin/cat <<< $(/usr/bin/jq -n --arg v "On" '.monitor = $v' ${MONITOR_FILE}) > ${MONITOR_FILE}
+ elif [ $actualsize -le $minimumsize ]; then
+ sudo rm ${MONITOR_FILE}
+ sudo echo -n "{}" ${MONITOR_FILE}
+ sudo chown dietpi:dietpi ${MONITOR_FILE}
+ /usr/bin/cat <<< $(/usr/bin/jq -n --arg v "On" '.monitor = $v' ${MONITOR_FILE}) > ${MONITOR_FILE}
+ else
+ MONITOR=$(sudo -H -u root bash -c "vcgencmd display_power")
+ MONITOR=(${MONITOR##*=})
+ if [ ${MONITOR} != ${lastState} ]
+ POWER=-1
+ if [ ${MONITOR} == "-1" ]; then
+ POWER=$(cat /sys/class/backlight/*/bl_power)
+ fi
- if [ ${MONITOR} == "0" ] || [ ${POWER} == "4" ]; then
- /usr/bin/cat <<< $(/usr/bin/jq --arg v "Off" '.monitor = $v' ${MONITOR_FILE}) > ${MONITOR_FILE}
- elif [ ${MONITOR} == "1" ] || [ ${POWER} == "0" ]; then
- /usr/bin/cat <<< $(/usr/bin/jq --arg v "On" '.monitor = $v' ${MONITOR_FILE}) > ${MONITOR_FILE}
- fi
- fi
+ if [ ${MONITOR} == "0"] || [ ${POWER} == "4" ]; then
+ /usr/bin/cat <<< $(/usr/bin/jq --arg v "Off" '.monitor = $v' ${MONITOR_FILE}) > ${MONITOR_FILE}
+ elif [ ${MONITOR} == "1" ] || [ ${POWER} == "0" ]; then
+ /usr/bin/cat <<< $(/usr/bin/jq --arg v "On" '.monitor = $v' ${MONITOR_FILE}) > ${MONITOR_FILE}
+ fi
+ lastState=${MONITOR}
+ fi
+ fi
- sleep 1
+ sleep 1
done
diff --git a/scripts/mupibox/get_network.sh b/scripts/mupibox/get_network.sh
index 54b40eb1..35e1fea5 100644
--- a/scripts/mupibox/get_network.sh
+++ b/scripts/mupibox/get_network.sh
@@ -10,70 +10,67 @@ ACTIVERESUME_FILE="/home/dietpi/.mupibox/Sonos-Kids-Controller-master/server/con
OFFLINERESUME_FILE="/home/dietpi/.mupibox/Sonos-Kids-Controller-master/server/config/offline_resume.json"
CONFIG="/etc/mupibox/mupiboxconfig.json"
NETWORKCONFIG="/tmp/network.json"
-#FRONTENDCONFIG="/home/dietpi/.mupibox/Sonos-Kids-Controller-master/server/config/config.json"
-#PLAYERSTATE=$(cat /tmp/playerstate)
DATA_LOCK="/tmp/.data.lock"
RESUME_LOCK="/tmp/.resume.lock"
-
if [ -f "${DATA_LOCK}" ]; then
- echo "Data-file locked."
- exit
+ echo "Data-file locked."
+ exit
else
- touch ${DATA_LOCK}
- if [ ! -f ${DATA_FILE} ]; then
- echo -n "[]" > ${DATA_FILE}
- chown dietpi:dietpi ${DATA_FILE}
- fi
- rm ${DATA_LOCK}
+ touch ${DATA_LOCK}
+ if [ ! -f ${DATA_FILE} ]; then
+ echo -n "[]" >${DATA_FILE}
+ chown dietpi:dietpi ${DATA_FILE}
+ fi
+ rm ${DATA_LOCK}
fi
if [ -f "${RESUME_LOCK}" ]; then
- echo "Resume-file locked."
- exit
+ echo "Resume-file locked."
+ exit
else
- touch ${RESUME_LOCK}
- if [ ! -f ${RESUME_FILE} ]; then
- echo -n "[]" > ${RESUME_FILE}
- chown dietpi:dietpi ${RESUME_FILE}
- fi
- rm ${RESUME_LOCK}
+ touch ${RESUME_LOCK}
+ if [ ! -f ${RESUME_FILE} ]; then
+ echo -n "[]" >${RESUME_FILE}
+ chown dietpi:dietpi ${RESUME_FILE}
+ fi
+ rm ${RESUME_LOCK}
fi
if [ ! -f ${NETWORKCONFIG} ]; then
- sudo echo -n "[]" ${NETWORKCONFIG}
- chown dietpi:dietpi ${NETWORKCONFIG}
- chmod 777 ${NETWORKCONFIG}
- OLD_ONLINESTATE="starting"
- /usr/bin/cat <<< $(/usr/bin/jq -n --arg v "starting" '.onlinestate = $v' ${NETWORKCONFIG}) > ${NETWORKCONFIG}
+ sudo echo -n "[]" ${NETWORKCONFIG}
+ chown dietpi:dietpi ${NETWORKCONFIG}
+ chmod 777 ${NETWORKCONFIG}
+ OLD_ONLINESTATE="starting"
+ /usr/bin/cat <<<$(/usr/bin/jq -n --arg v "starting" '.onlinestate = $v' ${NETWORKCONFIG}) >${NETWORKCONFIG}
else
- OLD_ONLINESTATE=$(/usr/bin/jq -r .onlinestate ${NETWORKCONFIG})
+ OLD_ONLINESTATE=$(/usr/bin/jq -r .onlinestate ${NETWORKCONFIG})
fi
if [ ! -f ${OFFLINE_FILE} ]; then
- echo -n "[" > ${OFFLINE_FILE}
- echo -n $(jq '.[] | select(.type != "spotify") | select(.type != "radio") | select(.type != "rss")' < ${DATA_FILE}) >> ${OFFLINE_FILE}
- echo -n "]" >> ${OFFLINE_FILE}
- sed -i 's/} {/}, {/g' ${OFFLINE_FILE}
- chown dietpi:dietpi ${OFFLINE_FILE}
+ echo -n "[" >${OFFLINE_FILE}
+ echo -n $(jq '.[] | select(.type != "spotify") | select(.type != "radio") | select(.type != "rss")' <${DATA_FILE}) >>${OFFLINE_FILE}
+ echo -n "]" >>${OFFLINE_FILE}
+ sed -i 's/} {/}, {/g' ${OFFLINE_FILE}
+ chown dietpi:dietpi ${OFFLINE_FILE}
elif [ $(stat --format='%Y' "${DATA_FILE}") -gt $(stat --format='%Y' "${OFFLINE_FILE}") ]; then
- echo -n "[" > ${OFFLINE_FILE}
- echo -n $(jq '.[] | select(.type != "spotify") | select(.type != "radio") | select(.type != "rss")' < ${DATA_FILE}) >> ${OFFLINE_FILE}
- echo -n "]" >> ${OFFLINE_FILE}
- sed -i 's/} {/}, {/g' ${OFFLINE_FILE}
+ echo -n "[" >${OFFLINE_FILE}
+ echo -n $(jq '.[] | select(.type != "spotify") | select(.type != "radio") | select(.type != "rss")' <${DATA_FILE}) >>${OFFLINE_FILE}
+ echo -n "]" >>${OFFLINE_FILE}
+ sed -i 's/} {/}, {/g' ${OFFLINE_FILE}
fi
if [ ! -f ${OFFLINERESUME_FILE} ]; then
- echo -n "[" > ${OFFLINERESUME_FILE}
- echo -n $(jq '.[] | select(.type != "spotify") | select(.type != "radio") | select(.type != "rss")' < ${RESUME_FILE}) >> ${OFFLINERESUME_FILE}
- echo -n "]" >> ${OFFLINERESUME_FILE}
- sed -i 's/} {/}, {/g' ${OFFLINERESUME_FILE}
- chown dietpi:dietpi ${OFFLINERESUME_FILE}
+ echo -n "[" >${OFFLINERESUME_FILE}
+ echo -n $(jq '.[] | select(.type != "spotify") | select(.type != "radio") | select(.type != "rss")' <${RESUME_FILE}) >>${OFFLINERESUME_FILE}
+ echo -n "]" >>${OFFLINERESUME_FILE}
+ sed -i 's/} {/}, {/g' ${OFFLINERESUME_FILE}
+ chown dietpi:dietpi ${OFFLINERESUME_FILE}
elif [ $(stat --format='%Y' "${RESUME_FILE}") -gt $(stat --format='%Y' "${OFFLINERESUME_FILE}") ]; then
- echo -n "[" > ${OFFLINERESUME_FILE}
- echo -n $(jq '.[] | select(.type != "spotify") | select(.type != "radio") | select(.type != "rss")' < ${RESUME_FILE}) >> ${OFFLINERESUME_FILE}
- echo -n "]" >> ${OFFLINERESUME_FILE}
- sed -i 's/} {/}, {/g' ${OFFLINERESUME_FILE}
+ echo -n "[" >${OFFLINERESUME_FILE}
+ echo -n $(jq '.[] | select(.type != "spotify") | select(.type != "radio") | select(.type != "rss")' <${RESUME_FILE}) >>${OFFLINERESUME_FILE}
+ echo -n "]" >>${OFFLINERESUME_FILE}
+ sed -i 's/} {/}, {/g' ${OFFLINERESUME_FILE}
fi
GW=$(ip route show 0.0.0.0/0 dev wlan0 | cut -d\ -f3)
@@ -86,14 +83,12 @@ IPA=$(/usr/bin/hostname -I | awk '{print $1}')
DNS=$(echo $(sudo cat /etc/resolv.conf | grep 'nameserver ') | sed 's/nameserver //g')
SUBNET=$(/sbin/ifconfig wlan0 | awk '/netmask/{split($4,a,":"); print a[1]}')
-/usr/bin/cat <<< $(/usr/bin/jq --arg v "${HOSTN}" '.host = $v' ${NETWORKCONFIG}) > ${NETWORKCONFIG}
-/usr/bin/cat <<< $(/usr/bin/jq --arg v "${IPA}" '.ip = $v' ${NETWORKCONFIG}) > ${NETWORKCONFIG}
-/usr/bin/cat <<< $(/usr/bin/jq --arg v "${MAC}" '.mac = $v' ${NETWORKCONFIG}) > ${NETWORKCONFIG}
-/usr/bin/cat <<< $(/usr/bin/jq --arg v "${WIFI}" '.wifi = $v' ${NETWORKCONFIG}) > ${NETWORKCONFIG}
-/usr/bin/cat <<< $(/usr/bin/jq --arg v "${WIFILINK}" '.wifilink = $v' ${NETWORKCONFIG}) > ${NETWORKCONFIG}
-/usr/bin/cat <<< $(/usr/bin/jq --arg v "${WIFISIGNAL}" '.wifisignal = $v' ${NETWORKCONFIG}) > ${NETWORKCONFIG}
-/usr/bin/cat <<< $(/usr/bin/jq --arg v "${GW}" '.gateway = $v' ${NETWORKCONFIG}) > ${NETWORKCONFIG}
-/usr/bin/cat <<< $(/usr/bin/jq --arg v "${DNS}" '.dns = $v' ${NETWORKCONFIG}) > ${NETWORKCONFIG}
-/usr/bin/cat <<< $(/usr/bin/jq --arg v "${SUBNET}" '.subnet = $v' ${NETWORKCONFIG}) > ${NETWORKCONFIG}
-#/usr/bin/cat <<< $(/usr/bin/jq --arg v "${HOSTN}" '."node-sonos-http-api".server = $v' ${FRONTENDCONFIG}) > ${FRONTENDCONFIG}
-#/usr/bin/cat <<< $(/usr/bin/jq --arg v "${IPA}" '."node-sonos-http-api".ip = $v' ${FRONTENDCONFIG}) > ${FRONTENDCONFIG}
\ No newline at end of file
+/usr/bin/cat <<<$(/usr/bin/jq --arg v "${HOSTN}" '.host = $v' ${NETWORKCONFIG}) >${NETWORKCONFIG}
+/usr/bin/cat <<<$(/usr/bin/jq --arg v "${IPA}" '.ip = $v' ${NETWORKCONFIG}) >${NETWORKCONFIG}
+/usr/bin/cat <<<$(/usr/bin/jq --arg v "${MAC}" '.mac = $v' ${NETWORKCONFIG}) >${NETWORKCONFIG}
+/usr/bin/cat <<<$(/usr/bin/jq --arg v "${WIFI}" '.wifi = $v' ${NETWORKCONFIG}) >${NETWORKCONFIG}
+/usr/bin/cat <<<$(/usr/bin/jq --arg v "${WIFILINK}" '.wifilink = $v' ${NETWORKCONFIG}) >${NETWORKCONFIG}
+/usr/bin/cat <<<$(/usr/bin/jq --arg v "${WIFISIGNAL}" '.wifisignal = $v' ${NETWORKCONFIG}) >${NETWORKCONFIG}
+/usr/bin/cat <<<$(/usr/bin/jq --arg v "${GW}" '.gateway = $v' ${NETWORKCONFIG}) >${NETWORKCONFIG}
+/usr/bin/cat <<<$(/usr/bin/jq --arg v "${DNS}" '.dns = $v' ${NETWORKCONFIG}) >${NETWORKCONFIG}
+/usr/bin/cat <<<$(/usr/bin/jq --arg v "${SUBNET}" '.subnet = $v' ${NETWORKCONFIG}) >${NETWORKCONFIG}
diff --git a/scripts/mupibox/idle_shutdown.sh b/scripts/mupibox/idle_shutdown.sh
index d4c0bfbe..f79c361a 100644
--- a/scripts/mupibox/idle_shutdown.sh
+++ b/scripts/mupibox/idle_shutdown.sh
@@ -4,42 +4,47 @@
CONFIG="/etc/mupibox/mupiboxconfig.json"
LOG="/tmp/idle_shutdown.log"
-current_idle_time=0
+current_idle_ticks=0
PLAYERSTATE="/tmp/playerstate"
touch ${PLAYERSTATE}
chown dietpi:dietpi ${PLAYERSTATE}
touch ${LOG}
-echo "$(date +'%d/%m/%Y %H:%M:%S') # SERVICE STARTED" >> ${LOG}
-
-while true
-do
- sleep 10
- max_idle_time=$(/usr/bin/jq -r .timeout.idlePiShutdown ${CONFIG})
- if (( $max_idle_time > 0 ))
- then
- if [[ $(head -n1 ${PLAYERSTATE}) != "play" ]]
- then
- ((current_idle_time++))
- idle=$(( current_idle_time / 6 ))
- if ((${idle} >= ${max_idle_time}))
- then
- TELEGRAM=$(/usr/bin/jq -r .telegram.active ${CONFIG})
- TELEGRAM_CHATID=$(/usr/bin/jq -r .telegram.chatId ${CONFIG})
- TELEGRAM_TOKEN=$(/usr/bin/jq -r .telegram.token ${CONFIG})
- if [ "${TELEGRAM}" ] && [ ${#TELEGRAM_CHATID} -ge 1 ] && [ ${#TELEGRAM_TOKEN} -ge 1 ]; then
- /usr/bin/python3 /usr/local/bin/mupibox/telegram_send_message.py "MuPiBox is to long idle"
+echo "$(date +'%d/%m/%Y %H:%M:%S') # SERVICE STARTED" >>${LOG}
+
+max_idle_time=$(/usr/bin/jq -r .timeout.idlePiShutdown ${CONFIG})
+sleep_sec=60
+
+while true; do
+ sleep ${sleep_sec}
+
+ if ((${max_idle_time} > 0)); then
+ if [[ $(head -n1 ${PLAYERSTATE}) != "play" ]]; then
+ ((current_idle_ticks++))
+ idle_min=$((current_idle_time * ${sleep_sec} / 60))
+
+ if ((${idle_min} >= ${max_idle_time})); then
+ TELEGRAM=$(/usr/bin/jq -r .telegram.active ${CONFIG})
+ TELEGRAM_CHATID=$(/usr/bin/jq -r .telegram.chatId ${CONFIG})
+ TELEGRAM_TOKEN=$(/usr/bin/jq -r .telegram.token ${CONFIG})
+
+ if [ "${TELEGRAM}" ] && [ ${#TELEGRAM_CHATID} -ge 1 ] && [ ${#TELEGRAM_TOKEN} -ge 1 ]; then
+ /usr/bin/python3 /usr/local/bin/mupibox/telegram_send_message.py "MuPiBox is to long idle"
+ fi
+
+ echo "$(date +'%d/%m/%Y %H:%M:%S') # CURRENT IDLE TIME = ${idle_min}" >>${LOG}
+ echo "$(date +'%d/%m/%Y %H:%M:%S') # MAX IDLE TIME REACHED - SHUTDOWN NOW" >>${LOG}
+ sudo /usr/local/bin/mupibox/./shutdown.sh
fi
- echo "$(date +'%d/%m/%Y %H:%M:%S') # CURRENT IDLE TIME = ${idle}" >> ${LOG}
- echo "$(date +'%d/%m/%Y %H:%M:%S') # MAX IDLE TIME REACHED - SHUTDOWN NOW" >> ${LOG}
- sudo /usr/local/bin/mupibox/./shutdown.sh
- fi
+
else
- current_idle_time=0
- echo "$(date +'%d/%m/%Y %H:%M:%S') # CURRENT IDLE TIME = 0" >> ${LOG}
+ current_idle_ticks=0
+ echo "$(date +'%d/%m/%Y %H:%M:%S') # CURRENT IDLE TIME = 0" >>${LOG}
fi
+
else
- current_idle_time=0
+ current_idle_ticks=0
fi
- echo "$(date +'%d/%m/%Y %H:%M:%S') # CURRENT IDLE TIME = ${idle}" >> ${LOG}
+
+ echo "$(date +'%d/%m/%Y %H:%M:%S') # CURRENT IDLE TIME = ${idle_min}" >>${LOG}
done
diff --git a/scripts/mupibox/led_control.py b/scripts/mupibox/led_control.py
index 5ddfe189..5a4bff71 100644
--- a/scripts/mupibox/led_control.py
+++ b/scripts/mupibox/led_control.py
@@ -64,25 +64,24 @@ def init():
tmp = os.popen("ps -ef | grep chromium-browser | grep http | grep -v grep").read()
led_control(0, int(JSON_DATA["led_max_brightness"]), 0.01)
-
def main():
JSON_DATA = read_json()
LED_DIM_MODE_LAST = JSON_DATA["led_dim_mode"]
while True:
- JSON_DATA = read_json()
if JSON_DATA != "skip":
if JSON_DATA["led_dim_mode"] == "0" and JSON_DATA["led_dim_mode"] != LED_DIM_MODE_LAST:
led_control(int(JSON_DATA["led_min_brightness"]), int(JSON_DATA["led_max_brightness"]), 0.02)
if JSON_DATA["led_dim_mode"] == "1" and JSON_DATA["led_dim_mode"] != LED_DIM_MODE_LAST:
led_control(int(JSON_DATA["led_max_brightness"]), int(JSON_DATA["led_min_brightness"]), 0.02)
LED_DIM_MODE_LAST = JSON_DATA["led_dim_mode"]
- sleep(1)
+ sleep(10)
if __name__ == "__main__":
JSON_DATA = "skip"
JSON_DATA_FILE = "/tmp/.power_led"
while JSON_DATA == "skip":
JSON_DATA = read_json()
+ sleep(1)
pwm_frequency = int(JSON_DATA.get("pwm_frequency", DEFAULT_PWM_FREQUENCY))
GPIO.setmode(GPIO.BCM)
diff --git a/scripts/mupibox/mupi_start_led.sh b/scripts/mupibox/mupi_start_led.sh
index 457e4988..913fabac 100644
--- a/scripts/mupibox/mupi_start_led.sh
+++ b/scripts/mupibox/mupi_start_led.sh
@@ -6,32 +6,30 @@ TMP_LEDFILE="/tmp/.power_led"
OLD_STATE=1
ledPin=$(/usr/bin/jq -r .shim.ledPin ${MUPIBOX_CONFIG})
-ledPin=$(printf '%d' "$ledPin")
ledMax=$(/usr/bin/jq -r .shim.ledBrightnessMax ${MUPIBOX_CONFIG})
-ledMax=$(printf '%d' "$ledMax")
ledMin=$(/usr/bin/jq -r .shim.ledBrightnessMin ${MUPIBOX_CONFIG})
-ledMin=$(printf '%d' "$ledMin")
echo "{}" | tee ${TMP_LEDFILE}
-/usr/bin/cat <<< $(/usr/bin/jq --argjson v ${ledPin} '.led_gpio = $v' ${TMP_LEDFILE}) > ${TMP_LEDFILE}
-/usr/bin/cat <<< $(/usr/bin/jq --argjson v ${ledMax} '.led_max_brightness = $v' ${TMP_LEDFILE}) > ${TMP_LEDFILE}
-/usr/bin/cat <<< $(/usr/bin/jq --argjson v ${ledMin} '.led_min_brightness = $v' ${TMP_LEDFILE}) > ${TMP_LEDFILE}
-/usr/bin/cat <<< $(/usr/bin/jq '.led_current_brightness = 0' ${TMP_LEDFILE}) > ${TMP_LEDFILE}
-/usr/bin/cat <<< $(/usr/bin/jq '.led_dim_mode = 0' ${TMP_LEDFILE}) > ${TMP_LEDFILE}
+/usr/bin/cat <<<$(/usr/bin/jq --argjson v $(printf '%d' "${ledPin}") '.led_gpio = $v' ${TMP_LEDFILE}) >${TMP_LEDFILE}
+/usr/bin/cat <<<$(/usr/bin/jq --argjson v $(printf '%d' "${ledMax}") '.led_max_brightness = $v' ${TMP_LEDFILE}) >${TMP_LEDFILE}
+/usr/bin/cat <<<$(/usr/bin/jq --argjson v $(printf '%d' "${ledMin}") '.led_min_brightness = $v' ${TMP_LEDFILE}) >${TMP_LEDFILE}
+/usr/bin/cat <<<$(/usr/bin/jq '.led_current_brightness = 0' ${TMP_LEDFILE}) >${TMP_LEDFILE}
+/usr/bin/cat <<<$(/usr/bin/jq '.led_dim_mode = 0' ${TMP_LEDFILE}) >${TMP_LEDFILE}
/usr/bin/python3 /usr/local/bin/mupibox/led_control.py &
#/usr/local/bin/mupibox/./led_control &
+wled_baud_rate=$(/usr/bin/jq -r .wled.baud_rate ${MUPIBOX_CONFIG})
+wled_com_port=$(/usr/bin/jq -r .wled.com_port ${MUPIBOX_CONFIG})
+wled_main_id=$(/usr/bin/jq -r .wled.main_id ${MUPIBOX_CONFIG})
+wled_brightness_def=$(/usr/bin/jq -r .wled.brightness_default ${MUPIBOX_CONFIG})
+wled_brightness_dim=$(/usr/bin/jq -r .wled.brightness_dimmed ${MUPIBOX_CONFIG})
+
# WLED
wled_active=$(/usr/bin/jq -r .wled.active ${MUPIBOX_CONFIG})
if [ ${wled_active} = true ]; then
- wled_com_port=$(/usr/bin/jq -r .wled.com_port ${MUPIBOX_CONFIG})
- wled_main_id=$(/usr/bin/jq -r .wled.main_id ${MUPIBOX_CONFIG})
- wled_baud_rate=$(/usr/bin/jq -r .wled.baud_rate ${MUPIBOX_CONFIG})
- wled_brightness_def=$(/usr/bin/jq -r .wled.brightness_default ${MUPIBOX_CONFIG})
- pid=`pidof /usr/lib/chromium-browser/chromium-browser`
- while [ -z "${pid}" ] ;
- do
- pid=`pidof /usr/lib/chromium-browser/chromium-browser`
+ pid=$(pidof /usr/lib/chromium-browser/chromium-browser)
+ while [ -z "${pid}" ]; do
+ pid=$(pidof /usr/lib/chromium-browser/chromium-browser)
sleep 3
done
wled_data='{"ps":'${wled_main_id}'}'
@@ -42,36 +40,24 @@ if [ ${wled_active} = true ]; then
/usr/bin/python3 /usr/local/bin/mupibox/wled_send_data.py -s ${wled_com_port} -b ${wled_baud_rate} -j ${wled_data}
fi
-while true
-do
- sleep 1
- ledPin=$(/usr/bin/jq -r .shim.ledPin ${MUPIBOX_CONFIG})
- ledMax=$(/usr/bin/jq -r .shim.ledBrightnessMax ${MUPIBOX_CONFIG})
- ledMin=$(/usr/bin/jq -r .shim.ledBrightnessMin ${MUPIBOX_CONFIG})
- wled_baud_rate=$(/usr/bin/jq -r .wled.baud_rate ${MUPIBOX_CONFIG})
- wled_com_port=$(/usr/bin/jq -r .wled.com_port ${MUPIBOX_CONFIG})
- wled_brightness_def=$(/usr/bin/jq -r .wled.brightness_default ${MUPIBOX_CONFIG})
- wled_brightness_dim=$(/usr/bin/jq -r .wled.brightness_dimmed ${MUPIBOX_CONFIG})
-
- #ledMin=$(echo "scale=2; $ledMin/100" | bc)
- #ledMax=$(echo "scale=2; $ledMax/100" | bc)
- displayState=`vcgencmd display_power | grep -o '.$'`
- wled_active=$(/usr/bin/jq -r .wled.active ${MUPIBOX_CONFIG})
- if [ ${displayState} -eq 1 ] && [ ${OLD_STATE} -ne ${displayState} ]
- then
- if [ ${wled_active} = true ]; then
- wled_data='{"bri":'${wled_brightness_def}'}'
- /usr/bin/python3 /usr/local/bin/mupibox/wled_send_data.py -s ${wled_com_port} -b ${wled_baud_rate} -j ${wled_data}
- fi
- /usr/bin/cat <<< $(/usr/bin/jq '.led_dim_mode = 1' ${TMP_LEDFILE}) > ${TMP_LEDFILE}
- OLD_STATE=${displayState}
- elif [ ${displayState} -eq 0 ] && [ ${OLD_STATE} -ne ${displayState} ]
- then
- if [ ${wled_active} = true ]; then
- wled_data='{"bri":'${wled_brightness_dim}'}'
- /usr/bin/python3 /usr/local/bin/mupibox/wled_send_data.py -s ${wled_com_port} -b ${wled_baud_rate} -j ${wled_data}
- fi
- /usr/bin/cat <<< $(/usr/bin/jq '.led_dim_mode = 0' ${TMP_LEDFILE}) > ${TMP_LEDFILE}
- OLD_STATE=${displayState}
+while true; do
+ displayState=$(vcgencmd display_power | grep -o '.$')
+ wled_active=$(/usr/bin/jq -r .wled.active ${MUPIBOX_CONFIG})
+ if [ ${displayState} -eq 1 ] && [ ${OLD_STATE} -ne ${displayState} ]; then
+ if [ ${wled_active} = true ]; then
+ wled_data='{"bri":'${wled_brightness_def}'}'
+ /usr/bin/python3 /usr/local/bin/mupibox/wled_send_data.py -s ${wled_com_port} -b ${wled_baud_rate} -j ${wled_data}
fi
+ /usr/bin/cat <<<$(/usr/bin/jq '.led_dim_mode = 1' ${TMP_LEDFILE}) >${TMP_LEDFILE}
+ OLD_STATE=${displayState}
+ elif [ ${displayState} -eq 0 ] && [ ${OLD_STATE} -ne ${displayState} ]; then
+ if [ ${wled_active} = true ]; then
+ wled_data='{"bri":'${wled_brightness_dim}'}'
+ /usr/bin/python3 /usr/local/bin/mupibox/wled_send_data.py -s ${wled_com_port} -b ${wled_baud_rate} -j ${wled_data}
+ fi
+ /usr/bin/cat <<<$(/usr/bin/jq '.led_dim_mode = 0' ${TMP_LEDFILE}) >${TMP_LEDFILE}
+ OLD_STATE=${displayState}
+ fi
+
+ sleep 10
done
diff --git a/scripts/online/install_rtl88x2bu.sh b/scripts/online/install_rtl88x2bu.sh
index d577e517..e52c0f38 100644
--- a/scripts/online/install_rtl88x2bu.sh
+++ b/scripts/online/install_rtl88x2bu.sh
@@ -17,4 +17,4 @@ else
cd /home/dietpi/.driver/network/88x2bu-20210702
chmod +x install-driver.sh
sudo ./install-driver.sh NoPrompt >> /home/dietpi/driver.txt
-fi
+fi
\ No newline at end of file
diff --git a/scripts/wled/wled_send_data.py b/scripts/wled/wled_send_data.py
index d0d7efcd..81566cba 100644
--- a/scripts/wled/wled_send_data.py
+++ b/scripts/wled/wled_send_data.py
@@ -20,7 +20,6 @@
__status__ = "stable"
import sys
-import json
import serial
import getopt
@@ -36,11 +35,12 @@ def infohelp():
print ('Example:')
print (' python3 wled_send_data.py -s /dev/ttyUSB0 -b 115200 -j {"v":true}')
sys.exit(2)
+
def main(argv):
if len(sys.argv) < 4:
infohelp()
try:
- opts, args = getopt.getopt(argv,"hs:b:j:",["serial=","baud=","json="])
+ opts, _ = getopt.getopt(argv,"hs:b:j:",["serial=","baud=","json="])
except getopt.GetoptError:
infohelp()
for opt, arg in opts:
@@ -54,18 +54,15 @@ def main(argv):
json_data = arg
ser = serial.Serial(serial_port, baud_rate, timeout=1) # Timeout von 1 Sekunde
try:
- # JSON-String senden
+ # send JSON-String
ser.write(json_data.encode())
print(f"JSON-data send: {json_data}")
-
- #time.sleep(0.8)
- #response = ser.readline().decode('utf-8').strip() # strip() entfernt führende und nachfolgende Leerzeichen
except serial.SerialException as se:
print(f"Serial error: {se}")
except Exception as e:
print(f"Error: {e}")
finally:
- ser.close()
+ ser.close()
if __name__ == "__main__":
main(sys.argv[1:])
diff --git a/update/start_mupibox_update.sh b/update/start_mupibox_update.sh
index 7e024bea..cac0f5c3 100644
--- a/update/start_mupibox_update.sh
+++ b/update/start_mupibox_update.sh
@@ -4,7 +4,7 @@
#https://raw.githubusercontent.com/splitti/MuPiBox/main
if [ "$1" = "dev" ] || [ "$1" = "beta" ] || [ "$1" = "stable" ]; then
- RELEASE="$1"
+ RELEASE="$1"
elif [ "$1" = "branch" ]; then
RELEASE="dev"
BRANCH="$2"
@@ -32,13 +32,13 @@ STEP=0
VER_JSON="/tmp/version.json"
OS=$(grep -E '^(VERSION_CODENAME)=' /etc/os-release) >&3 2>&3
OS=${OS:17} >&3 2>&3
-ARCH=$(uname -m) >&3 2>&3
+ARCH=$(uname -m) >&3 2>&3
wget -O /tmp/installation.jpg https://raw.githubusercontent.com/splitti/MuPiBox/main/media/images/installation.jpg >&3 2>&3
/usr/bin/fbv /tmp/installation.jpg & >&3 2>&3
if [ -z "$BRANCH" ]; then
- wget -q -O ${VER_JSON} https://raw.githubusercontent.com/splitti/MuPiBox/main/version.json >&3 2>&3
+ wget -q -O ${VER_JSON} https://raw.githubusercontent.com/splitti/MuPiBox/develop/version.json >&3 2>&3
VERSION=$(/usr/bin/jq -r .release.${RELEASE}[-1].version ${VER_JSON}) >&3 2>&3
MUPIBOX_URL=$(/usr/bin/jq -r .release.${RELEASE}[-1].url ${VER_JSON}) >&3 2>&3
else
@@ -57,7 +57,7 @@ else
fi
if [ -n "$BRANCH" ]; then
- VERSION_LONG="DEV ${BRANCH} $(curl -s 'https://api.github.com/repos/splitti/MuPiBox/branches/'"$BRANCH" | jq -r '.commit.commit.committer.date' | cut -d'T' -f1)" >&3 2>&3
+ VERSION_LONG="DEV ${BRANCH} $(curl -s 'https://api.github.com/repos/splitti/MuPiBox/branches/'"$BRANCH" | jq -r '.commit.commit.committer.date' | cut -d'T' -f1)" >&3 2>&3
elif [ "$RELEASE" = "dev" ]; then
VERSION_LONG="DEV $(curl -s "https://api.github.com/repos/splitti/MuPiBox" | jq -r '.pushed_at' | cut -d'T' -f1)" >&3 2>&3
else
@@ -84,8 +84,8 @@ echo "==========================================================================
echo -e "XXX\n0\nPrepare Update... \nXXX" >&3 2>&3
systemctl stop mupi_idle_shutdown.service >&3 2>&3
- mkdir /home/dietpi/.mupibox/chromium_cache >&3 2>&3
- mkdir /home/dietpi/MuPiBox/media/audiobook >&3 2>&3
+ mkdir /home/dietpi/.mupibox/chromium_cache >&3 2>&3
+ mkdir /home/dietpi/MuPiBox/media/audiobook >&3 2>&3
mkdir /home/dietpi/MuPiBox/media/music >&3 2>&3
mkdir /home/dietpi/MuPiBox/media/other >&3 2>&3
mkdir /home/dietpi/MuPiBox/media/cover >&3 2>&3
@@ -121,7 +121,7 @@ echo "==========================================================================
###############################################################################################
-
+
for package in ${packages2install}
do
before=$(date +%s)
@@ -135,7 +135,7 @@ echo "==========================================================================
after=$(date +%s)
echo -e "## apt-get install ${package} ## finished after $((after - $before)) seconds" >&3 2>&3
done
-
+
for package in ${packages2remove}
do
before=$(date +%s)
@@ -177,7 +177,7 @@ echo "==========================================================================
echo -e "XXX\n${STEP}\nInstall package python3-mutagen\nXXX"
packages2install="python3-mutagen python3-dev"
for package in ${packages2install}
- do
+ do
before=$(date +%s)
echo -e "XXX\n${STEP}\nInstall ${package}\nXXX"
PKG_OK=$(dpkg -l ${package} 2>/dev/null | egrep '^ii' | wc -l) >&3 2>&3
@@ -201,7 +201,7 @@ echo "==========================================================================
###############################################################################################
-# echo -e "XXX\n${STEP}\nSetup docker and container... \nXXX"
+# echo -e "XXX\n${STEP}\nSetup docker and container... \nXXX"
# before=$(date +%s)
# if [ ! -f /usr/bin/docker ]; then
# sudo bash < <(curl -fsSL https://get.Docker.com) >&3 2>&3
@@ -213,10 +213,10 @@ echo "==========================================================================
# after=$(date +%s)
# echo -e "## Setup docker and container ## finished after $((after - $before)) seconds" >&3 2>&3
# STEP=$(($STEP + 1))
-
+
###############################################################################################
- echo -e "XXX\n${STEP}\nSetup DietPi-Dashboard... \nXXX"
+ echo -e "XXX\n${STEP}\nSetup DietPi-Dashboard... \nXXX"
before=$(date +%s)
mkdir /opt/dietpi-dashboard >&3 2>&3
rm /opt/dietpi-dashboard/dietpi-dashboard >&3 2>&3
@@ -232,7 +232,7 @@ echo "==========================================================================
###############################################################################################
- echo -e "XXX\n${STEP}\nDownload MuPiBox Version ${VERSION_LONG}... \nXXX"
+ echo -e "XXX\n${STEP}\nDownload MuPiBox Version ${VERSION_LONG}... \nXXX"
before=$(date +%s)
wget -q -O /home/dietpi/mupibox.zip ${MUPIBOX_URL} >&3 2>&3
after=$(date +%s)
@@ -241,7 +241,7 @@ echo "==========================================================================
###############################################################################################
- echo -e "XXX\n${STEP}\nUnzip MuPiBox Version ${VERSION_LONG}... \nXXX"
+ echo -e "XXX\n${STEP}\nUnzip MuPiBox Version ${VERSION_LONG}... \nXXX"
before=$(date +%s)
unzip -q -d /home/dietpi /home/dietpi/mupibox.zip >&3 2>&3
rm /home/dietpi/mupibox.zip >&3 2>&3
@@ -261,13 +261,13 @@ echo "==========================================================================
mv /home/dietpi/.mupibox/Sonos-Kids-Controller-master/www/active_theme.css /tmp/active_theme.css >&3 2>&3
after=$(date +%s)
echo -e "## Backup Data ## finished after $((after - $before)) seconds" >&3 2>&3
-
+
STEP=$(($STEP + 1))
###############################################################################################
- echo -e "XXX\n${STEP}\nUpdate frontend, backend-api, and backend-player ... \nXXX"
+ echo -e "XXX\n${STEP}\nUpdate frontend, backend-api, and backend-player ... \nXXX"
before=$(date +%s)
sudo -H -u dietpi bash -c "pm2 stop server" >&3 2>&3
#su - dietpi -c "pm2 save" >&3 2>&3
@@ -285,7 +285,7 @@ echo "==========================================================================
###############################################################################################
- echo -e "XXX\n${STEP}\nCopy MuPiBox-Files... \nXXX"
+ echo -e "XXX\n${STEP}\nCopy MuPiBox-Files... \nXXX"
# MuPiBox
before=$(date +%s)
mkdir -p /home/dietpi/.mupibox/Sonos-Kids-Controller-master/www/theme-data/earth >&3 2>&3
@@ -305,7 +305,7 @@ echo "==========================================================================
mkdir -p /home/dietpi/.mupibox/Sonos-Kids-Controller-master/www/theme-data/unicorn >&3 2>&3
mkdir -p /home/dietpi/.mupibox/Sonos-Kids-Controller-master/www/theme-data/axolotl >&3 2>&3
mkdir -p /home/dietpi/.mupibox/Sonos-Kids-Controller-master/www/theme-data/custom >&3 2>&3
-
+
#FANTASY-BUTTERFLIES
mv ${MUPI_SRC}/themes/fantasybutterflies/odstemplikBold.otf /home/dietpi/.mupibox/Sonos-Kids-Controller-master/www/theme-data/fantasybutterflies/odstemplikBold.otf >&3 2>&3
mv ${MUPI_SRC}/themes/fantasybutterflies/fantasy-butterflies-bg.jpg /home/dietpi/.mupibox/Sonos-Kids-Controller-master/www/theme-data/fantasybutterflies/fantasy-butterflies-bg.jpg >&3 2>&3
@@ -338,7 +338,7 @@ echo "==========================================================================
#ENTERPRISE
mv ${MUPI_SRC}/themes/enterprise/Nasa21.ttf /home/dietpi/.mupibox/Sonos-Kids-Controller-master/www/theme-data/enterprise/Nasa21.ttf >&3 2>&3
mv ${MUPI_SRC}/themes/enterprise/enterprise-bg.jpg /home/dietpi/.mupibox/Sonos-Kids-Controller-master/www/theme-data/enterprise/enterprise-bg.jpg >&3 2>&3
-
+
#SPIDERMAN
mv ${MUPI_SRC}/themes/spiderman/IntensaFuente.ttf /home/dietpi/.mupibox/Sonos-Kids-Controller-master/www/theme-data/spiderman/IntensaFuente.ttf >&3 2>&3
mv ${MUPI_SRC}/themes/spiderman/spiderman-bg.jpg /home/dietpi/.mupibox/Sonos-Kids-Controller-master/www/theme-data/spiderman/spiderman-bg.jpg >&3 2>&3
@@ -350,11 +350,11 @@ echo "==========================================================================
#MARIO
mv ${MUPI_SRC}/themes/supermario/NewSuperMarioFontU.ttf /home/dietpi/.mupibox/Sonos-Kids-Controller-master/www/theme-data/supermario/NewSuperMarioFontU.ttf >&3 2>&3
mv ${MUPI_SRC}/themes/supermario/supermario-bg.jpg /home/dietpi/.mupibox/Sonos-Kids-Controller-master/www/theme-data/supermario/supermario-bg.jpg >&3 2>&3
-
+
#DINOSAUR
mv ${MUPI_SRC}/themes/dinosaur/BerlinSmallCaps.ttf /home/dietpi/.mupibox/Sonos-Kids-Controller-master/www/theme-data/dinosaur/BerlinSmallCaps.ttf >&3 2>&3
mv ${MUPI_SRC}/themes/dinosaur/dinosaur-bg.jpg /home/dietpi/.mupibox/Sonos-Kids-Controller-master/www/theme-data/dinosaur/dinosaur-bg.jpg >&3 2>&3
-
+
#UNICORN
mv ${MUPI_SRC}/themes/unicorn/MagnoliaScript.otf /home/dietpi/.mupibox/Sonos-Kids-Controller-master/www/theme-data/unicorn/MagnoliaScript.otf >&3 2>&3
mv ${MUPI_SRC}/themes/unicorn/unicorn-bg.jpg /home/dietpi/.mupibox/Sonos-Kids-Controller-master/www/theme-data/unicorn/unicorn-bg.jpg >&3 2>&3
@@ -403,10 +403,10 @@ echo "==========================================================================
###############################################################################################
- echo -e "XXX\n${STEP}\nCopy binaries... \nXXX"
+ echo -e "XXX\n${STEP}\nCopy binaries... \nXXX"
before=$(date +%s)
rm /usr/bin/jq >&3 2>&3
-
+
service spotifyd stop >&3 2>&3
systemctl disable spotifyd >&3 2>&3
service librespot stop >&3 2>&3
@@ -416,19 +416,17 @@ echo "==========================================================================
# Binaries
if [ `getconf LONG_BIT` == 32 ]; then
- wget -O /usr/bin/jq https://github.com/jqlang/jq/releases/download/jq-1.8.1/jq-linux-armhf >&3 2>&3
+ wget -O /usr/bin/jq https://github.com/jqlang/jq/releases/latest/download/jq-linux-armhf >&3 2>&3
wget -O /usr/bin/librespot https://github.com/splitti/MuPiBox/raw/refs/heads/main/bin/librespot/dev_0.6_20250806/librespot-32bit >&3 2>&3
- #mv ${MUPI_SRC}/bin/librespot/dev_0.6_20250305/librespot-32bit /usr/bin/librespot >&3 2>&3
mv ${MUPI_SRC}/bin/fbv/fbv /usr/bin/fbv >&3 2>&3
else
- wget -O /usr/bin/jq https://github.com/jqlang/jq/releases/download/jq-1.8.1/jq-linux-arm64 >&3 2>&3
+ wget -O /usr/bin/jq https://github.com/jqlang/jq/releases/latest/download/jq-linux-arm64 >&3 2>&3
wget -O /usr/bin/librespot https://github.com/splitti/MuPiBox/raw/refs/heads/main/bin/librespot/dev_0.6_20250806/librespot-64bit >&3 2>&3
- #mv ${MUPI_SRC}/bin/librespot/dev_0.6_20250305/librespot-64bit /usr/bin/librespot >&3 2>&3
mv ${MUPI_SRC}/bin/fbv/fbv_64 /usr/bin/fbv >&3 2>&3
fi
chmod 755 /usr/bin/fbv /usr/bin/jq /usr/bin/librespot >&3 2>&3
#mv ${MUPI_SRC}/config/templates/librespot.conf /etc/spotifyd/spotifyd.conf >&3 2>&3
-
+
mkdir /etc/librespot/ >&3 2>&3
mkdir -p $(cat /etc/mupibox/mupiboxconfig.json | jq -r .spotify.cachepath) >&3 2>&3
chown dietpi:dietpi $(cat /etc/mupibox/mupiboxconfig.json | jq -r .spotify.cachepath) >&3 2>&3
@@ -436,10 +434,10 @@ echo "==========================================================================
after=$(date +%s)
echo -e "## Copy binaries ## finished after $((after - $before)) seconds" >&3 2>&3
STEP=$(($STEP + 1))
-
+
###############################################################################################
- echo -e "XXX\n${STEP}\nCopy some media files... \nXXX"
+ echo -e "XXX\n${STEP}\nCopy some media files... \nXXX"
# Splash and Media
before=$(date +%s)
#mv ${MUPI_SRC}/config/templates/splash.txt /boot/splash.txt >&3 2>&3
@@ -460,8 +458,8 @@ echo "==========================================================================
###############################################################################################
- echo -e "XXX\n${STEP}\nInstall LED Control... \nXXX"
-
+ echo -e "XXX\n${STEP}\nInstall LED Control... \nXXX"
+
before=$(date +%s)
rm /usr/local/bin/mupibox/led_control >&3 2>&3
gcc -o ${MUPI_SRC}/scripts/led/led_control ${MUPI_SRC}/scripts/led/led_control.c -lpigpio -ljson-c >&3 2>&3
@@ -516,9 +514,9 @@ echo "==========================================================================
after=$(date +%s)
echo -e "## Restarting services ## finished after $((after - $before)) seconds" >&3 2>&3
STEP=$(($STEP + 1))
-
+
###############################################################################################
- echo -e "XXX\n${STEP}\nUninstall Pi-Blaster... \nXXX"
+ echo -e "XXX\n${STEP}\nUninstall Pi-Blaster... \nXXX"
before=$(date +%s)
sudo -H -u dietpi bash -c 'cd /home/dietpi/pi-blaster; make uninstall' >&3 2>&3
rm -R /home/dietpi/pi-blaster >&3 2>&3
@@ -529,7 +527,7 @@ echo "==========================================================================
###############################################################################################
- echo -e "XXX\n${STEP}\nSet environment... \nXXX"
+ echo -e "XXX\n${STEP}\nSet environment... \nXXX"
before=$(date +%s)
/usr/bin/chmod 755 ${MUPI_SRC}/config/templates/crontab.template >&3 2>&3
/usr/bin/chown dietpi:dietpi ${MUPI_SRC}/config/templates/crontab.template >&3 2>&3
@@ -559,10 +557,10 @@ echo "==========================================================================
after=$(date +%s)
echo -e "## Set environment ## finished after $((after - $before)) seconds" >&3 2>&3
STEP=$(($STEP + 1))
-
+
###############################################################################################
- echo -e "XXX\n{STEP}\nDownload OnOffShim-Scripts... \nXXX"
+ echo -e "XXX\n{STEP}\nDownload OnOffShim-Scripts... \nXXX"
before=$(date +%s)
# OnOffShim
mv ${MUPI_SRC}/scripts/OnOffShim/off_trigger.sh /var/lib/dietpi/postboot.d/off_trigger.sh >&3 2>&3
@@ -575,9 +573,9 @@ echo "==========================================================================
###############################################################################################
- echo -e "XXX\n{STEP}\nUpdate Admin-Interface... \nXXX"
+ echo -e "XXX\n{STEP}\nUpdate Admin-Interface... \nXXX"
before=$(date +%s)
- rm -R /var/www/* >&3 2>&3
+ rm -R /var/www/* >&3 2>&3
mv ${MUPI_SRC}/AdminInterface/release/www.zip /var/www/www.zip >&3 2>&3
unzip /var/www/www.zip -d /var/www/ >&3 2>&3
rm /var/www/www.zip >&3 2>&3
@@ -590,7 +588,7 @@ echo "==========================================================================
###############################################################################################
- echo -e "XXX\n${STEP}\nUpdate Config-File... \nXXX"
+ echo -e "XXX\n${STEP}\nUpdate Config-File... \nXXX"
before=$(date +%s)
cd ${MUPI_SRC}/update/ >&3 2>&3
chmod 755 conf_update.sh >&3 2>&3
@@ -598,11 +596,11 @@ echo "==========================================================================
after=$(date +%s)
echo -e "## Config-File ## finished after $((after - $before)) seconds" >&3 2>&3
STEP=$(($STEP + 1))
-
-
+
+
###############################################################################################
- echo -e "XXX\n{STEP}\nNetwork optimization... \nXXX"
+ echo -e "XXX\n{STEP}\nNetwork optimization... \nXXX"
before=$(date +%s)
cd /usr/local/bin/mupibox/ >&3 2>&3
@@ -613,9 +611,9 @@ echo "==========================================================================
###############################################################################################
- echo -e "XXX\n{STEP}\nActivate SSL... \nXXX"
+ echo -e "XXX\n{STEP}\nActivate SSL... \nXXX"
before=$(date +%s)
-
+
openssl req -new -x509 -keyout /etc/lighttpd/server.pem -out /etc/lighttpd/server.pem -days 3650 -nodes -subj "/C=DE/CN=mupibox" >/dev/null >&3 2>&3
lighty-enable-mod ssl >&3 2>&3
service lighttpd force-reload >&3 2>&3
@@ -637,9 +635,9 @@ echo "==========================================================================
after=$(date +%s)
echo -e "## Restore Userdata ## finished after $((after - $before)) seconds" >&3 2>&3
STEP=$(($STEP + 1))
-
+
###############################################################################################
-
+
echo -e "XXX\n${STEP}\nFinalizing setup... \nXXX"
#cp ${CONFIG} ${CONFIG}_backup >&3 2>&3
/usr/bin/cat <<< $(/usr/bin/jq --arg v "${VERSION_LONG}" '.mupibox.version = $v' ${CONFIG}) > ${CONFIG}
@@ -654,10 +652,10 @@ echo "==========================================================================
/usr/local/bin/mupibox/./m3u_generator.sh >&3 2>&3
/usr/local/bin/mupibox/./setting_update.sh >&3 2>&3
service librespot restart >&3 2>&3
-
+
mv ${LOG} /boot/$(date +%F)_update_${VERSION}.log >&3 2>&3
chown dietpi:dietpi ${CONFIG} >&3 2>&3
-
+
sudo -H -u dietpi bash -c "cd /home/dietpi/.mupibox/Sonos-Kids-Controller-master && npm install" >&3 2>&3
sudo -H -u dietpi bash -c "pm2 start server" >&3 2>&3
@@ -665,7 +663,7 @@ echo "==========================================================================
curl -X POST https://mupibox.de/mupi/ct.php -H "Content-Type: application/x-www-form-urlencoded" -d key1=${CPU} -d key2=Update -d key3="${VERSION_LONG}" -d key4="${ARCH}" -d key5="${OS}" >&3 2>&3
###############################################################################################
- echo -e "XXX\n100\nInstallation complete, please reboot the system... \nXXX"
+ echo -e "XXX\n100\nInstallation complete, please reboot the system... \nXXX"
rm -R ${MUPI_SRC} >&3 2>&3
sleep 5