From 899c9bcbfd380584f5ef6fbe5007166b64334987 Mon Sep 17 00:00:00 2001 From: Tobias Boesch <tobias.boesch@googlemail.com> Date: Wed, 29 Jan 2020 13:47:42 +0100 Subject: [PATCH 001/206] Branch and repo changed for buster install * Repo topas-rec * Branch develop --- scripts/installscripts/buster-install-default.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index 40415b6e4..d72a5e339 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -5,7 +5,7 @@ # The absolute path to the folder which contains this script PATHDATA="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -GIT_BRANCH=${GIT_BRANCH:-master} +GIT_BRANCH=${GIT_BRANCH:-develop} clear echo "##################################################### @@ -528,7 +528,7 @@ cd /home/pi/ || exit # Must be changed to the correct branch!!! # Change to master when merging develop with master!!! -git clone https://github.com/MiczFlor/RPi-Jukebox-RFID.git --branch "${GIT_BRANCH}" +git clone https://github.com/topas-rec/RPi-Jukebox-RFID.git --branch "${GIT_BRANCH}" cd /home/pi/RPi-Jukebox-RFID/misc/sampleconfigs/ || exit sudo rm phoniebox-rfid-reader.service.stretch-default.sample From bcee4f2c20445928bfc22c091a00421a63c31db5 Mon Sep 17 00:00:00 2001 From: manajoe <mana@mm13.de> Date: Tue, 9 Jun 2020 21:14:00 +0100 Subject: [PATCH 002/206] implemented shutdownwithreducingvolume --- scripts/playout_controls.sh | 74 ++++++++++++++++++++++++++++++++----- 1 file changed, 65 insertions(+), 9 deletions(-) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index 6252a2655..58f2cb545 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -22,11 +22,13 @@ NOW=`date +%Y-%m-%d.%H:%M:%S` # shutdown # shutdownsilent # shutdownafter +# shutdownwithreducingvolume # reboot # scan # mute # setvolume # setmaxvolume +# setmaxvolumetemp # setstartupvolume # getstartupvolume # setvolumetostartup @@ -34,6 +36,7 @@ NOW=`date +%Y-%m-%d.%H:%M:%S` # volumedown # getvolume # getmaxvolume +# getmaxvolumetemp # setvolstep # getvolstep # playerstop @@ -159,6 +162,20 @@ case $COMMAND in echo "${PATHDATA}/playout_controls.sh -c=shutdownsilent" | at -q t now + ${VALUE} minute fi ;; + shutdownwithreducingvolume) + # get current volume in percent + VOLPERCENT=$(echo -e status\\nclose | nc -w 1 localhost 6600 | grep -o -P '(?<=volume: ).*') + # divide current volume by 10 to get a step size for reducing the volume + VOLSTEP=`expr $((VOLPERCENT / 10))`; + # divide VALUE by 10, volume will be reduced every TIMESTEP minutes (e.g. for a value of "30" it will be every "3" minutes) + TIMESTEP=`expr $((VALUE / 10))`; + # loop 10 times to reduce the volume by VOLSTEP every TIMESTEP minutes + for i in $(seq 1 10); do + VOLPERCENT=`expr ${VOLPERCENT} - ${VOLSTEP}`; echo "${PATHDATA}/playout_controls.sh -c=setvolume -v="$VOLPERCENT | at -q t now + `expr $(((i * TIMESTEP)-1))` minute; + done + # schedule shutdown after VALUE minutes + echo "${PATHDATA}/playout_controls.sh -c=shutdownsilent" | at -q t now + ${VALUE} minute + ;; reboot) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi ${PATHDATA}/resume_play.sh -c=savepos && mpc clear @@ -196,7 +213,7 @@ case $COMMAND in setvolume) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi #increase volume only if VOLPERCENT is below the max volume limit and above min volume limit - if [ ${VALUE} -le $AUDIOVOLMAXLIMIT ] && [ ${VALUE} -ge $AUDIOVOLMINLIMIT ]; + if [ ${VALUE} -le $AUDIOVOLMAXLIMIT ] && [ ${VALUE} -ge $AUDIOVOLMINLIMIT ] && [ ${VALUE} -le $AUDIOVOLMAXTEMP ]; then # set volume level in percent echo -e setvol $VALUE\\nclose | nc -w 1 localhost 6600 @@ -206,6 +223,11 @@ case $COMMAND in # if we are over the max volume limit, set the volume to maxvol echo -e setvol $AUDIOVOLMAXLIMIT\\nclose | nc -w 1 localhost 6600 fi + if [ ${VALUE} -gt $AUDIOVOLMAXTEMP ]; + then + # if we are over the max volume temü limit, set the volume to maxvoltemp + echo -e setvol $AUDIOVOLMAXTEMP\\nclose | nc -w 1 localhost 6600 + fi if [ ${VALUE} -lt $AUDIOVOLMINLIMIT ]; then # if we are unter the min volume limit, set the volume to minvol @@ -235,14 +257,30 @@ case $COMMAND in # increase by $AUDIOVOLCHANGESTEP VOLPERCENT=`expr ${VOLPERCENT} + \( ${AUDIOVOLCHANGESTEP} \* ${VALUE} \)` #increase volume only if VOLPERCENT is below the max volume limit - if [ $VOLPERCENT -le $AUDIOVOLMAXLIMIT ]; - then - # set volume level in percent - echo -e setvol +$VOLPERCENT\\nclose | nc -w 1 localhost 6600 - else - # if we are over the max volume limit, set the volume to maxvol - echo -e setvol $AUDIOVOLMAXLIMIT\\nclose | nc -w 1 localhost 6600 - fi + #is max volume limit above max volume temp? + if [ $AUDIOVOLMAXLIMIT -gt $AUDIOVOLMAXTEMP ]; + then + #increase volume only if VOLPERCENT is below the max volume temp + if [ $VOLPERCENT -le $AUDIOVOLMAXTEMP ]; + then + # set volume level in percent + echo -e setvol +$VOLPERCENT\\nclose | nc -w 1 localhost 6600 + else + # if we are over the max volume temp, set the volume to maxvoltemp + echo -e setvol $AUDIOVOLMAXTEMP\\nclose | nc -w 1 localhost 6600 + fi + #otherwise max volume temp must be above or equal max volume limit + elif [ $AUDIOVOLMAXTEMP -ge $AUDIOVOLMAXLIMIT ]; + then + if [ $VOLPERCENT -le $AUDIOVOLMAXLIMIT ]; + then + # set volume level in percent + echo -e setvol +$VOLPERCENT\\nclose | nc -w 1 localhost 6600 + else + # if we are over the max volume limit, set the volume to maxvol + echo -e setvol $AUDIOVOLMAXLIMIT\\nclose | nc -w 1 localhost 6600 + fi + fi else # $VOLFILE DOES exist == audio off # read volume level from $VOLFILE and set as percent @@ -315,10 +353,28 @@ case $COMMAND in # create global config file because individual setting got changed . ${PATHDATA}/inc.writeGlobalConfig.sh ;; + setmaxvolumetemp) + if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi + # read volume in percent + VOLPERCENT=$(echo -e status\\nclose | nc -w 1 localhost 6600 | grep -o -P '(?<=volume: ).*') + # if volume of the box is greater than wanted maxvolumetemp, set volume to maxvolumetemp + if [ $VOLPERCENT -gt ${VALUE} ]; + then + echo -e setvol ${VALUE} | nc -w 1 localhost 6600 + fi + # write new value to file + echo "$VALUE" > ${PATHDATA}/../settings/Max_Volume_Limit_Temp + # create global config file because individual setting got changed + . ${PATHDATA}/inc.writeGlobalConfig.sh + ;; getmaxvolume) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi echo $AUDIOVOLMAXLIMIT ;; + getmaxvolumetemp) + if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi + echo $AUDIOVOLMAXTEMP + ;; setvolstep) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi # write new value to file From ebe8f27e11d5ca2d250950ac7844a125d192ae43 Mon Sep 17 00:00:00 2001 From: manajoe <mana@mm13.de> Date: Tue, 9 Jun 2020 21:19:08 +0100 Subject: [PATCH 003/206] implemented shutdownwithreducingvolume --- scripts/playout_controls.sh | 63 +++++++------------------------------ 1 file changed, 11 insertions(+), 52 deletions(-) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index 58f2cb545..f3a2d983c 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -28,7 +28,6 @@ NOW=`date +%Y-%m-%d.%H:%M:%S` # mute # setvolume # setmaxvolume -# setmaxvolumetemp # setstartupvolume # getstartupvolume # setvolumetostartup @@ -36,7 +35,6 @@ NOW=`date +%Y-%m-%d.%H:%M:%S` # volumedown # getvolume # getmaxvolume -# getmaxvolumetemp # setvolstep # getvolstep # playerstop @@ -175,7 +173,7 @@ case $COMMAND in done # schedule shutdown after VALUE minutes echo "${PATHDATA}/playout_controls.sh -c=shutdownsilent" | at -q t now + ${VALUE} minute - ;; + ;; reboot) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi ${PATHDATA}/resume_play.sh -c=savepos && mpc clear @@ -213,7 +211,7 @@ case $COMMAND in setvolume) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi #increase volume only if VOLPERCENT is below the max volume limit and above min volume limit - if [ ${VALUE} -le $AUDIOVOLMAXLIMIT ] && [ ${VALUE} -ge $AUDIOVOLMINLIMIT ] && [ ${VALUE} -le $AUDIOVOLMAXTEMP ]; + if [ ${VALUE} -le $AUDIOVOLMAXLIMIT ] && [ ${VALUE} -ge $AUDIOVOLMINLIMIT ]; then # set volume level in percent echo -e setvol $VALUE\\nclose | nc -w 1 localhost 6600 @@ -223,11 +221,6 @@ case $COMMAND in # if we are over the max volume limit, set the volume to maxvol echo -e setvol $AUDIOVOLMAXLIMIT\\nclose | nc -w 1 localhost 6600 fi - if [ ${VALUE} -gt $AUDIOVOLMAXTEMP ]; - then - # if we are over the max volume temü limit, set the volume to maxvoltemp - echo -e setvol $AUDIOVOLMAXTEMP\\nclose | nc -w 1 localhost 6600 - fi if [ ${VALUE} -lt $AUDIOVOLMINLIMIT ]; then # if we are unter the min volume limit, set the volume to minvol @@ -257,30 +250,14 @@ case $COMMAND in # increase by $AUDIOVOLCHANGESTEP VOLPERCENT=`expr ${VOLPERCENT} + \( ${AUDIOVOLCHANGESTEP} \* ${VALUE} \)` #increase volume only if VOLPERCENT is below the max volume limit - #is max volume limit above max volume temp? - if [ $AUDIOVOLMAXLIMIT -gt $AUDIOVOLMAXTEMP ]; - then - #increase volume only if VOLPERCENT is below the max volume temp - if [ $VOLPERCENT -le $AUDIOVOLMAXTEMP ]; - then - # set volume level in percent - echo -e setvol +$VOLPERCENT\\nclose | nc -w 1 localhost 6600 - else - # if we are over the max volume temp, set the volume to maxvoltemp - echo -e setvol $AUDIOVOLMAXTEMP\\nclose | nc -w 1 localhost 6600 - fi - #otherwise max volume temp must be above or equal max volume limit - elif [ $AUDIOVOLMAXTEMP -ge $AUDIOVOLMAXLIMIT ]; - then - if [ $VOLPERCENT -le $AUDIOVOLMAXLIMIT ]; - then - # set volume level in percent - echo -e setvol +$VOLPERCENT\\nclose | nc -w 1 localhost 6600 - else - # if we are over the max volume limit, set the volume to maxvol - echo -e setvol $AUDIOVOLMAXLIMIT\\nclose | nc -w 1 localhost 6600 - fi - fi + if [ $VOLPERCENT -le $AUDIOVOLMAXLIMIT ]; + then + # set volume level in percent + echo -e setvol +$VOLPERCENT\\nclose | nc -w 1 localhost 6600 + else + # if we are over the max volume limit, set the volume to maxvol + echo -e setvol $AUDIOVOLMAXLIMIT\\nclose | nc -w 1 localhost 6600 + fi else # $VOLFILE DOES exist == audio off # read volume level from $VOLFILE and set as percent @@ -353,28 +330,10 @@ case $COMMAND in # create global config file because individual setting got changed . ${PATHDATA}/inc.writeGlobalConfig.sh ;; - setmaxvolumetemp) - if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi - # read volume in percent - VOLPERCENT=$(echo -e status\\nclose | nc -w 1 localhost 6600 | grep -o -P '(?<=volume: ).*') - # if volume of the box is greater than wanted maxvolumetemp, set volume to maxvolumetemp - if [ $VOLPERCENT -gt ${VALUE} ]; - then - echo -e setvol ${VALUE} | nc -w 1 localhost 6600 - fi - # write new value to file - echo "$VALUE" > ${PATHDATA}/../settings/Max_Volume_Limit_Temp - # create global config file because individual setting got changed - . ${PATHDATA}/inc.writeGlobalConfig.sh - ;; getmaxvolume) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi echo $AUDIOVOLMAXLIMIT ;; - getmaxvolumetemp) - if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi - echo $AUDIOVOLMAXTEMP - ;; setvolstep) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi # write new value to file @@ -761,4 +720,4 @@ case $COMMAND in echo Unknown COMMAND $COMMAND VALUE $VALUE if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo "Unknown COMMAND ${COMMAND} VALUE ${VALUE}" >> ${PATHDATA}/../logs/debug.log; fi ;; -esac +esac \ No newline at end of file From ea07b55d8c71b5f81dbff9463b78adb3af1830b5 Mon Sep 17 00:00:00 2001 From: manajoe <mana@mm13.de> Date: Tue, 9 Jun 2020 21:20:20 +0100 Subject: [PATCH 004/206] fixed type --- scripts/playout_controls.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index f3a2d983c..d1cda4d55 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -720,4 +720,4 @@ case $COMMAND in echo Unknown COMMAND $COMMAND VALUE $VALUE if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo "Unknown COMMAND ${COMMAND} VALUE ${VALUE}" >> ${PATHDATA}/../logs/debug.log; fi ;; -esac \ No newline at end of file +esac From eb1ecfffdd3fd006836819ec222dc13b90b16289 Mon Sep 17 00:00:00 2001 From: Felix Bachmair <bachmair@phys.ethz.ch> Date: Sat, 21 Nov 2020 17:32:05 +0100 Subject: [PATCH 005/206] activation of shutdown button class in gpio_control --- .../gpio_control/GPIODevices/shutdown_button.py | 16 +++++++++++----- .../example_configs/gpio_settings_test.ini | 2 +- components/gpio_control/gpio_control.py | 9 +++++++++ .../gpio_control/test/gpio_settings_test.ini | 2 +- .../gpio_control/test/test_shutdown_button.py | 8 ++++---- 5 files changed, 26 insertions(+), 11 deletions(-) diff --git a/components/gpio_control/GPIODevices/shutdown_button.py b/components/gpio_control/GPIODevices/shutdown_button.py index 5682a7a7f..40129f325 100644 --- a/components/gpio_control/GPIODevices/shutdown_button.py +++ b/components/gpio_control/GPIODevices/shutdown_button.py @@ -4,19 +4,20 @@ import logging from .simple_button import SimpleButton - logger = logging.getLogger(__name__) class ShutdownButton(SimpleButton): def __init__(self, pin, action=lambda *args: None, name=None, bouncetime=500, edge=GPIO.FALLING, - hold_time=.1, led_pin=None, time_pressed=2): + hold_time=.1, led_pin=None, time_pressed=2, hold_repeat=False, pull_up_down=GPIO.PUD_UP,iteration_time=.2): self.led_pin = led_pin - self.time_pressed = 2 - self.iteration_time = .2 + self.time_pressed = time_pressed + self.iteration_time = iteration_time super(ShutdownButton, self).__init__(pin=pin, action=action, name=name, bouncetime=bouncetime, edge=edge, - hold_time=hold_time, hold_repeat=False) + hold_time=hold_time, hold_repeat=hold_repeat, pull_up_down=pull_up_down, + ) + pass # function to provide user feedback (= flashing led) while the shutdown button is pressed # do not directly call shutdown, in case it was hit accedently @@ -47,3 +48,8 @@ def callbackFunctionHandler(self, *args): self.set_led(GPIO.HIGH) # leave it on for the moment, it will be off when the system is down self.when_pressed(*args) + + def __repr__(self): + return '<ShutdownButton-{}(pin {},hold_repeat={},hold_time={})>'.format( + self.name, self.pin, self.hold_repeat, self.hold_time + ) diff --git a/components/gpio_control/example_configs/gpio_settings_test.ini b/components/gpio_control/example_configs/gpio_settings_test.ini index 78b859287..a1ab63273 100644 --- a/components/gpio_control/example_configs/gpio_settings_test.ini +++ b/components/gpio_control/example_configs/gpio_settings_test.ini @@ -35,7 +35,7 @@ hold_repeat: False [Shutdown] enabled: True -Type: Button +Type: ShutdownButton Pin: 3 hold_time: 2 functionCall: functionCallShutdown diff --git a/components/gpio_control/gpio_control.py b/components/gpio_control/gpio_control.py index e4be1ac5d..3e6134495 100755 --- a/components/gpio_control/gpio_control.py +++ b/components/gpio_control/gpio_control.py @@ -69,6 +69,15 @@ def generate_device(config, deviceName): getFunctionCall(config.get('functionCallDown')), config.getfloat('timeBase', fallback=0.1), name=deviceName) + elif device_type == 'ShutdownButton': + return ShutdownButton(pin=config.getint('Pin'), + action=getFunctionCall(config.get('functionCall',fallback='functionCallShutdown')), + name=deviceName, + bouncetime=config.getint('bouncetime', fallback=500), + edge=config.get('edge', fallback='FALLING'), + hold_repeat=config.getboolean('hold_repeat', False), + hold_time=config.getfloat('hold_time', fallback=0.3), + pull_up_down=config.get('pull_up_down', fallback=GPIO.PUD_UP)) logger.warning('cannot find {}'.format(deviceName)) return None diff --git a/components/gpio_control/test/gpio_settings_test.ini b/components/gpio_control/test/gpio_settings_test.ini index 78b859287..a1ab63273 100644 --- a/components/gpio_control/test/gpio_settings_test.ini +++ b/components/gpio_control/test/gpio_settings_test.ini @@ -35,7 +35,7 @@ hold_repeat: False [Shutdown] enabled: True -Type: Button +Type: ShutdownButton Pin: 3 hold_time: 2 functionCall: functionCallShutdown diff --git a/components/gpio_control/test/test_shutdown_button.py b/components/gpio_control/test/test_shutdown_button.py index 223106c58..18ae10672 100644 --- a/components/gpio_control/test/test_shutdown_button.py +++ b/components/gpio_control/test/test_shutdown_button.py @@ -16,12 +16,12 @@ def shutdown_button(): return ShutdownButton(pin=1, action=mocked_function) -class TestShutdownButton(): +class TestShutDownButton(): def test_init(self): ShutdownButton(pin=1) @patch('time.sleep', mock_time) - def test_action(self, shutdown_button): + def test_action_too_short_press(self, shutdown_button): for i in range(9): GPIO.input.reset_mock() GPIO.input.side_effect = i * [0] + [1] @@ -30,13 +30,13 @@ def test_action(self, shutdown_button): mocked_function.assert_not_called() @patch('time.sleep', mock_time) - def test_action2(self, shutdown_button): + def test_action_invalid_press(self, shutdown_button): GPIO.input.side_effect = lambda *args: 1 shutdown_button.callbackFunctionHandler() mocked_function.assert_not_called() @patch('time.sleep', mock_time) - def test_action3(self, shutdown_button): + def test_action_valid_press(self, shutdown_button): GPIO.input.side_effect = lambda *args: 0 shutdown_button.callbackFunctionHandler() mocked_function.assert_called_once() From d10ac02f9d91f7f08d77d5bbf66fe65d90496309 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Mon, 23 Nov 2020 23:42:02 +0100 Subject: [PATCH 006/206] update to next version number --- settings/version-number | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings/version-number b/settings/version-number index 8bbe6cf74..be1c36e58 100755 --- a/settings/version-number +++ b/settings/version-number @@ -1 +1 @@ -2.2 +2.3rc1 From 039d3422422e4ca6456f5d4eb112a095ce3c01f3 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Mon, 23 Nov 2020 23:43:07 +0100 Subject: [PATCH 007/206] fixed date for 2.2 release --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2a66eeef3..494db0b35 100755 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podc * **Gitter Community** we got ourselves a gitter community; chat us up at https://gitter.im/phoniebox -* **Phoniebox [2.2](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/4?closed=1) released (2020-xx-xx)** +* **Phoniebox [2.2](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/4?closed=1) released (2020-11-23)** The [2.2](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/4?closed=1) release was pushed through the doors with many contributors (some of which in alphabetical order): @andreasbrett @BerniPi @juhrmann @Luegengladiator @MarkusProchaska @MarlonKrug @patrickweigelt @princemaxwell @RalfAlbers @s-martin @themorlan @veloxidSchweiz @xn--nding-jua. [List of all contributors](https://github.com/MiczFlor/RPi-Jukebox-RFID/graphs/contributors) From 85fef0f40e039c46c2f7ffe144afc6f976a4aec0 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Mon, 23 Nov 2020 23:44:22 +0100 Subject: [PATCH 008/206] go back for commit to master --- settings/version-number | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings/version-number b/settings/version-number index be1c36e58..8bbe6cf74 100755 --- a/settings/version-number +++ b/settings/version-number @@ -1 +1 @@ -2.3rc1 +2.2 From 6b0d27126d1d4534a7de62300c5050422a8515af Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Mon, 23 Nov 2020 23:45:41 +0100 Subject: [PATCH 009/206] update to next release --- settings/version-number | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings/version-number b/settings/version-number index 8bbe6cf74..be1c36e58 100755 --- a/settings/version-number +++ b/settings/version-number @@ -1 +1 @@ -2.2 +2.3rc1 From 5d79d02f645b9b92b6b665fa001c0a8a887593af Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Thu, 26 Nov 2020 21:22:22 +0100 Subject: [PATCH 010/206] Minor changes --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 21005a60f..5f5767a92 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -130,8 +130,8 @@ The original contributor will be notified of the revert. be resolved within one business day. ## Guidelines ## -* Currently Phoniebox runs on Raspian **Buster** and **Stretch**. Therefore all Python code should work with **Python 3.5**. Some existing code may still be Python 2, but new code has to be compatible with Python 3.5 and old code that is changed should then be ported to Python 3.5. -* For GPIO all code should work with RPi.GPIO. gpiozero is currently not intended to use. +* Currently Phoniebox runs on Raspian **Buster** and **Stretch**. Therefore all Python code should work with **Python 3.5**. +* For GPIO all code should work with **RPi.GPIO**. gpiozero is currently not intended to use. ## Additional Resources From 6d0b79221cee36d606da0fb4a5aaaa54f0175aba Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Sun, 29 Nov 2020 11:34:47 +0100 Subject: [PATCH 011/206] Add version number to startup script --- scripts/startup-scripts.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/startup-scripts.sh b/scripts/startup-scripts.sh index 88ac6b260..503c165cf 100755 --- a/scripts/startup-scripts.sh +++ b/scripts/startup-scripts.sh @@ -12,10 +12,12 @@ if [ ! -f $PATHDATA/../settings/global.conf ]; then fi . $PATHDATA/../settings/global.conf ########################################################### +echo "Phoniebox is starting..." + +cat $PATHDATA/../settings/version-number cat $PATHDATA/../settings/global.conf -echo echo "${AUDIOVOLSTARTUP} is the mpd startup volume" #################################### From 01ad7816afda054c4b7cbd529ab8122c77c9798f Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Sun, 29 Nov 2020 20:05:43 +0100 Subject: [PATCH 012/206] Improve reading artist (#1166) * Improve reading artist Implement #1164 * Fix syntax * Fix syntax * More idiomatic check --- components/displays/HD44780-i2c/i2c_lcd.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/components/displays/HD44780-i2c/i2c_lcd.py b/components/displays/HD44780-i2c/i2c_lcd.py index 3539d460d..1adbcd866 100755 --- a/components/displays/HD44780-i2c/i2c_lcd.py +++ b/components/displays/HD44780-i2c/i2c_lcd.py @@ -333,12 +333,16 @@ def sec_to_min_and_sec(seconds): album = album.replace("\n", "").replace("ä", "\341").replace("ö", "\357").replace("ü", "\365").replace("ß", "\342").replace("Ä", "\341").replace("Ö", "\357").replace("Ü", "\365") # weitere codes siehe https://www.mikrocontroller.net/topic/293125 # except KeyError: # album = "" # - ## read in artist info # + ## read in artist info try: # artist = current_song_infos['artist'] # artist = artist.replace("\n", "").replace("ä", "\341").replace("ö", "\357").replace("ü", "\365").replace("ß", "\342").replace("Ä", "\341").replace("Ö", "\357").replace("Ü", "\365") # weitere codes siehe https://www.mikrocontroller.net/topic/293125 # except KeyError: # - artist = "" # + try: # + artist = current_song_infos['name'] # + artist = artist.replace("\n", "").replace("ä", "\341").replace("ö", "\357").replace("ü", "\365").replace("ß", "\342").replace("Ä", "\341").replace("Ö", "\357").replace("Ü", "\365") # weitere codes siehe https://www.mikrocontroller.net/topic/293125 # + except KeyError: # + artist = "" # if (client.mpd_version) >= "0.20": try: # elapsed = status['elapsed'].split(".")[0] # From 6510aba645ad4853a74f9c0df94e1b02e9d97999 Mon Sep 17 00:00:00 2001 From: veloxidSchweiz <55716261+veloxidSchweiz@users.noreply.github.com> Date: Mon, 30 Nov 2020 22:37:26 +0100 Subject: [PATCH 013/206] Feature/gpio debugging (#1165) * change logging * functionCall in case of invalid read of btn * adjust behavior to fix strange behavior in case of button press is not stead y --- .../gpio_control/GPIODevices/simple_button.py | 5 +++-- .../GPIODevices/two_button_control.py | 22 +++++++++++++++++-- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/components/gpio_control/GPIODevices/simple_button.py b/components/gpio_control/GPIODevices/simple_button.py index 250a59739..2e2c8202f 100644 --- a/components/gpio_control/GPIODevices/simple_button.py +++ b/components/gpio_control/GPIODevices/simple_button.py @@ -72,10 +72,11 @@ def __init__(self, pin, action=lambda *args: None, name=None, bouncetime=500, ed self._action = action GPIO.add_event_detect(self.pin, edge=self.edge, callback=self.callbackFunctionHandler, bouncetime=self.bouncetime) + self.callback_with_pin_argument = False def callbackFunctionHandler(self, *args): - if (len(args) > 0 and args[0] == self.pin): - logger.debug('args before: {}'.format(args)) + if len(args) > 0 and args[0] == self.pin and not self.callback_with_pin_argument: + logger.debug('Remove pin argument by callbackFunctionHandler - args before: {}'.format(args)) args = args[1:] logger.debug('args after: {}'.format(args)) diff --git a/components/gpio_control/GPIODevices/two_button_control.py b/components/gpio_control/GPIODevices/two_button_control.py index 83e3e9214..ef861e275 100644 --- a/components/gpio_control/GPIODevices/two_button_control.py +++ b/components/gpio_control/GPIODevices/two_button_control.py @@ -11,9 +11,17 @@ def functionCallTwoButtons(btn1, btn2, functionCall1, functionCall2, functionCallBothPressed=None): def functionCallTwoButtons(*args): + btn1_pin=btn1.pin + btn2_pin=btn2.pin + pressed_button=None + if len(args) > 0 and args[0] in (btn1_pin,btn2_pin): + logger.debug('Remove pin argument by TwoButtonCallbackFunctionHandler - args before: {}'.format(args)) + pressed_button=args[0] + args = args[1:] + logger.debug('args after: {}'.format(args)) btn1_pressed = btn1.is_pressed btn2_pressed = btn2.is_pressed - logger.debug('Btn1 {}, Btn2 {}'.format(btn1_pressed, btn2_pressed)) + logger.info('Btn1 {}, Btn2 {}-args:{}'.format(btn1_pressed,btn2_pressed,args)) if btn1_pressed and btn2_pressed: logger.debug("Both buttons was pressed") if functionCallBothPressed is not None: @@ -29,8 +37,16 @@ def functionCallTwoButtons(*args): logger.debug("Btn2 is pressed, action: functionCall2") logger.info('functionCall2') return functionCall2(*args) + elif pressed_button == btn1_pin: + logger.debug("No Button recognized, called by {}-pin1:functionCall1".format(args)) + logger.info('functionCall1') + return functionCall1(*args) + elif pressed_button == btn2_pin: + logger.debug("No Button recognized, called by {}-pin2:functionCall2".format(args)) + logger.info('functionCall2') + return functionCall2(*args) else: - logger.debug("No Button Pressed: no action") + logger.debug("No Button recognized, cannot evaluate reason for function call - {}".format(args)) return None return functionCallTwoButtons @@ -60,6 +76,7 @@ def __init__(self, edge=GPIO.FALLING, hold_time=hold_time, hold_repeat=hold_repeat) + self.btn1.callback_with_pin_argument = True self.btn2 = SimpleButton(pin=bcmPin2, action=lambda *args: None, @@ -68,6 +85,7 @@ def __init__(self, name=name + 'Btn2', bouncetime=500, edge=GPIO.FALLING) + self.btn2.callback_with_pin_argument = True generatedTwoButtonFunctionCall = functionCallTwoButtons(self.btn1, self.btn2, self.functionCallBtn1, From 6d504e5158f8ebff98fbf90c11b5410bd406b10d Mon Sep 17 00:00:00 2001 From: Schneelocke <75278644+Schneelocke@users.noreply.github.com> Date: Tue, 1 Dec 2020 20:30:17 +0100 Subject: [PATCH 014/206] Set Own Repo --- scripts/installscripts/buster-install-default.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index 4fc1efe49..561676436 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -19,7 +19,7 @@ # The absolute path to the folder which contains this script PATHDATA="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" GIT_BRANCH=${GIT_BRANCH:-master} -GIT_URL=${GIT_URL:-https://github.com/MiczFlor/RPi-Jukebox-RFID.git} +GIT_URL=${GIT_URL:-https://github.com/Schneelocke/RPi-Jukebox-RFID.git} echo GIT_BRANCH $GIT_BRANCH echo GIT_URL $GIT_URL From 7ee558c635506d6c7dfdf8b926c435b5bcf92cfb Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Wed, 2 Dec 2020 22:53:26 +0100 Subject: [PATCH 015/206] Fix volume of startup sound (#1169) Fixes #1167 --- scripts/inc.writeGlobalConfig.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/inc.writeGlobalConfig.sh b/scripts/inc.writeGlobalConfig.sh index ea1f28600..1f98bc54c 100755 --- a/scripts/inc.writeGlobalConfig.sh +++ b/scripts/inc.writeGlobalConfig.sh @@ -150,7 +150,7 @@ AUDIOVOLMINLIMIT=`cat $PATHDATA/../settings/Min_Volume_Limit` # Startup_Volume # 1. create a default if file does not exist if [ ! -f $PATHDATA/../settings/Startup_Volume ]; then - echo "0" > $PATHDATA/../settings/Startup_Volume + echo "30" > $PATHDATA/../settings/Startup_Volume chmod 777 $PATHDATA/../settings/Startup_Volume fi # 2. then|or read value from file From 9da0b1355bb98499fd0f1070d2be59a17603d6b1 Mon Sep 17 00:00:00 2001 From: StefanMinke <69303081+StefanMinke@users.noreply.github.com> Date: Mon, 7 Dec 2020 10:09:26 +0100 Subject: [PATCH 016/206] missing savepos-command in "playerstopafter" As there is a savepos-command in "playerstop" this should also be included in "playerstopafter". --- scripts/playout_controls.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index 57b93e396..dc95a603f 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -579,7 +579,7 @@ case $COMMAND in # stop player after ${VALUE} minutes if [ ${VALUE} -gt 0 ]; then - echo "mpc stop" | at -q s now + ${VALUE} minute + echo "${PATHDATA}/resume_play.sh -c=savepos && mpc stop" | at -q s now + ${VALUE} minute fi ;; playernext) From 68af5b68f26dc3884a42b24ca7d3cea85f6005f7 Mon Sep 17 00:00:00 2001 From: jrn <33904621+JoernUhl@users.noreply.github.com> Date: Mon, 7 Dec 2020 14:12:47 -0500 Subject: [PATCH 017/206] Update buster-install-default.sh (#1181) Added spacing --- scripts/installscripts/buster-install-default.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index 4fc1efe49..b4b4f553f 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -428,7 +428,7 @@ config_audio_interface() { esac # append variables to config file echo "AUDIOiFace=\"$AUDIOiFace\"" >> "${HOME_DIR}/PhonieboxInstall.conf" - echo "Your iFace is called'$AUDIOiFace'" + echo "Your iFace is called '$AUDIOiFace'" read -rp "Hit ENTER to proceed to the next step." INPUT } From cdd33bf1df252e923761d9ed02c305db2c2b1a21 Mon Sep 17 00:00:00 2001 From: Schneelocke <simismail@gmail.com> Date: Sun, 13 Dec 2020 20:53:58 +0100 Subject: [PATCH 018/206] Revert "Set Own Repo" This reverts commit 6d504e5158f8ebff98fbf90c11b5410bd406b10d. --- scripts/installscripts/buster-install-default.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index e8b90952b..b4b4f553f 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -19,7 +19,7 @@ # The absolute path to the folder which contains this script PATHDATA="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" GIT_BRANCH=${GIT_BRANCH:-master} -GIT_URL=${GIT_URL:-https://github.com/Schneelocke/RPi-Jukebox-RFID.git} +GIT_URL=${GIT_URL:-https://github.com/MiczFlor/RPi-Jukebox-RFID.git} echo GIT_BRANCH $GIT_BRANCH echo GIT_URL $GIT_URL From 54b25f14d6ae8c886a7b040e38a13771ac23dc25 Mon Sep 17 00:00:00 2001 From: ChrisSoc <chrissoc@github.com> Date: Mon, 14 Dec 2020 10:12:49 +0100 Subject: [PATCH 019/206] Add base functionality for Bluetooth headphone integration --- components/bt-headphones/bt-buttons.py | 96 ++++++++++++ components/bt-headphones/bt-sink-switch.py | 138 ++++++++++++++++++ .../bt-headphones/install-bt-buttons.sh | 30 ++++ .../bt-headphones/install-bt-sink-switch.sh | 43 ++++++ .../phoniebox-bt-buttons.service.sample | 13 ++ 5 files changed, 320 insertions(+) create mode 100755 components/bt-headphones/bt-buttons.py create mode 100755 components/bt-headphones/bt-sink-switch.py create mode 100755 components/bt-headphones/install-bt-buttons.sh create mode 100755 components/bt-headphones/install-bt-sink-switch.sh create mode 100644 components/bt-headphones/phoniebox-bt-buttons.service.sample diff --git a/components/bt-headphones/bt-buttons.py b/components/bt-headphones/bt-buttons.py new file mode 100755 index 000000000..b6dc96446 --- /dev/null +++ b/components/bt-headphones/bt-buttons.py @@ -0,0 +1,96 @@ +#!/usr/bin/env python3 + +from evdev import InputDevice, categorize, ecodes +from subprocess import check_call +import time + +# Enable Bluetooth Headphone Buttons for Music Control +# Script will listen to headphone button press events and call approriate phonibox control function +# If no headset is connected, it will endlessly check headset connection status every 3 seconds. + + +# Step 1: Find out which event the bluetooth headset is connected to. +# It will be an input event device: /dev/input/eventX +# Make sure it is connected first and you can playback music :-) Follow the excellent instructions in the wiki +# +# Option 1) cat /proc/bus/input/devices +# In my case the bluetooth headset is listed under its MAC address +# Option 2) Disconnect headset, show >ls /etc/input +# Connect headset , show >ls /etc/input, analyze the difference +# +# Step 2: Test the event +# > cat /dev/input/event1 +# Press some buttons on the headset. Not all buttons will be forwarded, e.g. vol up/down may also be handled only in the headset. +# Try also long/short press +# The output will look wired. Don't worry - the important thing is that you are seeing something on the console +# +# Step 3: Figure out the key mappings +# In this script adapt the EVTDEV constant to fit your input event device +# Call this script directly from command the line (make sure it does not run as a service, if you already used the install script: ./sudo systemctl stop phoniebox-bt-buttons) +# >./bt-buttons.py +# Press a button on the headset. The script will output a log like this +# +# key event at 1600886330.107993, 201 (KEY_PAUSECD), up +# +# The "201" is the keycode, you are looking for. Go through all the buttons. Also try short/long press. On my headphones, they result in different keycodes +# +# Step 4: Adjust this script with keycodes (and behavior) +# If you are only looking for the play/pause/next/prev, simply adapt the keycodes below +# If you have more buttons than I have, you may extend the if-else clause towards the end of the script. +# To add new ctrl functions, check out playout_controls.sh for available commands +# +# This script has been tested with the following headset: PowerLocus Buddy +# +# Note: +# (a) If the event device does not exist, this script will not throw an error. (so you see no output if things dont work!) +# But continue checking if that event will appear at some time, i.e. which will happen if the headset gets connected. +# So if nothing happens, make sure you have the right event device listed here. +# (b) This script assumes a constant /dev/input/eventX to headset mapping, which is not globally given. +# But in a stable raspberry pi setup it will be constant, if no input devices are added/removed (especially in any order) +# +# Feature Enhancements +# Use cat /proc/bus/input/devices first to find correct eventX to headset mapping +# +# If you want this script to run automatically as service after booting, run the install script, or do this: +# Adjust directory paths in phoniebox-bt-buttons.service.sample +# sudo cp phoniebox-bt-buttons.service.sample /etc/systemd/system/phoniebox-bt-buttons.service +# sudo chown root:root /etc/systemd/system/phoniebox-bt-buttons.service +# sudo chmod 644 /etc/systemd/system/phoniebox-bt-buttons.service +# sudo systemctl enable phoniebox-bt-buttons.service + + +BTNPLAY = 200 +BTNPAUSE = 201 +BTNNEXT = 163 +BTNPREV = 165 + +EVTDEV='/dev/input/event1' + +def btkeyhandler(): + # Try to open the event device + dev = InputDevice(EVTDEV) + print(dev) + # Infinite loop reading the events. Will fail, if event device gets disconnected + for event in dev.read_loop(): + if event.type == ecodes.EV_KEY: + # Report the button event + print(categorize(event)) + # Only act on button press, not button release + if event.value == 1: + if event.code == BTNPLAY: + check_call("./scripts/playout_controls.sh -c=playerpause", shell=True) + elif event.code == BTNPAUSE: + check_call("./scripts/playout_controls.sh -c=playerpause", shell=True) + elif event.code == BTNNEXT: + check_call("./scripts/playout_controls.sh -c=playernext", shell=True) + elif event.code == BTNPREV: + check_call("./scripts/playout_controls.sh -c=playerprev", shell=True) + +while True: + try: + btkeyhandler() + break + except FileNotFoundError: + # Sleeping in long intervalls when headset is not connected + time.sleep(3) + diff --git a/components/bt-headphones/bt-sink-switch.py b/components/bt-headphones/bt-sink-switch.py new file mode 100755 index 000000000..6df8d0b1f --- /dev/null +++ b/components/bt-headphones/bt-sink-switch.py @@ -0,0 +1,138 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Tue Dec 8 17:39:01 2020 + +Provides btSwitch (see below) as function and callable script + +If called as script, configure led_pin according to your set-up + +@author: chris +""" + +import sys +import re +import subprocess + +# If called as script, this variable will set GPIO number of the LED to reflect sink status +# Uses BCM GPIO numbering, i.e. 6 means GPIO6 +# Set 'led_pin=None' to disable LED support (and no GPIO pin is blocked in this case) +led_pin = 6 + +def btUsage(sname): + print("Usage") + print(" ./" + sname + "[ toggle | speakers | headphones]") + +def btSwitch(cmd, led_pin=None): + """ + Set/Toggle between regular speakers and headphone output. If no bluetooth device is connected, always defaults to mpc output 1 + + To be precise: toggle between mpc output 1 and mpc output 2. + + So, set up your /etc/mpd.conf correctly: first audio_output section should be speakers, second audio_output section should be headphones + To set up bluetooth headphones, follow the wiki + Short guide to connect bluetooth (without audio setup) + sudo bluetoothctl + power on + agent on + scan on -> shows list of Bluetooth devices in reach + pair C4:FB:20:63:A7:F2 -> pairing happens + trust C4:FB:20:63:A7:F2 -> trust you device + connect C4:FB:20:63:A7:F2 -> connect + scan off + exit + Next time headphones are switched on, they should connect automatically + + Requires + sudo apt install bluetooth + + Attention + The user to runs this script (precisly who runs bluetoothctl) needs proper access rights. Otherwise bluetoothctl will always return "no default controller found" + The superuser and users of group "bluetooth" have these. You can check the policy here + /etc/dbus-1/system.d/bluetooth.conf + Best to check first if the user which later runs this script can execute bluetoothctl and get meaningful results + sudo -u www-data bluetoothctl show + E.g. if you want to do bluetooth manipulation from the web interface, you will most likely need to add www-data to the group bluetooth + if you want to test this script from the command line, you will most likely need to add user pi (or whoever you are) to the group bluetooth or run it as superuser + sudo usermod -G bluetooth -a www-data + Don't forget to reboot for group changes to take effect here + + LED support + If LED number (GPIO number, BCM) is provided, a LED is switched to reflect output sink status + off = speakers, on = headphones + LED blinks if no bluetooth device is connected and bluetooth sink is requested, before script default to output 1 + + A note for developers: This script is not persistent and only gets called (from various sources) when the output sink is changed/toggled and exits. + This is done to make is callable from button press (gpio button handler), rfid card number, web interface + The LED state however should be persistent. With GPIOZero, the LED state gets reset at the end of the script. For that reason GPIO state is manipulated through shell commands + + Parameters + ---------- + cmd : string + toggle | speakers | headphones + + led_pin : integer + GPIO pin number of LED to reflect output status. If None, LED support is disabled (and no GPIO pin is blocked) + """ + # Check for valid command + if cmd != "toggle" and cmd != "speakers" and cmd != "headphones": + print("Error: Invalid command. Doing nothing.") + return + + # Sloppy check if LED pin request is valid GPIO pin number + if led_pin < 2 or led_pin > 27: + led_pin = None + print("- ERROR: Invalid led_pin. Ignoring led_pin = " + str(led_pin), file=sys.stderr) + + if led_pin: + # Set-up GPIO LED pin if not already configured. If it already exists, sanity check direction of pin before use + try: + with open("/sys/class/gpio/gpio" + str(led_pin) + "/direction") as f: + if f.readline(3) != "out": + print("- ERROR: LED pin already in use with direction 'in'. Ignoring led_pin = " + str(led_pin), file=sys.stderr) + led_pin = None + except: + # GPIO direction file does not exist -> pin is not configured. Set it up (sleep is necessary!) + subprocess.run("echo " + str(led_pin) + " > /sys/class/gpio/export; \ + sleep 0.1; \ + echo out > /sys/class/gpio/gpio" + str(led_pin) + "/direction", shell=True, check=False) + + # Figure out if output 1 (speakers) is enabled + isSpeakerOn_console = subprocess.run("mpc outputs", shell=True, check=False, capture_output=True) + isSpeakerOn = re.search(b"1.*enabled", isSpeakerOn_console.stdout) + + # Figure out if a bluetooth device is connected (any device will do). Assume here that only speakers/headsets will be connected + # -> No need for user to adapt MAC address + # -> will actually support multiple speakers/headsets paired to the phoniebox + # Alternative: Check for specific bluetooth device only with "bluetoothctl info MACADDRESS" + isBtConnected_console = subprocess.run("bluetoothctl info", shell=True, check=False, capture_output=True) + isBtConnected = re.search(b"Connected:\s+yes", isBtConnected_console.stdout) + + if ((cmd == "toggle" and isSpeakerOn) or (cmd == "headphones")): + # Only switch to BT headphones if they are actually connected + if isBtConnected: + print("Switched audio sink to \"Output 2\"") + subprocess.run("mpc enable only 2", shell=True, check=False); + if led_pin: + subprocess.run("echo 1 > /sys/class/gpio/gpio" + str(led_pin) + "/value", shell=True, check=False) + return + else: + print("No bluetooth device connected. Defaulting to \"Output 1\".") + if led_pin: + sleeptime = 0.25 + for i in range(0,3): + subprocess.run("echo 1 > /sys/class/gpio/gpio" + str(led_pin) + "/value; sleep " + str(sleeptime) + "; echo 0 > /sys/class/gpio/gpio" + str(led_pin) + "/value; sleep " + str(sleeptime), shell=True, check=False) + + # Default: Switch to Speakers + print("Switched audio sink to \"Output 1\"") + subprocess.run("mpc enable only 1", shell=True, check=False); + if led_pin: + subprocess.run("echo 0 > /sys/class/gpio/gpio" + str(led_pin) + "/value", shell=True, check=False) + + +if __name__ == "__main__": + if len(sys.argv) == 2: + btSwitch(sys.argv[1], led_pin) + else: + btUsage(sys.argv[0]) + diff --git a/components/bt-headphones/install-bt-buttons.sh b/components/bt-headphones/install-bt-buttons.sh new file mode 100755 index 000000000..21eaf96b5 --- /dev/null +++ b/components/bt-headphones/install-bt-buttons.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# Check that script is called from source directory +FILE=bt-buttons.py +if [ ! -f "$FILE" ]; then + echo -e "Error: Install script must be started from source directoy of bt-headphones!" + exit -1 +fi + +USER=`whoami` +SCRPATH=`pwd` + +# Configuring service file +echo -e "\nConfiguring service" +sed "s@WorkingDirectory.*@WorkingDirectory=${SCRPATH}@g" phoniebox-bt-buttons.service.sample > phoniebox-bt-buttons.service.configured +sed -i "s@ExecStart.*@ExecStart=${SCRPATH}/${FILE} > /dev/null@g" phoniebox-bt-buttons.service.configured + +# Install service and enable it +SSRC=phoniebox-bt-buttons.service.configured +SDST=/etc/systemd/system/phoniebox-bt-buttons.service +echo -e "\nInstalling service" +sudo mv -f ${SSRC} ${SDST} +sudo chown root:root ${SDST} +sudo chmod 644 ${SDST} +sudo systemctl enable phoniebox-bt-buttons.service +sudo systemctl start phoniebox-bt-buttons.service + +# Final notes +echo -e "\n\nIMPORTANT NOTE:\nThis feature requires a certain amount of customization to each headset. Check out $FILE for details." +echo -e "If experimenting with the script make sure the service is stopped:\n sudo systemctl stop phoniebox-bt-buttons.service\n\n" diff --git a/components/bt-headphones/install-bt-sink-switch.sh b/components/bt-headphones/install-bt-sink-switch.sh new file mode 100755 index 000000000..3c6b72583 --- /dev/null +++ b/components/bt-headphones/install-bt-sink-switch.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +# Check that script is called from source directory +FILE=bt-sink-switch.py +if [ ! -f "$FILE" ]; then + echo -e "Error: Install script must be started from source directoy og bt-headphones!" + exit -1 +fi + +USER=`whoami` +SCRPATH=`pwd` + +# Ensure script is executable for everyone +sudo chmod ugo+x $FILE + +# Make sure required packages are installed +echo -e "\nChecking bluetooth packages" +#sudo apt install bluetooth -y + +# Add users to bluetooth, to make bluetooth control avaiable through web interface +echo -e "\nSetting up user rights" +#sudo usermod -G bluetooth -a www-data +#sudo usermod -G bluetooth -a ${USER} + +# Default to speaker sink after boot +#STARTUP=../../scripts/startup-scripts.sh +STARTEXISTS=0 +if [ -f ${STARTUP} ]; then + # Check if script is already registed with startup-scripts.sh + STARTEXISTS=`grep -c ${FILE} ${STARTUP}` +fi +if [ "${STARTEXISTS}" = 0 ]; then + echo -e "\nRegistering start-up script" + echo -e "\n#Default audio sink to speakers irrespective of setting at shutdown" >> $STARTUP + echo -e "${SCRPATH}/bt-sink-switch.py speakers\n" >> $STARTUP +fi + +# Register script is enabled at global controls +# TBD + +# Final notes +echo -e "\n\n\nIMPORTANT NOTE:\nPlease modify ${FILE} around line 20 for\n led_pin=6\nto configure LED pin-out or diable LED support altogether." + diff --git a/components/bt-headphones/phoniebox-bt-buttons.service.sample b/components/bt-headphones/phoniebox-bt-buttons.service.sample new file mode 100644 index 000000000..54b7ddb52 --- /dev/null +++ b/components/bt-headphones/phoniebox-bt-buttons.service.sample @@ -0,0 +1,13 @@ +[Unit] +Description=Phoniebox Bluetooth Buttons Service +After=network.target + +[Service] +User=pi +Group=pi +Restart=always +WorkingDirectory=/home/pi/RPi-Jukebox-RFID +ExecStart=/home/pi/RPi-Jukebox-RFID/scripts/bt-buttons.py > /dev/null + +[Install] +WantedBy=multi-user.target From 066d80762d91cffa33bec672cad35abfb6e75326 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Tue, 15 Dec 2020 23:03:47 +0100 Subject: [PATCH 020/206] Add Discussions link to Readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 494db0b35..e0defd681 100755 --- a/README.md +++ b/README.md @@ -12,6 +12,8 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podc ## Important updates / news +* **Discussions forums** we use Github's Discussions feature for a more forum style. Please ask questions there, bugs and enhancements should still be in issues; see here https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions + * **Gitter Community** we got ourselves a gitter community; chat us up at https://gitter.im/phoniebox * **Phoniebox [2.2](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/4?closed=1) released (2020-11-23)** From 663e8089edc59ef3e133f6ceaf736a1b802d8e78 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Fri, 18 Dec 2020 12:32:48 +0100 Subject: [PATCH 021/206] Update Mopidy Iris to 3.54.2 (#1161) --- requirements-spotify.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-spotify.txt b/requirements-spotify.txt index fa82f0c3e..83fa3206f 100644 --- a/requirements-spotify.txt +++ b/requirements-spotify.txt @@ -1,3 +1,3 @@ # Spotify related requirements # You need to install these with `sudo pip install --upgrade --force-reinstall -r requirements-spotify.txt` - Mopidy-Iris==3.45.0 + Mopidy-Iris==3.54.2 From 213b396e8f66c40d27b19666be7763760b27f313 Mon Sep 17 00:00:00 2001 From: ChrisSoc <pi@exaberry> Date: Fri, 18 Dec 2020 21:06:11 +0100 Subject: [PATCH 022/206] Integrate bluetooth headphone toggle into Web Interface --- components/bt-headphones/bt-sink-switch.py | 21 ++-- .../bt-headphones/install-bt-sink-switch.sh | 36 ++++-- htdocs/ajax.getAudioSink.php | 11 ++ htdocs/ajax.getBluetoothStatus.php | 28 +++++ htdocs/inc.bluetooth.php | 67 +++++++++++ htdocs/lang/lang-de-DE.php | 56 +-------- htdocs/lang/lang-en-UK.php | 3 + htdocs/lang/lang-nl-NL.php | 112 +++++++++++------- htdocs/settings.php | 11 ++ scripts/playout_controls.sh | 5 + scripts/rfid_trigger_play.sh | 3 + settings/rfid_trigger_play.conf.sample | 2 + 12 files changed, 239 insertions(+), 116 deletions(-) create mode 100755 htdocs/ajax.getAudioSink.php create mode 100755 htdocs/ajax.getBluetoothStatus.php create mode 100755 htdocs/inc.bluetooth.php diff --git a/components/bt-headphones/bt-sink-switch.py b/components/bt-headphones/bt-sink-switch.py index 6df8d0b1f..cf0e58c6a 100755 --- a/components/bt-headphones/bt-sink-switch.py +++ b/components/bt-headphones/bt-sink-switch.py @@ -15,9 +15,9 @@ import subprocess # If called as script, this variable will set GPIO number of the LED to reflect sink status -# Uses BCM GPIO numbering, i.e. 6 means GPIO6 +# Uses BCM GPIO numbering, i.e. 'led_pin = 6' means GPIO6 # Set 'led_pin=None' to disable LED support (and no GPIO pin is blocked in this case) -led_pin = 6 +led_pin = None def btUsage(sname): print("Usage") @@ -79,12 +79,13 @@ def btSwitch(cmd, led_pin=None): print("Error: Invalid command. Doing nothing.") return - # Sloppy check if LED pin request is valid GPIO pin number - if led_pin < 2 or led_pin > 27: - led_pin = None - print("- ERROR: Invalid led_pin. Ignoring led_pin = " + str(led_pin), file=sys.stderr) + # Rudimentary check if LED pin request is valid GPIO pin number + if led_pin is not None: + if led_pin < 2 or led_pin > 27: + led_pin = None + print("- ERROR: Invalid led_pin. Ignoring led_pin = " + str(led_pin), file=sys.stderr) - if led_pin: + if led_pin is not None: # Set-up GPIO LED pin if not already configured. If it already exists, sanity check direction of pin before use try: with open("/sys/class/gpio/gpio" + str(led_pin) + "/direction") as f: @@ -112,8 +113,8 @@ def btSwitch(cmd, led_pin=None): # Only switch to BT headphones if they are actually connected if isBtConnected: print("Switched audio sink to \"Output 2\"") - subprocess.run("mpc enable only 2", shell=True, check=False); - if led_pin: + subprocess.run("mpc enable only 2", shell=True, check=False, capture_output=True); + if led_pin is not None: subprocess.run("echo 1 > /sys/class/gpio/gpio" + str(led_pin) + "/value", shell=True, check=False) return else: @@ -125,7 +126,7 @@ def btSwitch(cmd, led_pin=None): # Default: Switch to Speakers print("Switched audio sink to \"Output 1\"") - subprocess.run("mpc enable only 1", shell=True, check=False); + subprocess.run("mpc enable only 1", shell=True, check=False, capture_output=True); if led_pin: subprocess.run("echo 0 > /sys/class/gpio/gpio" + str(led_pin) + "/value", shell=True, check=False) diff --git a/components/bt-headphones/install-bt-sink-switch.sh b/components/bt-headphones/install-bt-sink-switch.sh index 3c6b72583..036b0240b 100755 --- a/components/bt-headphones/install-bt-sink-switch.sh +++ b/components/bt-headphones/install-bt-sink-switch.sh @@ -3,7 +3,21 @@ # Check that script is called from source directory FILE=bt-sink-switch.py if [ ! -f "$FILE" ]; then - echo -e "Error: Install script must be started from source directoy og bt-headphones!" + echo -e "Error: Install script must be started from source directoy of bt-headphones!" + exit -1 +fi + +# Only works for the Classic edition +EDITIONFILE=../../settings/edition +if [ ! -f "$EDITIONFILE" ]; then + echo -e "Error: Cannot find file '$EDITIONFILE' to check Phonibox edition" + exit -1 + +fi + +EDITION=`cat $EDITIONFILE` +if [ "${EDITION}" != "classic" ]; then + echo -e "Error: Sorry, this feature is only working with the classic edition, but got '${EDITION}'" exit -1 fi @@ -15,29 +29,29 @@ sudo chmod ugo+x $FILE # Make sure required packages are installed echo -e "\nChecking bluetooth packages" -#sudo apt install bluetooth -y +sudo apt install bluetooth -y -# Add users to bluetooth, to make bluetooth control avaiable through web interface +# Add users to bluetooth, to make bluetooth control available through web interface echo -e "\nSetting up user rights" -#sudo usermod -G bluetooth -a www-data -#sudo usermod -G bluetooth -a ${USER} +sudo usermod -G bluetooth -a www-data +sudo usermod -G bluetooth -a ${USER} # Default to speaker sink after boot -#STARTUP=../../scripts/startup-scripts.sh +STARTUP=../../scripts/startup-scripts.sh STARTEXISTS=0 if [ -f ${STARTUP} ]; then # Check if script is already registed with startup-scripts.sh STARTEXISTS=`grep -c ${FILE} ${STARTUP}` fi -if [ "${STARTEXISTS}" = 0 ]; then +if [ "${STARTEXISTS}" = 0 ]; then echo -e "\nRegistering start-up script" echo -e "\n#Default audio sink to speakers irrespective of setting at shutdown" >> $STARTUP echo -e "${SCRPATH}/bt-sink-switch.py speakers\n" >> $STARTUP fi -# Register script is enabled at global controls -# TBD +# Let global controls know this feature is enabled +CONFFILE=../../settings/BtHeadphoneIntegration +echo "ON" > ${CONFFILE} # Final notes -echo -e "\n\n\nIMPORTANT NOTE:\nPlease modify ${FILE} around line 20 for\n led_pin=6\nto configure LED pin-out or diable LED support altogether." - +echo -e "\n\n\nIMPORTANT NOTE:\nPlease modify ${FILE} around line 20 for\n led_pin=None\nto configure LED pin-out.\n Do nothing to leave it disabled." diff --git a/htdocs/ajax.getAudioSink.php b/htdocs/ajax.getAudioSink.php new file mode 100755 index 000000000..6e5cd2734 --- /dev/null +++ b/htdocs/ajax.getAudioSink.php @@ -0,0 +1,11 @@ +<?php + + // Returns a slighlty formatted string of "mpc outputs" + // Give nice names to you audio sinks in mpd.conf: they will turn up here :-) + + $btOutputs = nl2br(trim(shell_exec("mpc outputs"))); + $btOutputs = str_replace("enabled", "<b>enabled</b>", $btOutputs); + $btOutputs = str_replace("disabled", "<b>disabled</b>", $btOutputs); + print "$btOutputs"; + +?> diff --git a/htdocs/ajax.getBluetoothStatus.php b/htdocs/ajax.getBluetoothStatus.php new file mode 100755 index 000000000..b1f5d3ec5 --- /dev/null +++ b/htdocs/ajax.getBluetoothStatus.php @@ -0,0 +1,28 @@ +<?php + + // Attention: user www-data needs to be of group bluetooth to get meaningful results of bluetoothctl + // sudo usermod -G bluetooth -a www-data + // reboot for changes to take effect! + // Requires bluetoothctl to be installed + + $btPower = trim(shell_exec("bluetoothctl show | grep -o -c 'Powered: yes'")); + if ($btPower == 0 ) { + print "Bluetooth adapter powered down"; + } else { + + // If no device is connected, there will be an error message returned, which does not match + // with -c we either get 0 or 1 as a return result + $btDevConnected = trim(shell_exec("bluetoothctl info | grep -o -c 'Connected: yes'")); + + if($btDevConnected == 0) { + print "Disconnected"; + } else { + // Grep'ing the MAC address + // \K: Keep only the matched string after \K, which must be composed of MAC addres letters + $btDevMac = trim(shell_exec("bluetoothctl info | grep -oP -e 'Device \K[A-Fa-f\d\:]*'")); + $btDevName = trim(shell_exec("bluetoothctl info | grep -oP 'Name: \K.*'")); + print "Connected ($btDevName - $btDevMac)"; + } + } + +?> diff --git a/htdocs/inc.bluetooth.php b/htdocs/inc.bluetooth.php new file mode 100755 index 000000000..7d7a2cbf1 --- /dev/null +++ b/htdocs/inc.bluetooth.php @@ -0,0 +1,67 @@ +<!-- + (1) Bluetooth device status and audio sink status + (2) Button for toggling between HAT speakers and bluetooth speakers/headphones + + Ajax calls refresh bluetooth and audio sink state periodically to reflect + connection of bluetooth device or changes done by other user interfaces +--> + +<script> + $(document).ready(function() { + $('#btstatus_id').load('ajax.getBluetoothStatus.php')}); + var refreshId = setInterval(function() { + $('#btstatus_id').load('ajax.getBluetoothStatus.php'); + }, 2000); + $(document).ready(function() { + $('#audiosink_id').load('ajax.getAudioSink.php')}); + var refreshId = setInterval(function() { + $('#audiosink_id').load('ajax.getAudioSink.php'); + }, 2000); +</script> + +<div class="panel-group"> + <div class="panel panel-default"> + <div class="panel-heading"> + <h4 class="panel-title"> + <i class='mdi mdi-volume-high'></i> <?php print $lang['globalAudioSink']; ?> + </h4> + <?php + if(isset($_POST['btToggle'])) { + $btswitch = shell_exec($conf['scripts_abs']."/playout_controls.sh -c=bluetoothtoggle -v=toggle"); + print "<br>"; + print "<div class=\"row\">"; + print " <div class=\"col-md-12\">"; + if (strpos($btswitch, "Default") === false) { + print " <div class=\"alert alert-success\">"; + } else { + print " <div class=\"alert alert-warning\">"; + } + print "Message: $btswitch</div>"; + print " </div>"; + print "</div>"; + } + ?> + </div><!-- /.panel-heading --> + + + <div class="panel-body"> + <div class="row"> + <label class="col-md-4 control-label" for=""><?php print $lang['infoBluetoothStatus']; ?></label> + <div class="col-md-6"><span id="btstatus_id"></span></div> + </div> + <div class="row"> + <label class="col-md-4 control-label" for=""><?php print $lang['infoAudioActive']; ?></label> + <div class="col-md-6"><span id="audiosink_id"></span> + </div> + </div> + <div class="row"> + <div class="col-md-12"> + <form method="post"> + <button id="btToggle" name="btToggle" class="btn btn-info" value="submit">Toggle audio sink</button> + </form> + </div> + </div><!-- ./row --> + </div><!-- /.panel-body --> + </div><!-- /.panel panel-default--> +</div><!-- /.panel-group --> + diff --git a/htdocs/lang/lang-de-DE.php b/htdocs/lang/lang-de-DE.php index 386214cc4..0916d7f38 100755 --- a/htdocs/lang/lang-de-DE.php +++ b/htdocs/lang/lang-de-DE.php @@ -1,6 +1,5 @@ <?php $lang = array(); - $lang['globalEdit'] = "Bearbeiten"; $lang['globalResume'] = "Fortsetzen"; $lang['globalPassword'] = "Passwort"; @@ -68,8 +67,7 @@ $lang['globalLanguageSettings'] = "Spracheinstellungen"; $lang['globalPriority'] = "Priorität"; $lang['globalEmail'] = "Email address"; - -// Player title HTML +$lang['globalAudioSink'] = "Audioausgabegeäte"; $lang['playerSeekBack'] = "Rückwärts spulen"; $lang['playerSeekAhead'] = "Vorwärts spulen"; $lang['playerSkipPrev'] = "Vorheriger Titel"; @@ -80,19 +78,15 @@ $lang['playerStop'] = "Player stoppen"; $lang['playerVolDown'] = "Lautstärke verringern"; $lang['playerVolUp'] = "Lautstärke erhöhen"; -$lang['player'] = "Stumm ein/aus"; +$lang['playerMute'] = "toggle mute"; $lang['playerFilePlayed'] = "wird abgespielt"; $lang['playerFileAdded'] = "wurde der Playlist hinzugefügt"; $lang['playerFileDeleted'] = "entfernt"; - -// Edition (classic, +spotify) $lang['globalEdition'] = "Edition"; $lang['classic'] = "Classic edition (barebones)"; $lang['plusSpotify'] = "Plus Edition (feat. Spotify Integration)"; - $lang['navEditionClassic'] = "Classic"; $lang['navEditionPlusSpotify'] = "+Spotify"; - $lang['navBrand'] = "Phoniebox"; $lang['navHome'] = "Player"; $lang['navSearch'] = "Suchen"; @@ -100,17 +94,11 @@ $lang['navInfo'] = "Info"; $lang['navShutdown'] = "Herunterfahren"; $lang['navReboot'] = "Neustart"; - $lang['indexAvailAudio'] = "Verfügbare Medien"; $lang['indexContainsFiles'] = "Enthält die folgenden Dateien:"; $lang['indexShowFiles'] = "Dateien anzeigen"; $lang['indexManageFilesChips'] = "Dateien und Chips verwalten"; - $lang['Spotify'] = "Spotify"; - -/* -* Karten registrieren & bearbeiten -*/ $lang['cardRegisterTitle'] = "Neue Karte hinzufügen"; $lang['cardEditTitle'] = "Karte bearbeiten oder hinzufügen"; $lang['cardRegisterAnchorLink'] = "RFID-Registrierung interaktiv"; @@ -130,10 +118,6 @@ $lang['cardRegisterSwipeUpdates'] = "Dies wird automatisch aktualisiert, wenn du eine RFID-Karte ausliest."; $lang['cardRegisterManualLinks'] = "<p>Du kannst Karten auch manuell mit Ordnern verbinden. Das Handbuch erklärt, wie man sich <a href='https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/MANUAL#connecting-to-the-phoniebox-to-add-files' target='-blank'>mit der Phoniebox verbindet</a> und <a href='https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/MANUAL#registering-cards-manually-through-samba-without-the-web-app' target='_blank'>Karten registriert</a>.</p>"; $lang['cardRegisterTriggerSuccess'] = "Die Karte ist jetzt verknüpft um die Funktion auszuführen:"; - -/* -* "Karten bearbeiten"-Formular -*/ $lang['cardFormFolderLegend'] = "RFID-Karte verlinken mit:"; $lang['cardFormFolderLabel'] = "Einen Audio-Ordner auswählen"; $lang['cardFormFolderSelectDefault'] = "Keiner (--Wählen-- zur Auswahl eines Ordners)"; @@ -145,7 +129,6 @@ $lang['cardFormTriggerLabel'] = "... eine Phoniebox Funktion auswählen"; $lang['cardFormTriggerHelp'] = "Wähle eine Funktion aus der Liste aus (z.B. 'pause', 'volume up', 'shutdown'). Bestehende Verknüpfungen werden im Pulldown-Menü angezeigt."; $lang['cardFormTriggerSelectDefault'] = "Wähle eine Phoniebox Funktion"; - $lang['cardFormStreamLegend'] = "Stream verlinken / erstellen"; $lang['cardFormStreamLabel'] = "Stream URL (benötigt immer einen neuen Ordner - s.o.)"; $lang['cardFormStreamPlaceholderClassic'] = "http(...).mp3 / .m3u / .ogg / .rss / .xml / ..."; @@ -153,19 +136,14 @@ $lang['cardFormStreamHelp'] = "Füge die URL für spotify, Podcast, Webradio, Stream oder andere Online-Medien hinzu"; $lang['cardFormStreamTypeSelectDefault'] = "Wähle den Typ"; $lang['cardFormStreamTypeHelp'] = "Wähle die Art des Streams, den du hinzufügen möchtest"; - $lang['cardFormYTLegend'] = "Von YouTube Herunterladen"; $lang['cardFormYTLabel'] = "YouTube URL (einzelner Track oder Playlist)"; $lang['cardFormYTPlaceholder'] = "z.B. https://www.youtube.com/watch?v=7GI0VdPehQI"; $lang['cardFormYTSelectDefault'] = "--Wählen--, um einen Ordner auszuwählen oder einen neuen darunter zu erstellen"; $lang['cardFormYTHelp'] = "Füge die volle YouTube-URL wie im Beispiel hinzu"; $lang['cardFormRemoveCard'] = "Karten-ID entfernen"; - -// Karten IDs als .csv-Datei exportieren $lang['cardExportAnchorLink'] = "Alle RFID Verknüpfungen exportieren (Audio und Systembefehle)"; $lang['cardExportButtonLink'] = ".csv-Datei aller verfügbaren RFID-Verknüpfungen erstellen"; - -// Karten IDs aus .csv-Datei importieren $lang['cardImportAnchorLink'] = "RFID Verknüpfungen aus .csv-Datei importieren"; $lang['cardImportFileLabel'] = ".csv-Datei auswählen um RFID-Verknüpfungen zu erstellen"; $lang['cardImportFileSuccessUpload'] = "Datei erfolgreich hochgeladen: "; @@ -186,10 +164,6 @@ $lang['cardImportFormDeleteHelp'] = "Welche der bestehenden RFID-Verknüpfungen sollen behalten werden, welche gelöscht?"; $lang['cardImportFileDeleteMessageCommands'] = "<p><i class='mdi mdi-delete'></i> <strong>Systembefehle</strong> gelöscht.</p>"; $lang['cardImportFileDeleteMessageAudio'] = "<p><i class='mdi mdi-delete'></i> <strong>Audio Verknüpfungen</strong> gelöscht.</p>"; - -/* -* "Track bearbeiten"-Formular -*/ $lang['trackEditTitle'] = "Track-Management"; $lang['trackEditInformation'] = "Track-Informationen"; $lang['trackEditMove'] = "Track verschieben"; @@ -200,10 +174,6 @@ $lang['trackEditDeleteHelp'] = "Es gibt kein Rückgängigmachen für gelöschte Dateien. Sie sind weg! Bist du sicher?"; $lang['trackEditDeleteNo'] = "Diesen Track NICHT löschen"; $lang['trackEditDeleteYes'] = "Ja, diesen Track LÖSCHEN"; - -/* -* Einstellungen -*/ $lang['settingsVolChangePercent'] = "Lautst. Änderung"; $lang['settingsMaxVol'] = "Max. Lautstärke"; $lang['settingsStartupVol'] = "Start-Lautstärke"; @@ -236,17 +206,12 @@ $lang['settingsWlanSendEmail'] = "E-Mail Adr."; $lang['settingsWlanSendON'] = "Ja, E-Mail senden."; $lang['settingsWlanSendOFF'] = "Nein, E-Mail nicht senden."; - - +$lang['settingsVolumeManager'] = "Select volume manager"; $lang['settingsWlanReadNav'] = "Wlan IP vorlesen"; $lang['settingsWlanReadInfo'] = "Wlan IP bei jedem Systemstart vorlesen? (nützlich wenn du deine Phoniebox in ein neues Wlan-Netzwerk mit dynamischer IP verbindest)"; $lang['settingsWlanReadQuest'] = "Wlan IP vorlesen?"; $lang['settingsWlanReadON'] = "Ja, Wlan IP vorlesen."; $lang['settingsWlanReadOFF'] = "Nein, Wlan IP nicht vorlesen."; - -/* -* Systeminformationen -*/ $lang['infoOsDistrib'] = "Betriebssystem"; $lang['infoOsCodename'] = "Codename"; $lang['infoOsTemperature'] = "Temperatur"; @@ -257,10 +222,8 @@ $lang['infoDebugLogTail'] = "<b>DEBUG Logdatei</b>: Letzte 40 Zeilen"; $lang['infoDebugLogClear'] = "Lösche Inhalt von debug.log"; $lang['infoDebugLogSettings'] = "Debug Log Einstellungen"; - -/* -* Ordnerverwaltung und Dateien hochladen -*/ +$lang['infoAudioActive'] = "Aktive Audioausgänge"; +$lang['infoBluetoothStatus'] = "Bluetooth Status"; $lang['manageFilesFoldersTitle'] = "Ordner & Dateien"; $lang['manageFilesFoldersUploadFilesLabel'] = "Dateien von deinem Laufwerk auswählen"; $lang['manageFilesFoldersUploadLegend'] = "Dateien hochladen"; @@ -276,22 +239,13 @@ $lang['manageFilesFoldersErrorNewFolderNotParent'] = "<p>Der übergeordnete Ordner existiert nicht.</p>"; $lang['manageFilesFoldersSuccessNewFolder'] = "Neuer Ordner erstellt: "; $lang['manageFilesFoldersSelectDefault'] = "--Wählen--, um einen Ordner auszuwählen und/oder einen neuen Unterordner zu erstellen"; - $lang['manageFilesFoldersRenewDB'] = "Datenbank erneuern"; $lang['manageFilesFoldersLocalScan'] = "Musikbibliothek scannen"; $lang['manageFilesFoldersRenewDBinfo'] = "Bitte scanne deine Musikbibliothek, nachdem du neue Dateien hochgeladen oder Ordner verschoben hast. Der Scan ist nicht notwendig, um Musik zu hören, aber es ist notwendig, um Track-Informationen in der Web-Oberfläche zu sehen. Es werden nur neue oder verschobene Dateien gescannt. Während der Scan läuft, wird Mopidy gestoppt. Nach Abschluss des Scans startet Mopidy automatisch neu. Den Serverstatus siehst du im Abschnitt Info."; - -/* -* Dateisuche -*/ $lang['searchTitle'] = "Audiodateien suchen"; $lang['searchExample'] = "z.B. Moonlight"; $lang['searchSend'] = "Suchen"; $lang['searchResult'] = "Suchergebnisse:"; - -/* -* Filter -*/ $lang['filterall'] = "Zeige alle"; $lang['filterfile'] = "Dateien"; $lang['filterlivestream'] = "Livestream"; diff --git a/htdocs/lang/lang-en-UK.php b/htdocs/lang/lang-en-UK.php index d0144c5e0..096411f12 100755 --- a/htdocs/lang/lang-en-UK.php +++ b/htdocs/lang/lang-en-UK.php @@ -68,6 +68,7 @@ $lang['globalLanguageSettings'] = "Language Settings"; $lang['globalPriority'] = "Priority"; $lang['globalEmail'] = "Email address"; +$lang['globalAudioSink'] = "Audio Devices"; // Player title HTML $lang['playerSeekBack'] = "seek back"; @@ -259,6 +260,8 @@ $lang['infoDebugLogTail'] = "<b>DEBUG log file</b>: Last 40 lines"; $lang['infoDebugLogClear'] = "Clear all content from debug.log"; $lang['infoDebugLogSettings'] = "Debug Log Settings"; +$lang['infoAudioActive'] = "Enabled Audio Devices"; +$lang['infoBluetoothStatus'] = "Bluetooth Status"; /* * Folder Management and File Upload diff --git a/htdocs/lang/lang-nl-NL.php b/htdocs/lang/lang-nl-NL.php index 6f27f51e3..16dee3443 100755 --- a/htdocs/lang/lang-nl-NL.php +++ b/htdocs/lang/lang-nl-NL.php @@ -1,6 +1,5 @@ <?php $lang = array(); - $lang['globalEdit'] = "Bewerk"; $lang['globalResume'] = "Vervolg"; $lang['globalPassword'] = "Wachtwoord"; @@ -66,19 +65,28 @@ $lang['globalLoop'] = "Loop"; $lang['globalLang'] = "Taal"; $lang['globalLanguageSettings'] = "Taalinstellingen"; - +$lang['globalPriority'] = "Priority"; +$lang['globalEmail'] = "Email address"; +$lang['globalAudioSink'] = "Audio Devices"; +$lang['playerSeekBack'] = "seek back"; +$lang['playerSeekAhead'] = "seek forward"; +$lang['playerSkipPrev'] = "previous track"; +$lang['playerSkipNext'] = "next track"; +$lang['playerPlayPause'] = "play / pause"; +$lang['playerReplay'] = "replay track"; +$lang['playerLoop'] = "loop"; +$lang['playerStop'] = "stop player"; +$lang['playerVolDown'] = "volume down"; +$lang['playerVolUp'] = "volume up"; +$lang['playerMute'] = "toggle mute"; $lang['playerFilePlayed'] = "is gespeeld"; $lang['playerFileAdded'] = "is toegevoegd aan de playlist"; $lang['playerFileDeleted'] = "is verwijderd"; - -// Edition (classic, +spotify) $lang['globalEdition'] = "Editie"; $lang['classic'] = "Classic editie (barebones)"; $lang['plusSpotify'] = "Plus editie (incl. Spotify integratie)"; - $lang['navEditionClassic'] = "Classic"; $lang['navEditionPlusSpotify'] = "+Spotify"; - $lang['navBrand'] = "Phoniebox"; $lang['navHome'] = "Home"; $lang['navSearch'] = "Zoeken"; @@ -86,19 +94,14 @@ $lang['navInfo'] = "Info"; $lang['navShutdown'] = "Afsluiten"; $lang['navReboot'] = "Herstarten"; - $lang['indexAvailAudio'] = "Beschikbare audio"; $lang['indexContainsFiles'] = "Bevat de volgende bestand(en):"; $lang['indexShowFiles'] = "Toon bestanden"; $lang['indexManageFilesChips'] = "Beheer Bestanden en fiches"; - $lang['Spotify'] = "Spotify"; - -/* -* Register & Edit Cards -*/ $lang['cardRegisterTitle'] = "Nieuwe kaart toevoegen"; $lang['cardEditTitle'] = "Nieuwe kaart toevoegen of bewerken"; +$lang['cardRegisterAnchorLink'] = "Interactive RFID Registration"; $lang['cardRegisterMessageDefault'] = "De waarde 'Nieuwste kaart-ID' in het formulier wordt direct bijgewerkt terwijl u een RFID-kaart veegt. <br/> (Javascript in browser vereist om ingeschakeld te kunnen worden.)"; $lang['cardEditMessageDefault'] = "De kaart-ID's die in dit systeem worden gebruikt, staan vermeld op de <a href='index.php' class='mainMenu'><i class='mdi mdi-home'></i> home page</a>."; $lang['cardRegisterMessageSwipeNew'] = "Veeg nog een kaart als u meer kaarten wilt registreren."; @@ -114,33 +117,53 @@ $lang['cardRegisterDownloadingYT'] = "<p>YouTube-audio wordt gedownload. Dit kan een paar minuten duren. U kunt het logbestand 'youtube-dl.log' in de gedeelde map controleren.</p>"; $lang['cardRegisterSwipeUpdates'] = "Dit wordt automatisch bijgewerkt terwijl je een RFID-kaart veegt."; $lang['cardRegisterManualLinks'] = "<p>U kunt kaarten ook handmatig met mappen verbinden. In de handleiding wordt uitgelegd hoe u <a href='https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/MANUAL#connecting-to-the-phoniebox-to-add-files' target='–blank'>verbinding maakt met de phoniebox</a> en <a href='https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/MANUAL#registering-cards-manually-through-samba-without-the-web-app' target='_blank'>kaarten registreert</a>.</p>"; - -/* -* Card edit form -*/ +$lang['cardRegisterTriggerSuccess'] = "The card is now linked to trigger the command:"; $lang['cardFormFolderLegend'] = "Audiomap"; $lang['cardFormFolderLabel'] = "a) Link kaart naar audiomap"; $lang['cardFormFolderSelectDefault'] = "Geen (Pulldown om een map te selecteren)"; +$lang['cardFormFolderHelp'] = "Containing local files or add YouTube content (specify below)."; +$lang['cardFormNewFolderLabel'] = "... or link a new folder"; +$lang['cardFormNewFolderHelp'] = "Always use a new folder for streams (see below) and optionally for YouTube."; +$lang['cardFormNewFolderPlaceholder'] = "e.g. 'Artist Name/Album'"; +$lang['cardFormTriggerLegend'] = "Trigger system command"; +$lang['cardFormTriggerLabel'] = "... or link to a system command"; +$lang['cardFormTriggerHelp'] = "Select system commands (like 'pause', 'volume up', 'shutdown') from the list of available commands. If a RFID card is already linked to a function, the ID is shown in the pulldown menu."; +$lang['cardFormTriggerSelectDefault'] = "Select command to link"; +$lang['cardFormStreamLegend'] = "Link Stream"; $lang['cardFormStreamLabel'] = "b) ... of maak verbinding met de Stream-URL"; $lang['cardFormStreamPlaceholderClassic'] = "Livestream: http(...).mp3 / .m3u / .ogg / ..."; $lang['cardFormStreamPlaceholderPlusSpotify'] = "spotify:album/artist/playlist/track:### / Livestream: http(...).mp3 / .m3u / .ogg / ..."; $lang['cardFormStreamHelp'] = "Voeg de URL toe voor spotify, podcast, webradio, stream of andere online media"; $lang['cardFormStreamTypeSelectDefault'] = "Selecteer type"; $lang['cardFormStreamTypeHelp'] = "Selecteer het type dat u toevoegt"; -$lang['cardFormStreamFolderPlaceholder'] = "bijv. 'Album / Afspeellijst / Stationsnaam'"; -$lang['cardFormStreamFolderHelp'] = "Naam voor de audiomap die de stream-URL bevat."; $lang['cardFormYTLegend'] = "YouTube"; $lang['cardFormYTLabel'] = "c) ... of download YouTube-audio"; $lang['cardFormYTPlaceholder'] = "bijv. https://www.youtube.com/watch?v=7GI0VdPehQI"; $lang['cardFormYTSelectDefault'] = "Pulldown om een map te selecteren of maak hieronder een nieuwe aan"; -$lang['cardFormYTFolderPlaceholder'] = "bijv. 'Nieuwe Map'"; -$lang['cardFormYTFolderHelp'] = "Naam voor de audiomap die de YouTube-audio bevat."; $lang['cardFormYTHelp'] = "Voeg de volledige YouTube-URL toe zoals in het voorbeeld"; $lang['cardFormRemoveCard'] = "Verwijder kaart-ID"; - -/* -* Track edit form -*/ +$lang['cardExportAnchorLink'] = "Export all RFID links (audio playout and commands)"; +$lang['cardExportButtonLink'] = "Create .csv file of available RFID links"; +$lang['cardImportAnchorLink'] = "Import RFID links from .csv file"; +$lang['cardImportFileLabel'] = "Select .csv file to create RFID links"; +$lang['cardImportFileSuccessUpload'] = "Successful upload of file: "; +$lang['cardImportFileErrorUpload'] = "<p>There was an error uploading the file, please try again!</p>"; +$lang['cardImportFileErrorFiletype'] = "<p>Wrong file type! The file must be a <em>.csv</em> file.</p>"; +$lang['cardImportFormOverwriteLabel'] = "Select import action"; +$lang['cardImportFormOverwriteHelp'] = "Specify what to do with the uploaded RFID links."; +$lang['cardImportFormOverwriteAll'] = "Overwrite both: audio AND commands"; +$lang['cardImportFormOverwriteAudio'] = "Overwrite ONLY audio triggers"; +$lang['cardImportFormOverwriteCommands'] = "Overwrite ONLY system commands"; +$lang['cardImportFileOverwriteMessageCommands'] = "<p><i class='mdi mdi-check'></i> <strong>System commands</strong> were overwritten with uploaded RFID IDs.</p>"; +$lang['cardImportFileOverwriteMessageAudio'] = "<p><i class='mdi mdi-check'></i> Links to <strong>audio</strong> playlists etc. were overwritten with uploaded RFID IDs.</p>"; +$lang['cardImportFormDeleteLabel'] = "Delete or keep other RFID links?"; +$lang['cardImportFormDeleteNone'] = "Keep all existing: audio AND commands"; +$lang['cardImportFormDeleteAll'] = "Delete both: audio AND commands"; +$lang['cardImportFormDeleteAudio'] = "Delete ONLY audio triggers"; +$lang['cardImportFormDeleteCommands'] = "Delete ONLY system commands"; +$lang['cardImportFormDeleteHelp'] = "Which of the existing RFID links should be kept, which deleted?."; +$lang['cardImportFileDeleteMessageCommands'] = "<p><i class='mdi mdi-delete'></i> <strong>System commands</strong> deleted.</p>"; +$lang['cardImportFileDeleteMessageAudio'] = "<p><i class='mdi mdi-delete'></i> <strong>Audio links</strong> deleted.</p>"; $lang['trackEditTitle'] = "Track management"; $lang['trackEditInformation'] = "Track informatie"; $lang['trackEditMove'] = "Verplaats track"; @@ -151,21 +174,20 @@ $lang['trackEditDeleteHelp'] = "Er is geen 'ongedaan maken' voor verwijderde bestanden. Ze zijn weg! Weet je het zeker?"; $lang['trackEditDeleteNo'] = "Verwijder deze track NIET"; $lang['trackEditDeleteYes'] = "Ja, VERWIJDER deze track"; - - -/* -* Settings -*/ $lang['settingsVolChangePercent'] = "Vol. verandering %"; $lang['settingsMaxVol'] = "Maximaal Volume"; +$lang['settingsStartupVol'] = "Startup Volume"; $lang['settingsWifiRestart'] = "De wijzigingen die zijn aangebracht op uw WiFi-verbinding vereisen dat een herstart van kracht wordt."; $lang['settingsWifiSsidPlaceholder'] = "Bijv.: PhonieHomie"; $lang['settingsWifiSsidHelp'] = "De naam waaronder uw WiFi wordt weergegeven als 'beschikbaar netwerk'"; +$lang['settingsWifiPassHelp'] = "The password of your WiFi (8 characters at least)"; +$lang['settingsWifiPrioHelp'] = "Your WiFi's priority (0-100). If more than one WiFi is found the box will connect to the one with the higher priority"; $lang['settingsSecondSwipe'] = "Tweede veeg"; $lang['settingsSecondSwipeInfo'] = "Wanneer u dezelfde RFID voor de tweede keer gebruikt, wat gebeurt er dan? Start de afspeellijst opnieuw? Schakelen tussen pauze / afspelen?"; $lang['settingsSecondSwipeRestart'] = "afspeellijst opnieuw afspelen"; $lang['settingsSecondSwipeSkipnext'] = "Ga naar het volgende nummer"; $lang['settingsSecondSwipePause'] = "Schakelen tussen pauze / afspelen"; +$lang['settingsSecondSwipePlay'] = "Resume playback"; $lang['settingsSecondSwipeNoAudioPlay'] = "Negeer audio playout-triggers, alleen systeemopdrachten"; $lang['settingsSecondSwipePauseInfo'] = "Negeer het opnieuw scannen van dezelfde kaart voor:"; $lang['second'] = "Seconde"; @@ -178,10 +200,18 @@ $lang['settingsShowCoverON'] = "Albumhoes laten zien"; $lang['settingsShowCoverOFF'] = "Albumhoes niet laten zien"; $lang['settingsMessageLangfileNewItems'] = "Er zijn nieuwe taalitems in het oorspronkelijke <em> lang-en-UK.php </ em> -bestand. Uw taalbestand is bijgewerkt en bevat nu deze (in het Engels). Misschien wilt u uw taalbestand bijwerken en uw wijzigingen in de Phoniebox-code aanbrengen :) "; - -/* -* System info -*/ +$lang['settingsWlanSendNav'] = "Mail Wlan IP"; +$lang['settingsWlanSendInfo'] = "Send Wlan IP over email on boot? (useful if you hook your Phoniebox into a new Wlan networt with dynamic IP)"; +$lang['settingsWlanSendQuest'] = "Send Wlan IP?"; +$lang['settingsWlanSendEmail'] = "email addr."; +$lang['settingsWlanSendON'] = "Yes, send email."; +$lang['settingsWlanSendOFF'] = "No, do not send email."; +$lang['settingsVolumeManager'] = "Select volume manager"; +$lang['settingsWlanReadNav'] = "Read Wlan IP"; +$lang['settingsWlanReadInfo'] = "Read IP address of wlan (wifi) each time after booting? (useful if you hook your Phoniebox into a new wlan networt with dynamic IP)"; +$lang['settingsWlanReadQuest'] = "Read wlan IP?"; +$lang['settingsWlanReadON'] = "Yes, read wlan IP."; +$lang['settingsWlanReadOFF'] = "No, do not read wlan IP."; $lang['infoOsDistrib'] = "OS-distributie"; $lang['infoOsCodename'] = "Codenaam"; $lang['infoOsTemperature'] = "Temperatuur"; @@ -189,10 +219,11 @@ $lang['infoStorageUsed'] = "Opslag gebruik"; $lang['infoMopidyStatus'] = "Mopidy Server Status"; $lang['infoMPDStatus'] = "MPD Server Status"; - -/* -* Folder Management and File Upload -*/ +$lang['infoDebugLogTail'] = "<b>DEBUG log file</b>: Last 40 lines"; +$lang['infoDebugLogClear'] = "Clear all content from debug.log"; +$lang['infoDebugLogSettings'] = "Debug Log Settings"; +$lang['infoAudioActive'] = "Enabled Audio Devices"; +$lang['infoBluetoothStatus'] = "Bluetooth Status"; $lang['manageFilesFoldersTitle'] = "Mappen & bestanden"; $lang['manageFilesFoldersUploadFilesLabel'] = "Selecteer bestanden van uw schijf"; $lang['manageFilesFoldersUploadLegend'] = "Upload bestanden"; @@ -208,19 +239,13 @@ $lang['manageFilesFoldersErrorNewFolderNotParent'] = "<p>De bovenliggende map bestaat niet.</p>"; $lang['manageFilesFoldersSuccessNewFolder'] = "Nieuwe map gemaakt:"; $lang['manageFilesFoldersSelectDefault'] = "Trek naar beneden om een map te selecteren en / of maak hieronder een nieuwe onderliggende map"; - $lang['manageFilesFoldersRenewDB'] = "Database vernieuwen"; $lang['manageFilesFoldersLocalScan'] = "Scan muziekbibliotheek"; $lang['manageFilesFoldersRenewDBinfo'] = "Scan uw muziekbibliotheek na het uploaden van nieuwe bestanden of het verplaatsen van mappen. De scan is niet nodig om muziek te horen, maar het is noodzakelijk om nummerinformatie te zien in de Web UI. Alleen nieuwe of verplaatste bestanden worden gescand. Terwijl de scan wordt uitgevoerd, wordt mopidy gestopt. Nadat de scan is voltooid, start de mopidy automatisch. U kunt de serverstatus zien in het gedeelte Info."; - $lang['searchTitle'] = "Zoeken naar audiobestanden"; $lang['searchExample'] = "z.B. Moonlight"; $lang['searchSend'] = "Zoeken"; $lang['searchResult'] = "Zoekresultaten:"; - -/* -* Filter -*/ $lang['filterall'] = "Toon alles"; $lang['filterfile'] = "Bestanden"; $lang['filterlivestream'] = "Livestream"; @@ -228,4 +253,3 @@ $lang['filterspotify'] = "Spotify"; $lang['filteryoutube'] = "YouTube"; ?> - diff --git a/htdocs/settings.php b/htdocs/settings.php index 51a0fa4a2..d6358f733 100755 --- a/htdocs/settings.php +++ b/htdocs/settings.php @@ -126,6 +126,17 @@ </div><!-- /.panel --> </div><!-- /.panel-group --> + +<?php +$filename = $conf['settings_abs'].'/BtHeadphoneIntegration'; +if (file_exists($filename)) { + if (strcmp(trim(file_get_contents($filename)), "ON") === 0) { + include('inc.bluetooth.php'); + } +} +?> + + <div class="panel-group"> <div class="panel panel-default"> <div class="panel-heading"> diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index dc95a603f..9470ddbb0 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -67,6 +67,7 @@ NOW=`date +%Y-%m-%d.%H:%M:%S` # recordstop # recordplaylatest # readwifiipoverspeaker +# bluetoothtoggle # The absolute path to the folder whjch contains all the scripts. # Unless you are working with symlinks, leave the following line untouched. @@ -994,6 +995,10 @@ case $COMMAND in sudo rm WifiIp.mp3 /usr/bin/php /home/pi/RPi-Jukebox-RFID/scripts/helperscripts/cli_ReadWifiIp.php ;; + bluetoothtoggle) + if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi + ../components/bt-headphones/bt-sink-switch.py $VALUE + ;; *) echo Unknown COMMAND $COMMAND VALUE $VALUE if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo "Unknown COMMAND ${COMMAND} VALUE ${VALUE}" >> ${PATHDATA}/../logs/debug.log; fi diff --git a/scripts/rfid_trigger_play.sh b/scripts/rfid_trigger_play.sh index 5e62645bb..3cb22787b 100755 --- a/scripts/rfid_trigger_play.sh +++ b/scripts/rfid_trigger_play.sh @@ -271,6 +271,9 @@ if [ "$CARDID" ]; then $CMDREADWIFIIP) $PATHDATA/playout_controls.sh -c=readwifiipoverspeaker ;; + $CMDBLUETOOTHTOGGLE) + $PATHDATA/playout_controls.sh -c=bluetoothtoggle -v=toggle + ;; *) # We checked if the card was a special command, seems it wasn't. diff --git a/settings/rfid_trigger_play.conf.sample b/settings/rfid_trigger_play.conf.sample index b061c8a44..3ac8a5d9f 100755 --- a/settings/rfid_trigger_play.conf.sample +++ b/settings/rfid_trigger_play.conf.sample @@ -47,6 +47,8 @@ CMDSEEKBACK="%CMDSEEKBACK%" CMDPAUSE="%CMDPAUSE%" ### Resume audio playout CMDPLAY="%CMDPLAY%" +### Toggle between speakers and bluetooth headphones +CMDBLUETOOTHTOGGLE="%CMDBLUETOOTHTOGGLE%" ## System ### Shutdown From 4e307fa407da67e21519f3c2cd8c45fe6d8391fd Mon Sep 17 00:00:00 2001 From: ChrisSoc <pi@exaberry> Date: Fri, 18 Dec 2020 21:50:45 +0100 Subject: [PATCH 023/206] Fix bugs and default configuration after testing --- components/bt-headphones/bt-buttons.py | 48 +++++++++++-------- .../phoniebox-bt-buttons.service.sample | 4 +- 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/components/bt-headphones/bt-buttons.py b/components/bt-headphones/bt-buttons.py index b6dc96446..1bbf40112 100755 --- a/components/bt-headphones/bt-buttons.py +++ b/components/bt-headphones/bt-buttons.py @@ -15,8 +15,8 @@ # # Option 1) cat /proc/bus/input/devices # In my case the bluetooth headset is listed under its MAC address -# Option 2) Disconnect headset, show >ls /etc/input -# Connect headset , show >ls /etc/input, analyze the difference +# Option 2) Disconnect headset, show >ls /dev/input +# Connect headset , show >ls /dev/input, analyze the difference # # Step 2: Test the event # > cat /dev/input/event1 @@ -26,7 +26,7 @@ # # Step 3: Figure out the key mappings # In this script adapt the EVTDEV constant to fit your input event device -# Call this script directly from command the line (make sure it does not run as a service, if you already used the install script: ./sudo systemctl stop phoniebox-bt-buttons) +# Call this script directly from command the line (make sure it does not run as a service, if you already used the install script: >sudo systemctl stop phoniebox-bt-buttons) # >./bt-buttons.py # Press a button on the headset. The script will output a log like this # @@ -42,29 +42,37 @@ # This script has been tested with the following headset: PowerLocus Buddy # # Note: -# (a) If the event device does not exist, this script will not throw an error. (so you see no output if things dont work!) +# (a) If the event device does not exist, this script will not throw an error. (You will see no output if things dont work!) # But continue checking if that event will appear at some time, i.e. which will happen if the headset gets connected. # So if nothing happens, make sure you have the right event device listed here. # (b) This script assumes a constant /dev/input/eventX to headset mapping, which is not globally given. # But in a stable raspberry pi setup it will be constant, if no input devices are added/removed (especially in any order) # -# Feature Enhancements +# Possible future feature enhancements # Use cat /proc/bus/input/devices first to find correct eventX to headset mapping # -# If you want this script to run automatically as service after booting, run the install script, or do this: -# Adjust directory paths in phoniebox-bt-buttons.service.sample -# sudo cp phoniebox-bt-buttons.service.sample /etc/systemd/system/phoniebox-bt-buttons.service -# sudo chown root:root /etc/systemd/system/phoniebox-bt-buttons.service -# sudo chmod 644 /etc/systemd/system/phoniebox-bt-buttons.service -# sudo systemctl enable phoniebox-bt-buttons.service - +# If you want this script to run automatically as service after booting do this: +# The easy way: +# run the install script +# The hard way: +# Adjust directory paths in phoniebox-bt-buttons.service.sample +# sudo cp phoniebox-bt-buttons.service.sample /etc/systemd/system/phoniebox-bt-buttons.service +# sudo chown root:root /etc/systemd/system/phoniebox-bt-buttons.service +# sudo chmod 644 /etc/systemd/system/phoniebox-bt-buttons.service +# sudo systemctl enable phoniebox-bt-buttons.service +# +# Troubleshooting +# If buttons fail to work after reboot, take a look into the boot messages to analyze the service messages +# >journalctl -b -u phoniebox-bt-buttons.service +# Check with >bluetoothctl info, if the headset is connected, play some music to be sure. Check /dev/input/eventX exists and check >cat /proc/bus/input/devices +# Then go back to starting the script in the console and take a look at the messages (stop the service first) -BTNPLAY = 200 +BTNPLAY = 200 BTNPAUSE = 201 -BTNNEXT = 163 -BTNPREV = 165 +BTNNEXT = 163 +BTNPREV = 165 -EVTDEV='/dev/input/event1' +EVTDEV='/dev/input/event0' def btkeyhandler(): # Try to open the event device @@ -78,13 +86,13 @@ def btkeyhandler(): # Only act on button press, not button release if event.value == 1: if event.code == BTNPLAY: - check_call("./scripts/playout_controls.sh -c=playerpause", shell=True) + check_call("../../scripts/playout_controls.sh -c=playerpause", shell=True) elif event.code == BTNPAUSE: - check_call("./scripts/playout_controls.sh -c=playerpause", shell=True) + check_call("../../scripts/playout_controls.sh -c=playerpause", shell=True) elif event.code == BTNNEXT: - check_call("./scripts/playout_controls.sh -c=playernext", shell=True) + check_call("../../scripts/playout_controls.sh -c=playernext", shell=True) elif event.code == BTNPREV: - check_call("./scripts/playout_controls.sh -c=playerprev", shell=True) + check_call("../../scripts/playout_controls.sh -c=playerprev", shell=True) while True: try: diff --git a/components/bt-headphones/phoniebox-bt-buttons.service.sample b/components/bt-headphones/phoniebox-bt-buttons.service.sample index 54b7ddb52..34f012f31 100644 --- a/components/bt-headphones/phoniebox-bt-buttons.service.sample +++ b/components/bt-headphones/phoniebox-bt-buttons.service.sample @@ -6,8 +6,8 @@ After=network.target User=pi Group=pi Restart=always -WorkingDirectory=/home/pi/RPi-Jukebox-RFID -ExecStart=/home/pi/RPi-Jukebox-RFID/scripts/bt-buttons.py > /dev/null +WorkingDirectory=/home/pi/RPi-Jukebox-RFID/components/bt-headphones +ExecStart=/home/pi/RPi-Jukebox-RFID/components/bt-headphones/bt-buttons.py > /dev/null [Install] WantedBy=multi-user.target From 369c7f9a68208dfcf3f599459eeab4070783f734 Mon Sep 17 00:00:00 2001 From: miohna <50060359+miohna@users.noreply.github.com> Date: Fri, 18 Dec 2020 22:26:41 +0100 Subject: [PATCH 024/206] (maint) Minor typos, whitespace issues (#1214) --- scripts/playout_controls.sh | 4 ++-- scripts/rfid_trigger_play.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index dc95a603f..2c3224e58 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -68,7 +68,7 @@ NOW=`date +%Y-%m-%d.%H:%M:%S` # recordplaylatest # readwifiipoverspeaker -# The absolute path to the folder whjch contains all the scripts. +# The absolute path to the folder which contains all the scripts. # Unless you are working with symlinks, leave the following line untouched. PATHDATA="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" @@ -80,7 +80,7 @@ PATHDATA="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo "########### SCRIPT playout_controls.sh ($NOW) ##" >> ${PATHDATA}/../logs/debug.log; fi ########################################################### -# Read global configuration file (and create is not exists) +# Read global configuration file (and create if not exists) # create the global configuration file from single files - if it does not exist if [ ! -f ${PATHDATA}/../settings/global.conf ]; then . ${PATHDATA}/inc.writeGlobalConfig.sh diff --git a/scripts/rfid_trigger_play.sh b/scripts/rfid_trigger_play.sh index 5e62645bb..b15a7c912 100755 --- a/scripts/rfid_trigger_play.sh +++ b/scripts/rfid_trigger_play.sh @@ -80,7 +80,7 @@ if [ "$CARDID" ]; then # Special uses are for example volume changes, skipping, muting sound. case $CARDID in - $CMDSHUFFLE) + $CMDSHUFFLE) # toggles shuffle mode (random on/off) $PATHDATA/playout_controls.sh -c=playershuffle ;; From bd35f4a918d3ded9855db521c8f58b75f2164d6a Mon Sep 17 00:00:00 2001 From: ChrisSoc <pi@exaberry> Date: Sat, 19 Dec 2020 00:02:38 +0100 Subject: [PATCH 025/206] Add GPIO function call for bluetooth audio toggle --- components/gpio_control/function_calls.py | 2 ++ scripts/playout_controls.sh | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/components/gpio_control/function_calls.py b/components/gpio_control/function_calls.py index 567c38f23..0ecaa3fe0 100644 --- a/components/gpio_control/function_calls.py +++ b/components/gpio_control/function_calls.py @@ -77,6 +77,8 @@ def functionCallPlayerSeekFwd(*args): def functionCallPlayerSeekBack(*args): function_call("{command} -c=playerseek -v=-10".format(command=playout_control), shell=True) +def functionCallBluetoothToggle(*args): + function_call("{command} -c=bluetoothtoggle -v=toggle".format(command=playout_control), shell=True) def getFunctionCall(functionName): logger.error('Get FunctionCall: {} {}'.format(functionName, functionName in locals())) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index 9470ddbb0..59e6a7bd5 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -997,7 +997,7 @@ case $COMMAND in ;; bluetoothtoggle) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi - ../components/bt-headphones/bt-sink-switch.py $VALUE + $PATHDATA/../components/bt-headphones/bt-sink-switch.py $VALUE ;; *) echo Unknown COMMAND $COMMAND VALUE $VALUE From 11cc776f68aca6cc04f0fcf8de398caef0d5d455 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Sat, 19 Dec 2020 23:13:08 +0100 Subject: [PATCH 026/206] Create codeql-analysis.yml --- .github/workflows/codeql-analysis.yml | 67 +++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/codeql-analysis.yml diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 000000000..0c63344c5 --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -0,0 +1,67 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +# +# ******** NOTE ******** +# We have attempted to detect the languages in your repository. Please check +# the `language` matrix defined below to confirm you have the correct set of +# supported CodeQL languages. +# +name: "CodeQL" + +on: + push: + branches: [ develop ] + pull_request: + # The branches below must be a subset of the branches above + branches: [ develop ] + schedule: + - cron: '16 18 * * 0' + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + language: [ 'cpp', 'javascript', 'python' ] + # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] + # Learn more: + # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v1 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + # queries: ./path/to/local/query, your-org/your-repo/queries@main + + # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v1 + + # ℹ️ Command-line programs to run using the OS shell. + # 📚 https://git.io/JvXDl + + # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines + # and modify them (or add more) to build your code if your project + # uses a compiled language + + #- run: | + # make bootstrap + # make release + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v1 From 42f66ded243521d1036c6840c175165000ac3bd2 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Sat, 19 Dec 2020 23:16:43 +0100 Subject: [PATCH 027/206] Update codeql-analysis.yml --- .github/workflows/codeql-analysis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 0c63344c5..df6b2837a 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -28,7 +28,7 @@ jobs: strategy: fail-fast: false matrix: - language: [ 'cpp', 'javascript', 'python' ] + language: [ 'javascript', 'python' ] # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] # Learn more: # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed From 7bfab7553c7398232cb292bb2f9bd3d06733f824 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Sun, 20 Dec 2020 19:51:29 +0100 Subject: [PATCH 028/206] Change path to gpio_settings.ini --- .github/ISSUE_TEMPLATE/bug_template.md | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_template.md b/.github/ISSUE_TEMPLATE/bug_template.md index 7b555ca31..1be942778 100644 --- a/.github/ISSUE_TEMPLATE/bug_template.md +++ b/.github/ISSUE_TEMPLATE/bug_template.md @@ -89,13 +89,5 @@ Can be found in the output of `sudo lsusb -v` when it is connected via USB. ### Other notable hardware <!-- -i.e. post your GPIO pin settings from `RPi-Jukebox-RFID/scripts/gpio-buttons.py`: -``` -GPIO Buttons: - volU = Button(22,pull_up=True,hold_time=0.3,hold_repeat=True) - volD = Button(27,pull_up=True,hold_time=0.3,hold_repeat=True) - frwd = Button(17,pull_up=True) - prev = Button(24,pull_up=True) - halt = Button(23,pull_up=True) -``` +i.e. post your GPIO pin settings from `RPi-Jukebox-RFID/settings/gpio_settings.ini`: --> From 7744519016bcff80dee8ac32594b00901338af04 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Wed, 23 Dec 2020 22:21:25 +0100 Subject: [PATCH 029/206] Add mopidy extensions versions to script --- .../helperscripts/Analytics_AfterInstallScript.sh | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/scripts/helperscripts/Analytics_AfterInstallScript.sh b/scripts/helperscripts/Analytics_AfterInstallScript.sh index 0424076ba..2b68e9551 100755 --- a/scripts/helperscripts/Analytics_AfterInstallScript.sh +++ b/scripts/helperscripts/Analytics_AfterInstallScript.sh @@ -29,16 +29,16 @@ ls -lh /etc/lighttpd/lighttpd.conf echo "*** /etc/lighttpd/conf-available/15-fastcgi-php.conf" ls -lh /etc/lighttpd/conf-available/15-fastcgi-php.conf -echo "*** /etc/php/7.0/fpm/php.ini" -ls -lh /etc/php/7.0/fpm/php.ini +echo "*** /etc/php/7.3/fpm/php.ini" +ls -lh /etc/php/7.3/fpm/php.ini echo "*** /etc/sudoers" ls -lh /etc/sudoers echo "*** /etc/systemd/system/phoniebox*" ls -lh /etc/systemd/system/phoniebox-rfid-reader.service -ls -lh /etc/systemd/system/phoniebox-startup-sound.service -ls -lh /etc/systemd/system/phoniebox-gpio-buttons.service +ls -lh /etc/systemd/system/phoniebox-startup-scripts.service +ls -lh /etc/systemd/system/phoniebox-gpio-control.service ls -lh /etc/systemd/system/phoniebox-idle-watchdog.service echo "*** /etc/mpd.conf" @@ -65,9 +65,6 @@ echo " " echo "*** /etc/locale.gen" ls -lh /etc/locale.gen -echo "*** /etc/locale.gen" -ls -lh /etc/locale.gen - echo "*** /etc/mopidy/mopidy.conf" ls -lh /etc/mopidy/mopidy.conf sudo cat /etc/mopidy/mopidy.conf | grep username @@ -82,4 +79,6 @@ sudo cat ~/.config/mopidy/mopidy.conf | grep username #sudo cat ~/.config/mopidy/mopidy.conf | grep client_id #sudo cat ~/.config/mopidy/mopidy.conf | grep client_secret +sudo mopidyctl deps + echo " " From 33a58afb6e6aed4de971d12265f96b20a39aa99d Mon Sep 17 00:00:00 2001 From: miohna <miohna@freenet.de> Date: Wed, 23 Dec 2020 23:06:23 +0100 Subject: [PATCH 030/206] Fixes bug in folder tree, related to special chars Resolving #469 by simplifying collapse IDs in folder tree. Make use of integers for collapse IDs rather than folder names to avoid problem with any kind of non-allowed characters as ID value. Simplifies corresponding code as no character replacement is required for collapse IDs anymore. --- htdocs/func.php | 2 +- htdocs/inc.viewFolderTree.php | 9 ++------- htdocs/index.php | 6 +----- 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/htdocs/func.php b/htdocs/func.php index ff829c25b..be12ea2de 100755 --- a/htdocs/func.php +++ b/htdocs/func.php @@ -288,7 +288,7 @@ function index_folders_print($item, $key) } } $playlist = $contentTree[$key]['path_rel']; - $id = str_replace(",", "", $contentTree[$key]['id']); + $id = $contentTree[$key]['id']; /**/ //print "<pre>\nkey:".$key." id:".$contentTree[$key]['id']." path_rel:".$contentTree[$key]['path_rel']; print_r($contentTree); print "</pre>"; //??? //print "<pre>\nfiles:"; print_r($files); print "</pre>"; //??? diff --git a/htdocs/inc.viewFolderTree.php b/htdocs/inc.viewFolderTree.php index 6810d29da..b40e26657 100755 --- a/htdocs/inc.viewFolderTree.php +++ b/htdocs/inc.viewFolderTree.php @@ -140,13 +140,8 @@ // chop off the $Audio_Folders_Path in the beginning //$temp['path_rel'] = substr($folder."/".$value, strlen($Audio_Folders_Path) + 1, strlen($folder."/".$value)); $temp['path_rel'] = substr($subfolder, strlen($Audio_Folders_Path) + 1, strlen($subfolder)); - // some special version with no slashes or whitespaces for IDs on the panel collapse - $temp['id'] = preg_replace('/\//', '---', $temp['path_rel']); - $temp['id'] = preg_replace('/\ /', '-_-', $temp['id']); - $temp['id'] = preg_replace('/\[/', '_-', $temp['id']); - $temp['id'] = preg_replace('/\]/', '-_', $temp['id']); - $temp['id'] = preg_replace('/&/', 'and', $temp['id']); - $temp['id'] = "ID".preg_replace('/\:/', '-+-', $temp['id']); + // IDs on the panel collapse + $temp['id'] = "ID".$idcounter++; // count the level depth in the tree by counting the slashes in the path $temp['level'] = substr_count($temp['path_rel'], '/'); // information about the content diff --git a/htdocs/index.php b/htdocs/index.php index f45ded1e0..d714567ad 100755 --- a/htdocs/index.php +++ b/htdocs/index.php @@ -124,16 +124,12 @@ $audiofolders = array_filter(glob($Audio_Folders_Path.'/*'), 'is_dir'); usort($audiofolders, 'strcasecmp'); -// counter for ID of each folder +// counter for ID of each folder, increased when used (within inc.viewFolderTree.php) $idcounter = 0; // go through all folders foreach($audiofolders as $audiofolder) { - // increase ID counter - $idcounter++; - include('inc.viewFolderTree.php'); - } ?> From e6cad661f3bee2ce569ddbe67aacb669df7df635 Mon Sep 17 00:00:00 2001 From: Micz Flor <micz.flor@web.de> Date: Thu, 31 Dec 2020 17:17:26 +0100 Subject: [PATCH 031/206] 2021 calendar --- README.md | 6 +++++- docs/2021-Phoniebox-Calendar.jpg | Bin 0 -> 703431 bytes 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 docs/2021-Phoniebox-Calendar.jpg diff --git a/README.md b/README.md index 494db0b35..58c9e6067 100755 --- a/README.md +++ b/README.md @@ -8,7 +8,11 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podcasts, web streams and spotify triggered by RFID cards. All plug and play via USB, no soldering iron needed. Update: if you must, it now also features a howto for adding GPIO buttons controls. - +## The Phoniebox Calendar 2021 is here!!! + +Another bunch of wonderful designs! 20201 is the third Phoniebox calendar. If you are interested, you can see the [2019 and 2020 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). You can [download the printable PDF here](https://mi.cz/static/2021-Phoniebox-Calendar.pdf). + + ## Important updates / news diff --git a/docs/2021-Phoniebox-Calendar.jpg b/docs/2021-Phoniebox-Calendar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b62591cf19f60de4619a05f1b13a565273219b79 GIT binary patch literal 703431 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%0AV)l3^Uo4Hl}=79!%AWZFxZ;s@6&Oh;-gqE_) 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�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	f)AxGCi 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	kRYnco%Fe?F|-^Z>*~GnH)BZk8BzmS!c(e2;^t? zbRVb|mf&V(f2;LEL*Ki@E0w4H7M%DfHU(zu4`S~)km(7~MFx>NhyDUAeWYbqjh_T) zbJ~b!{>l9ZTZI1TzAWkfWnJbe&3D6MN9fW(ouw+|o^V3I_U6>6yQaK7(>M$xCwpol zn{d=8`;?QDx0$NppwP&MKM1ZgvmtDiXCt!JX=L*RbO@E2j*fJLenm`p4H@vumRBsW z32Rl>662RRy;I+gmoWf-eivcJv#y*-_rOIV?mIfS7DulM)N127=KON^%2QgaBcT=} zu+s`;T>y^2wA)VQn7c*<R4<tZN*$XU6xBO}dd%tcG$<xgT^5+B)(R>;ffaZvP8_wT zBiXNxXRyZRk>f5RxfpKVQB3!hcJ`b(`x!OZgNWKD5Ejn5Jg&8$TJ#vsxUB13hd8t_ z2R2#)fXNQ#v%0#zS>9&1o%?|U?>{9PpBcCm3vy$@{!<|!?iagDPoVsFpanN|zov+O zk5{BN>YuY-Ev24`9PzMQE5r}q+RP2%|Iw%5UGOQi#75)eanH9kZ#?{%w(7o#k*ayK zW*;c9`Ml+Q-^P#I+wjuU6X%sGv!3`IZj;I3?CHyWZtH$ek;WUJlXfu~is|D2T%ltJ zt<N)M@H1NRmKE$PK`vphtl=r&Dle{T@j=Qr0ZMBgl4fPSfw)J(+gzGZn%NIbui&rq z-8H5(Db1Uo3AUnyH}<Lnvb+&MSoFS}OIk5f?`2jF3jMg<jsEHFDg(f&uP&wK-E7h( zYs{mm6pXHSxU_db-74t1`giS%T+k>;PFP)cvkc%wbdKwbHxzNsla!Qq($9RB)Qx@i zh0V&AJjm2g_&+a89y<hPcH0ruxuMFxo-GTM4_H1F%!%&!HJhncQFVOB#!dg2&9Uun z^%t<^^LQCR78&DRLWKQW23<><pAiOm&tmirLC}+f^q}XnV+2rkYZ<Mqo;-V$u^-(t zsb{{mM-C!Bt9?;cuQ-h0Ev9*@fhFdA$&!ZAB3I?VU+AiekaPUyF+gTDYB4j1ksSyE zA{Zt6NY{d^c#(&?;Ss}k9TN%5ODDBsgc9qm?6|fJ$~YBVlXy|#!|<?ar|E!N`Q^;3 zOAUc8f0rjNQ@?KasD+ai_{e*Ddu@Sr$hogrg#xxI<i!{ot*u~PKZ)evMU%w7=G(in zK>v9SFg0;qp20kSvwqGX#db4rj6B2iI58?O?S%C@5bh~uAo=m9$2m{HO@L1t(;k&4 zYJ^A_pTcRcgNmVEkS_EsW2f!-nRtb7YRRuGU!edgOE~y)A{+01TC{{vx5m`@KW%pY zME@nBCT@7c*w`yGdVvOMJMUVo*R-D(WKjO|nm;wR(_}L$_%c2HY*AKo{UYsG#`nU- zo_fmqKEq_f1gH+CjRC7d#8x`Hr-pj<<=8vRTC1Te95*yWu4ZK$5YWY<I!?%XvPR3v z$12!Qn#~unVo<wORss%BOUh?pra=kkOU!|gedLlzE_%Xf82^*+q|;7Wvm#3^1x_W! zId|o2Bbb9s_;SAHbuyg@^MJ4~j+p8;vPaJpXLHY)XT*5Xt*C<U@*2kTehP=+M>!_& zeWB-IO8=@(DtLXIpS6P#!^EuYC#0fI%KbrP$U9P6kQ!`(O`f-mejO$_yiUqo5he4M z;Q_-ub{?zR9^7y~%_P!B>{#&DnIVBK(=yCPjLPpQ`{-Y%{elcv0>dbB8Ue_5a@R&K zdme+$vTE)<uQR)~>ugo%bM~rDkhNkX%|AhAltZ!MhARW?GKZ1gH`fC<#=-Zk9GeMA zV&rs}QslF>`r2CgEV{b(ZB#9thK|uWIv<$O$8(w`nmIElwzqC1!nxvY+i>Y+Uxn;E z>pjC1Fu*%Eg&7+_UP>Z1Ihux|C)^|LVpU|i@Q?y`^JrNVwJM|9(G)_mzkpPKPtx~y zf1>ask-bNQD0lXT?&OS_HjABHgo3;$vJU|yZoQ6M8iY1^n@=QhmsCT6aYy*qdK0|$ z?Xu-Rtl4#d@rj8!Efaxa7AW#0rUU9^R!!lNIj~mE<WF`kz*=Fs$i$dHSjPu4<T%&* zPimDos!58S`{;Uj>ZyMLNUgkT)0KopJIvDD)5!IOb~zQOUWH_n#yDw7=LA~{Re6L^ z!Xw+RVKn3ltHeVvid!{dg^IG$*tbvwkG+vumA()QJUE=Vf&8X2P4gf!-kd}NRDpE^ z<uc|H6Ry6fWhvdM?gCj2!BFuK7^c%Jk>jJ`wxHxb##kcRM7V4<gcqhlJgnQ2C7)PM z(jRP<>E4FAi>=ZbP5N0y<UxTpTFv4qGK-Zof<XYz+U?Yz{w?^8yvFdicw+L%9tI-J z>%>y(Nl{IkzU?RXMjBq6mc}G!UF{N*^KUYf3e@9{I~k*5{3Bv;ZaUa&amDRq8Pxkj zn*3`?45J__?BG5Y%KjEx3rByyV4_j3Q&P~^eWpESq`6u#_>{J8VWdZ<tZ6Lw8a01$ zeKg5mIJVtajy`IqA_!q@sM}qYTsns*SH6V{Rn;3bg3eI4RSvKh>E!XgK73+F5NSiX z7G2t^b?N{4gDm*$cEi%Zsz?yC&n!fA+@!iVNIdisF+*cX6FjAwY1M!Gct(-AGVq^# zas8WtCT0Cg?V$B_B0NQd`4R-7+c1hRX3r8NGk&DSzpG2+(C})n@i<yosk_W?pA<I+ zHS7hxTT-hR-k|f2f|)y|Te(c!>GXQdE-(|ZR>FV9YDRiTI!1^b_?F(+SfF+fG7Vtd zNo()EPOOD1z`;yl$ngNUj3e_*Y?gT!761AzWXg@9m{(3IO}Lr?JGqTSjCT=p=<Aee zFc`ufxlK2o%|1k6g8Gi9J+5KrS+OQh62q5c48c;w=%?jjcXejdm=2U&k??o@yr5V; zHHi~L*KRFD0NcPBL6LCJH5AJkD|v*U=2lsrzsWnq%is!lnYzg{QOxn{cfV#oJB$g1 z46j~Pr5e_=sK2GunUgTw`KBKQ4L9m!Ys*fXNsx*xF(dge0D~!r8ZYL;0s$PShJ2xc zeLh2cA@!J^>-eALZB6{oLgjzo?5wOEV5)jN+;j#9|K@hkeBFY(CDfS0r^#bi!nWAi zv^Oa5%hG<<D8_NOK<y(PiOtLx$K7qF6$^Eb$nOc1R`}{|e;({agon&6dAYnH{Q3Pr z#<L<W1Epjaf|PF_Lj*j|3CX(;Gi_(cd6RE7p;@cTX1@tzUlG;5DBDtUyjU#||A|02 zdP>7Qe_XFKL~`Xmy9*Pd4r$hdt1RL*9p2puJ2jjjB5Bdf9ONzikp`=Dd~uLmC(tQ* zxw=i;$amdKf}#6V^-Ae1Sx~hVz5Q)Gb9R%b9=pTPp=CDs@<oYo)Ug4q1?Q~^;^#j6 z3!tH!Rald~T(9!vd;q%U?C1~)yO<l&R^Kvvkf^d=g*{H$1_a%2;Qk232k7zn1WfYx zkjP;2sDa~1rVzOaW*HmD_@u5AUUPI&+%xx%$A1z@MS?dtkSX+QC=y&?f`Djo;VN<t zapT}UDagpEyB2myjTW|?5ivZAD-FYsD9fNkShq>RRSxCTs5@yXeJ55ER$oT-Yff%b z6b`z)gd?=b<3UO|B()H|kgT!Pk<}Mu4VXOsSvLu1JL`I6A2@v(KYI*q?RnY!_5ZV{ z?dzYv06X93f$z*H520=U;s*Rntt6a2gtoB7emHi}{@+T(23-HpM~4*sw@TFcXUP>f zD#P`U0i4UaP~*R+9cmxY_@lG@-}ATCg#I@-!qTGZk#O}{^82znnhx^G|DNPO#hD=g zTP5-!ys&@B|NLjMqW>1ox_Jz3;cQxXhHS#iSr+_n{=ch)Q4W-=$ELMxuv!b&bit7; z$*i<|6x;7Qf)-B5*T{p{Tf#-BBjeu@Liv&9T@m%cd;7NVN28K$eZ*}DU4g|g!7-~f z&ba{5hy?fblUqp`uQ;<siOifw{o}=YErIN8EzbBhe;nqdQwym*QbYj{<oGwPS&a?c zhdG7sPn>*;UBzB^-NeKL;8^y<qQa|h&t=P21P;F>YZ7LfUrK)T&wVrF=QF+1c*V7j zW|+ZoDcgtXF(Ys}X=JmH47Q`T*@)jTw&=yl=H}*vFWkMQsCYAarl@==Ef}`+euTwP zFZ9z7_Wo^Pq*AiQuDm%<^xCwf@<EvNCg~1ZaVp+eHw}JCHKd6I2yL40W2!lL+@gEW zMR&ck?@9&qj}tn3a!WsaT%@Zrr9w^ZS&k@XZc{A1$DP^DP-Ne^jXOPmjrJGd_f{Km z=6TENYygcF>pqy)f4G8SQj_=fmtUAyoLY9TewTTH+t;n|3#^WetV`rSMSVL&G!jAv z!)gY0kMpOX1L68|$l*k<dv!6Kl1u;$CItMedh(}07n2$Ta-&>i6%$L5W{C__9df2g znQ1#OC#p?s&N<Yu;{v7iCYjQSQXVb&x4Ieu7z?bvtZU@cN=zR*1QPZWcD}T3qjFx7 zaz5J8)%y+nas0*`)$uaMk2WH*d60V=T(n5=@nj*!wA&k<&aL;8HCaLgkrH{rw-gGY zNrAxtDGDZTp4n_r+_w<yP|w@&*YK8NsAZIS^_AF5S>KDDngd2|7{}R2fF~n9bfjqF z#ze6vw5vlv;fJ^oH5ga3D?va|H5ZBPmJpXC_U`iz$XX;xjmM2XhIt9GU0S!njUlF@ zmnIpH&e%-|TMa7->X0ZWh|gh@?6)qjDz7OR-XzoH8O=G-Dvv`e!xq#`icIIFD!s@I zB6p&j=pf!M?<Y6k-_uvB4{)&%^$%gLo-R#A>6!7W^4IPIt_wJ1X~#7{Fg(IcODpfd zF(dp(WGP)7Zfc9F0?0fV%}fEVrFKNC#mD9?0a6OX!Zy69=tAC~w<-)<SbI2Qj9XFV zXxL+j9klGkwoK0EwHfk~hiE@U!}{RCDCsj8zHq<e53Kq4jbdxJ9A7aiNn}w9O-Y|+ zgJtei1onJ^^CYP8__%?~;c%;?(~O(*(UeRYiPSqje+ysNVa^cxx)B#8)e{V}>nwgk zE?=v-&D_DgKBfXoX;CU#vRJXLAlQ}AL+Dos6BAvfsLPxELWDWAjK<8#(3FUM?zS;Z z1joYyLwfNSsytS4KGTe?5>}PzKLo);496hH)X7GKT}%3Xjx3=jIc8Ht76_=o1V*iS zlS<zvd}CxIDbu`odcd9uY0X+jQZ(R3&ieDH0&rQ2*_NO0{gXl#aas@7Hu4?Omt-Yl zEd3#+dwc)fN9zw)7n!1)sdi`a%b7eby{A%%B&CTGDyVJ?&*IVpB0EOhFsDWi?A8*t zV7C=s&SGKgY^zto92LICljY>Z)z&4NbiW6?B{fh)w+km&h0hkWk7u+>SX>f;dnA2% z2=vy6(7PPXw{o+#P(DRrz~lRnN6WU18{xahxBUPe_fNjXqFEXO6QJ%Z<eVQpj+!Zm zpN8GoGpR(<IK6QIeyXT3v8D44cdsPap11oE@3AJIC(TS)x^X>8z&AdA+jdseOVIA$ z_Q;~msC||giAvxtXKtfjS(-e)t!3Lgrls(O#GcVvf<fRV{d<LYDhwn*#LFaNubCh< z&LD0bkb4-RlAove4y9@~oSKm!;JgCtn{*Uc9o-PbN<9bUEg+)otfRuno8K~#duJWI zx9mXwo^Uv^ehk~XN~v|4R7G#%#+NXP!tD0ZjgG|>JmRAQ<nCdMOXjbzMm#wr`hlRi z?jYCEwGb|z8}|Ap{5^q8V$(i@fzqgYnw9V9di(**Tl@1d9k=V|!QAaS;g$`?d8bX5 z@SCG!*?uO|VyGLDL2dWu`KAKgw64Vp;S*s|?9{c6F+`;^8}g8;bEinWxE&W6Qj?CB z`{)|;`!M3TTRxmmWi|FJKGRp%3G<jS!Xzxt$a{^W+d9Da+yOM9-7t2ubK$Wd`8^Qs z<6@%_Qg++4_n=l)uHK9uFnGf_VDVe?mq;uI66H{~P{IByRl1v<y{jPIpdoO6w9&p! zIc4^su9pJuqB+H8I}^gui>cb9=wM)a%w0py`JgxZNxb1%Q4??o6@R|?RjHAE4YpM8 zV0Q$26+UX^o>cTQhPIX<JI@6EkkQ<~*d|CY6KAOLYfVpF;hbz<<7-1-1^kuKBj3ob zN9wqVC|s0-KX)i5l7T}FK<(@tM6A9LIHq?*Fk3vpZyR5PHdMtf!SXR^Z_LZ;JZxdm zKqG`F=HhXKL6_c)4wJiS`VQ#&+T+NW+2w1D%Yb{g`wvW)-vSEH2#9Nx&yym{O5r5P zJGUV(G=MQ@5NaHlid&;=8u1l0@!j+3C@T1QdP`G4&ZMx#bNBh$coMFTxavn&FHA^z zBfUlcc|h+9KGI*OaUc>Ov-sK5`(zI;lD^5Ek-~3nh+wjW5GA+vjP8>|5aNzdPa|_g zxp_(qZv<%@%&S7LoLlO5??ZtIu8%A?+%m_KhC;ji#={HUDFu-T9h0c78Axr9OTMl; zU8!&7@GPXxcdW*=e^})7(Gy&K-t=E8ymM1`jp~G5CoJkfBY2TeK#~CH-FBV=|GTwI zyU~E8=*0)U-9s6MOb6;4i=uX1e51?I)Za8aOl(<<Ovg{5zXT9UP5TwFDTb-!c;fDs zyc6EjEfb4CP>)EP@MYeI3s#MzGPy`9tFk8OR&+{xYfdwB3i&!W48wy7s+2zN*iOBf zmqRO_>(iJIhE{C%T5LdVgd*}Cf-tO3QOgncaNsm2o<sSQbl3=vnT}LEMsE-t;}%>( zT2ER<RdNzzE!07rL)Dfh(pUo<y{Krs5FV^7(&+AFbH?`WBIV%60F;hn9HM%}JuJBK zQv8n5KU2dHWpW(LA{bU#*4}NMu#>@DvMBYjl)q@T_d(($f9DyQuKod+DBVJ&9~UkH z*Dbao@r?eQ$R*3gFUk2}sNlL`kz7w2hwV1;$|1yJCEnIg=)gyxJL6U>faKTj9#|*q zl(|^oql|!Lz}Yv_a-V#$KTn9z6WVIY(2EmtyHKsO%R^bzrNYho9vR9|md8KQMUMmZ z-Ils@_py;(F13BKHdoXco+Yt7)E-xkwiq!yKsmqeCO?N&ZQS-tzzNZb=qnS~$~x`l z9l8x+9F^`RUGJfNO>FD_G>(eMkERSbK7MPDOT<WM%4)PI+kaj@jjt)LU!|WMXfJyp zp{MHHZ~sBMeXa@TGNnOR%`mrK<4{o@3QU%K^Xu1n8ylF&Y4C*al;<7U52^f&emndo zZUX5e9qgXbV!jV{t{YVLrmsCd@zO*-wwQo+Mw2V!n-HAmD2t@wuG8@*+d_iX3ExSb zge|B0P3d$r%@(l;_a|Lv0G3giAiDR7J;SD4nnE)?x5->|#A+}@%zm0td7mMlY=ABQ zAOJ@ez?!6=O<7CsM;G5M%^o^dhVSJc@w?bG8z8`cHaJW0RSu^GE97wU(;#bpRtn#4 zblPD;L$g`M@FzjIiR=Lv7kxSov8uFWBv-p`u5Rn>ZYNi`nIr*1T7sy9q(qib9FaUO z90}y-r+@<tx;4Y<s-<(Pd1pkMnha&)hO|=(m!=O4qgR&Ck-B^+tR>E_eNF_kFONdR z)Z_6M4tQ{=B?9~gDDv00e8eT*ubDB!3PeMm%dXl^A3LHv=fs<CS!DU&pE<}qKS(F$ zUq4TY#&LMfq&<1z6&Z$638!XEXDIlqtv9{f&<%cFQNK7w_=Rr|oT!D2(pT(Z)`9NU zDjJVC(Zmz-Q!oAPa_sqYsYny~^S#P$X`jjlWj-0T&~jVb+7(ex)os%~QG+?$VHW>d zx9x`^#BgiNk8F>BiznisYRQ$(N3tIzg>Fo~PPYcaqjn9w2d*28hI)kYt#k2xTsBaN zaN(&b+BoN#{RZP%xqKQXHWf7CeOuQx3;s^4;P;&~Nkm6+E>7dpL5v=AdY~pQ%2)*g zCKEX)PrdCGF)%Xu>ZYGs=$$%1qs2)RQ({mcx3c__!8vw?T4?7&Bs;KXVF<zZjq1{R zdU9agknlg7@d<4EQTR*jspLlEY#MQ}E(enp*51NR%E`@5qEOMy!}FQt+n++;RsRJ5 z+ku9N|H9`<!E;cpYJGj#yf%C>;#*>%X>$RUy=6Q>o>t&<U+gkx5Y$q5#+Yk~5aer} z{=!*f=L|%W_M5wZ)aXR3_P+FI&?*gW^$DVGSZ@a%2CzL5F^h@`7KIctcZBpW5bl<( z9XyR-IG97$KC?Eqxhzd@9&9kMKU(xXs(rc<|MVAdG@ISCF@2>R(^JSi=X%Rij*q9G zM4~H)pzrbH?Afhg*K(Vy*0xi3u`O24*vpPsU-b?gi57`7#$g!Olln6>-rI5Y1s7JD z4ygx^^7{u4n9=^iY<(H{>DRIWrxN{!_pwNu(jbGiyPBB9DQ>8h3b{rTGAI}S6|I0) zetW+{cKh&w6p#Rp)UrQ}Ye)__0kS6>!_3M)$=kOCA(vVkLTnL;%1vBfqQhhffGxm` z+tbrQc?H1r-I}-}q84yYs+6MA{v&8NZhMBE*bAz^b2Ttn75-j>_zd5ySVZxN9m#M? z3=2OYlW)7)6kO0HRJv<B6rX8{i)6R%<0(i5NYoNacFPGDM2ORM@4~N}E1VsZTH?(6 zg<J1LizX}W+Onw%kZ9WYP;D05lnQy;Vb8DXD%wiUz6rg0-@4ba@VI2=G(9j-r6eE} zJfJeYmLKN*>pqk+CE`cHK*&QF&6M~+K*72^SA|^701__^N!q-*Ia)HjaTej;u0SRi zPEyhIL``;8x(e($k$5e_?ICU+PqGFg(B^R<{`Xn=%wu!|Gkc$_htC(k5*SHh@Q5BQ zYJ}?j9{vJ~{N6@2BI;HX&`k!EnpaRWseEB;G#2}q7PxaNXC1KtqPUKM?!4BiK2ZD% z2>)>`OrVNg%P_<>PxWSZSXaruC6%4}Y5?hN#C5DOaE+STnkN7*^H60cB=^c>{@g<0 z<r5T?>QgVtl%k-+^i#AY@oEugQX?R%GOT3JMm~x{7|F8C%R)kR{G3F>D@f~E_&Lxo z*GF)r1aM)!woY>rx~4uRbuw>4DN>+ueF{)5oZdX5viJGq_o6TM#rxSi@S35oXrSDK z<mKf$h7jIfo(FGo>&A%_mS#?FDHBPZ6<kk>*L`WeoL}9(6nC-`PDoEO?3tIUwGP5` zVU{`e9C|yNG~qE@TUqVzj;|Rad{T!tH+YteSoeT{vPuOWO7~NXft(1f;Zv3@%)*6E zT@39C*$*{g#ydC{B&oGbl_+3yI~<ira&SWWZ1V^nTA5#Tw-S<0$Uo%dMky7$Um?TC zk_`nX`Gp}xr74&B=hAuuEiHj-2SX$+hDAcA916FZxH1lz@NCvpP<xu0L=1(hdW8o^ z7U&qzY8Q|l5+wo?1kT2vAfM*0n$$Dfy{fTe3QJPS8-6&#MbeO4oaDJVTYYRT`F{K5 zTKt6bZ5+Fq+1k7D)&pcyr;ucqp7c?J?=OGi&n8751E1qkN)`sX&VzQW8fQ*m8)I#^ zxA=O6p%%$LQQ02FAJjUiAtN-tNiCSM9Dbgz7AL7CymAAXq)H0pHjO~U4vq;LV#YWr z2zxq(Pf=X7<*$?5)!<3No0t7D9E1(bBr;IEvx1pAWC+V{p}qvC6^c(-49@k+lmnR{ z>UC&062Y>rrHzTW;`|Bc=d@T45FIWoNm9`&;p~!gW#>~mssoZI1kwe^##6$}<M^?z z2QT<YN|gSgnm`d~0_o~szz!I9;yUvE+rI!OlXr2G{Um3~h=gB7nlqU|)zj8-yXB13 zp6o}&&Z=J&JAg!(vpYIppfx&`_VSa;So;=+MA+O)v0B88g%@Cf?EqNcbc8ibt&-CE zJ4_HYY>PtS&W;>Rkz;K+h$0Wav8)Rout~%C<VvU00u^$Tx6BE495LE?g>DzFQo^ji z1QY-9y)2SX{h=!)`0Lo~!N7SY1LfDZLL72ej^gZjev`GOPkk52oGJ0B{UeVdTn<1q zhqEK@Zxs<A81hq%QZv_L(_M#ay&xd|?_fO?F%lQEwDAwvo|GH|^*!6hB$E+Mg!Rin z(8RVMvl%<|C2;E9mr(I4OHq;M2aU^&ljm_(I_7#6UkaP}xkj;<;_WCj1dqz%Q9xLV zUvYLtDHlxbVhIPsql^=d47Xp57-}^a&BBb;GEW2|woK*PQ@)wIQzEc}q^;^oJBq49 z{y-wTo>W0z_+{STPBtvzk*q*hAUd+zhoN_pF8fkRHud_O!z)J&&98X5BT9JjE#>D; z>iLyl^Qx6vXl>9(bn}&5H!RkunwAPm!-Lc)b)wUhmC&RSlrq-qbR|I8T(cgsqOHs5 z*Q*(tbq?Frc(z&HhF#T*5%{)^SF=(bzh}pn@!^Q~-2Dk}nmp`#egLw@h!%C1Idf11 zW|;i;3Wn2^M@T#^|6UdO4FV2WNL-*$<i~Zfw+BK<?!qxxBl(``40mkG%TVv$z=bU> zrgd^bvMC8JMwxy7)Oce-oC~JWg}Hg*Y}=`)*c*b3;0(p=hooy!kz|9=u6u;mFFc9f zi7&%1FZ(D25ajCNM$n!v{(EbBr#->n7F+q)HDI3Bw6_heK=*5U6cMl>N7O?SL`9CN znoV8N97l{Is<qUBLL$7iWBD_eerh_<KM$z_wo1ln|Dt`p?3cNKx*QTTbrRuZ;+SwX zNWu4bvWJh4Orgk$+4RxDMdlXke$v4PNq15I$&~(BW@xji-T9LoYd8z`z!))#=uOs< zC175tjJBUapWdYF_Jr6X;qg+YcrD;)pS6D$`88jjiRqiVy=!R1^c+&U4q4N0{`Obe zCwr`7P{L25>%OX11IKJ{N1IAM6i;GCSkZ~=9g+tv*6+~k0at1gicN+uG<)2zswI`Y ziv!x~YybjsZ{tp=W4Ctwv&xnxn`F$gEFo!Os?Q{gSLkXd?R>+U!KLlS$+=E7elY1s zl~gws(8<A!;+p#^>1<KYZD!0%>e<v8aj_Zg=2Oa6fs39!dG$7ViL>VGZcis@FS~Vs zo(hk`kHKmx*V~se<SEWhG`8jNx1Dy>(%Awee<HQ?&Dpm`zPP2AbjPr_{CQAsrrx=e zVC*cI3VwZ`iC##Lcar)CJ>(z;nW|iPz2b?H+QI3?PO-YxvShjjz)xipbowcb><#s6 zwn?`>(TMNS%o_xmKoET<1mt};_Y+vk*!$*%q5Fv?Ie*j6iQjbv39zsO(u-}s?Eiok z3Dd+I=GSON7IJ`HG?yr@5G?%RdH+Iqz0e`G_@;CYO8+S&z3fg3-{?XTp+-Z&R);&z zW5Cva^g2hcDt^~G%!Gy^%R;H+1z$WkN$-;-c5qsUB<`Fc3qZh3rX!YivO;5p3a|?c zc<K=2=+8(c2vrtyc4=%PP*FSrm}wALa;6e}9`ydB@cxm-C#a<BJjL4clWBL(s~Q~( z!iwuG2T%@EJ!{Htr~-#kl!{UxQH`S2T^C9O=yo$jiPtj9$KC?D4)U4a{xcu)*!PHU z*w*GvSwo9<wTSx`%i_Ja>#ZSnigTRyfKe%5fr)OXYPK3>R@Ywnfsns|xbd<ej*0A} zM)ZF@gG;V}SRIZGjE@&Y-{uR;rds7!wRF3fN40a~kMSOY_e(MLgNhK@)ai3Erf@Yr zTnu*;B%Ni<aYr?*_lP(zn41t;EK#g#m`2t09pbQA!=TKj5#!Mj2w@uf{_^IH%s?T# ze^kkkT+-PK2%(?NKdSmBTv*GI3y>@<n^ZKQPE$^zH7eUQlOcRG5UTLo97F}Dvza;% z;BK#Fgf;IN>QFboi*`t=g}r%F;eTS!e?oA0Ju2t*a=oSR5Kg4q^OkpVqFLF~?Hn5E z9AH#{DjYu6jejB<FQvY~l&0c5f}#hkwmk*Be)~@9Tm9rDW_GR{DNp9h!U|i2mFno% zgd-~dNzt}<OlivMmtSpLjX1(G;j9J1fSFLo?O>agU>p4+LmiF!K<@hU{<gMY<=tSL z)nKb!jrt3THrNBqE7)F5qHXX2CL+=L<yBj6d8-j}xB3Nsjcv<_Nb5yYd9}H{=%jBp ziIi`lQp)A@g<?H&mEWuZemN#sd_D<U;y#Io#G6X-Y`-AjA8EV7LtrwUw#>|2o+n9g zvo|G~LaLOofsC>F!X%zTJ#W~x6!yt&`b$HQ_0N2_h!p9nxmF_Kp@r~lT-F&}u+`K$ zW&&yp&${U74Jmhd`(8*CmR0$=&rL*h7l3u!U(l^y;>mDWn$<l(ZsP&$Cu>h?Bo#u9 zJgSnzEIbhH$+N+w-L}HD%UU2#WK%5-XA^1)lZf43Zn!S?JXeCVooMBKWA}s-E0_df zj*5}wXL4NcRCkUy{3sx?rFXH?O|bUxuql+2$eA_92}!}Y3Qa-HPgI&Qb#rv}oFuNI ztTJ;WWN{vG1Xq?|Q;(IK5LKN7p<ro7m9~r$b)So&bRe6@2zSzsPDE`rdL#XLI3Gr4 zb!{3b(J3HzlkdDkFi^bROyKlBTC%^E^@niqr*<RA=rDMN62{5aJ-O}w_%en8UUB=G z@+|powzSeJsYXwbZ#U>wXW%$lw^js?3AU-%d_-wsY18C%z;BMlFOyuhQ(n<D%A+G0 zy>pNAa3`^KC=DqJ8|P0I(h4Fqcnm$1RcMVvvYmOx3TNavHV&<sQlK4^ogEVs{Ks!e zA1;#VLTthCxLJ2Fhc$N(sM=&m%>Wbj&9;(gYA)eHQ~<z)%M`QJz-Ra_UNc}q!P*;w ze5{90psbl}J#q+c1?_DirU)~-m<wUX<!>7VA#3h1jR<|OT{|4gdZV`qAQnEb+(gXV zU*K?KT{-IPmRAYFwB2$t{LykHl#rO&;O3i#rN!v}e(yRMMx|S$_4+l`8c!e?iR4W< zd4R#&50-{$ib_kSNp`6Dbe!UMa0)#OP=V4Ywy&1xfSNfoA}Vbk)5978hze68=2U^m zD&4U}Id>?b&asO=lEU4C=-n84yW@4OOX(LFWQa==wZcuVE%JqBmx{Y$d^9Jk<@HaR zn(fB<tv0d@B-|FF+0=Gu*Yz$A$qdwT!LuIah`rSqBi6~UM2~mp?E?p6*9}6I!CF|R z%Rpg9kV|th)lx_m<~PTe;;(_pXu3_%0mj6*RE14LSAwr*a}84;^I@ANXpgL)vf4!@ z;~d*GZbnhu_ATCi(4})VdiKK+vA89Rvx}unmHsrf=*xw$iprciP|RIIdY3TQpH>p~ z*3G04u}W3Sz-j1o<9&Q{yH=>uWW}PWT5ROn-a%ri`cG_p&0#j&l!3E}xmzkNGGRRB zh;URAnhQZwu4yNt_k>;Cq@W$c@*dl6j|Y`Izs=%R2GXvE_8rmWf53C@{D`a3(bxiO zU6pP=1wbo~6$ln#gxvuB5Odaq-0h#AO<z1rku)A}d%Z+I#GM3YBCH@Hs7cjSNmRGG z@I4CQ{aoZiE3-kCb;2_lU>f3<$1(cWfNK_d`^QQqPWvFW*H2%X!VZj;YYe2SWrd<m zc021&(MqMsYN1q-JC%ZRE94T@d4I_3!gMug5s7(;5pTl%n2oD57Y=9i2y}>KURkAZ z)VnZLGL*W$Gxfrj(;d_!;xr&ffLoAe!@UV~2(-k4&^2MRbnJ4{$P<LkQ<!vyW8}zj zwbmfIK5?`Y_1?t*H(nUJj&|~g>P{jAJ4BB4eo%O~dx>p8FH0KlYTPeaF^J0gar|lB zU}%mY5cV2hfWVAlDrgxv<Sr*#V%Ugk9&Nsb&cp{10n1gV&<n|w<cIhPa*4)=C4A4u zyvgiR_8^O#XeGceZ-he^@*r#ww#*5zT`3Ab3ie;X9U4V2JPIrvp#%g~Ws+GDMIqu8 z*F^aE5%2{KQL7>0wv*4Z)Ek-O3IyXJzU&~WH*P~q2#Tf|sYLN{H-D+9Zr%>+Ary=o zQqWOw;v*<4uC2`wbA(<}G@e}u@oV{D<`z(83FokV!fOHQkG8xc{MjEnKw(7l7a$xQ zj$tP!LsYl5YWrOI_QwuZ#p39X%(vZb9^qMPq3+VzzUHZJb|y(ESaMW9ZH#s*I-dv- zI`(aIYl0+$o~?;LpsII}?UPnv)k>~U#euWpW$nE}9&O-;iDT>$DDFodw@4_qtd3TR z9Peikl8*K+4@^#hb1pj9ii8T}9Mg6(hkpX1#JP}{7ll8z6cR+L%4ris3E8Z=z|0y$ z)gd5g=MF`Lk-&*;B%PGzfYejnN6j>m%e2*ExY0Q*{{}vsWo2{1eJlTYNDMZDw5E&R zj^)7_Ah$z4RPMFzv_PhRzYX)c?0_p;WIxJ>_1W(vm;0)o)zZx%If)t8yqJfegW^A6 zuY(<v>+p@wW7<&a!UOBL!+2@gtmF4VOah;mSO=t56E*loH7>7)6B#M*Hr;WRnzOm{ zqSR-T(iHYg6e)Hwx|M+=WNx~(QMHU=iy766LTgcc)+=zz?)H#t$T@qA^IrBStXf?6 zd(A>4;jkp0x{Ij}(3J8X+KA&3?<^x^I4%r#gVdhS7Xygc!5^WN1?mbSDrY!jHyoA? zGI%l$E+gT9@(9Bdx{V-Rb)SIuSr1;p=nzlT)Oi{kD`OG4IvdWB@X)?HbeiCb^|!et zntc**?TU%(miATkmaU9jD&Il5{AuVI3U6@#c@}eET4laD&c8z#><`+(?3ALqCKJHU zT@;}Q47SIRW9lFctNgV7@4LK9=G1CWuAgGDP<IijIGEH_s++VSnvC8cIDnSi&khEq zg1pYN7J_;_jEZKT)R-q*^a(@9cc7nA=DtkKmDhtK_7TE8itBhjvm<_jV9~^F<0r)2 z+n;YEmA?_l%-qf#rx=i*uxoLbh#F5CctIK*gx>Bw+pQ}(#^1#H_*do8FZnZwJNRdL zrv|`N{>6O`dGzlgcUonC0a7Nam|<sdUv<4R6}vJ_udxB51+k(yUx(}qxJrK~BrNjm z7abhALAcTUTl&*Tk66YO3b!xu?^g=sS#SvPEjv3KU*>-nV-}?m@hhBW!n9MSNBPeW ze3PUiVSbX;`BM7!*bO<sjZV*dMv*$mtMWHuQB2{^_(nsTfEA9{9u<_9vqFvOX~E2T zbo%12ym4A9z;wxR^c^u30VsSG>F2utFsa+0@?Xbi;Qa+4TyvR>2&qJlpr_HNs>z_< z)i|CDgdR$*0Ten8o|4TapMqa5?`#O^;fN>*h;W1l8~E!_7M8M>V{SClVz<Y>oUU#^ z>G0k}f<EqibR0#TZaJC`Z}KU-2{$#}$Yyk=H=H%3hL@Ti^_L_AJ6?`fyfv`eov^@e z$y&NL__+6WvDt(kwSDMYUhZiU{H8OC9Hb-llCpKt9A_0sGhzGgR3?qtXjb2C3wO!m zu7yJZCsb6%efR1`YiVFMHW)V*Ou|AEKzEDtf0XnS+do}&{a%%hpJ=Y)Ro(I!^%XtE zJGR}9&isNtO`-oErrrXmttW05#tBYvcPIo)phzk14N}}SI4uq>?(R?|KyiW>E$$GY z1SwW1QnXN{MG6#(_2z%y_xt7!nc)nx=j5>2oZWqXkKAvep!9~L>owjb3O8nQ_vp_g z6vU;DM6bH4JCr?MM4P~(ORnL$qAz&sqN}~~tn#xbFzR2a2YC^SB1IcFUg@@P>l&x1 z(81VWV|r9m#URX{So*%1tm^ThF)73HsIN;iF<2+^SN$3zI!Yy(1Gj*nX#eDrx>Dx= zz?&bdS67VcxdXwfc^}aZ(xym%`oMWa`xa4leIO3lFMC=U$yjNU=$reHnN_~g9eQ7h zD{2CLQvMOcM20{6$N=s48cB=meT3%_Y#hEXRmf3Qk|P<^-EtIw$d{e(5Z**ne3%^$ zE&LOGLgnBr1Mh2c7bpSc>yHhtYD*<F4HON=)T?NV1oSu^JiX4(rID6y$|HwiBvyVZ zx8~hH!o^S^ruW{<_=J{|biMH2n<`1T$d0Nf>nTPmkO*H;MT`_@EMM1=zN*vbV)M?% zI)Ye?R2MBd4iqmBL$!w-l8p`*4tvf)pT@(`7R#`X%o99fn<>x{5p!u%L{2rr5BYS` zvO9M+`9mze)RYp>u4^rg(p$b2B|kQI`5bZqz_K=o&Woyud1`oH`#=leT9mS*WtE?J z3fzm=rlX8BS+9DF`*ia1m5^-i7NyI_<L5Kcz4xNCYCaXSb0Q7TeYf55`e-IKBvgfi z^-FQY<-3e~*Ez*%;=CxgobMsivz>Kh{s|u}l@0!33}dKmZrDSM_)6Gnex26^m2Q|{ zNb4Z1(8NgHK~>ORA4m5M$>U?Jv`D9?1zo#A8Pbn)HC*A4*G3U$@D-J}Qv@=`DpP)) z{bWzY_kO_S8K%_GjPPl%XXextKgTvE{7KFIkg&q7Mqic@eh2jI!8FnMM{&8wUXos? zb8ddYHVKHQ*aa>okfCrL-DpQ6bER?at&lrHtx@ux*V_3?wFH2m_8k-S&908hjtJ*y z%ZtMy28^&oz%%CHx3vb<cDlv_i;&A>kksV>MiRtaYUX@SYGj*9njx1iOf8@(kpqR> zxMW+$9Pkgrjss;r>c6cos%tAuzFO(EMy%Z|X*+vQ!Wui#i_lCuy^nDFaDNIk?0Cdu zi7qAVz2B;S28|D4+vvbt*1OtH!c1!H82d0fDPas}P;2w!VQRB>rf6qnok9g#d=O5r z{j22k=g}^Ai|G0p2%I5lQ0>NnP%w>RhTzICPbst}c1kX7O<pA#aPTEXS(LQ}BZwMf zjhZ#7(ZhsHvdFjrZCg2VcRNLJ@#px@6s@O0{pc}1cz7H8E+NdsYRNK{sug#m<hB9U zJUxv}Ih$%41q#7h0MVR*876hS+4!{7dfz6Mgb^Gf^TNFs8rNuQ<E5cH(VLuKf@qyi zBX9$O)k!ELAd7D@(^@VCTxV4}lJtLK#W*OJVBK0g1?`%a^mu>|A9K+R;wlxMf6a0y zaWx}Y#dEY&zc4?>sg9p#`Ti_Vp41(3^IQf?saJt`k<W)r^%kjxTp8GbS&PZ+!QFPJ zwQBgvg&x6O>#M*|P(OJ50&2Bep;eQDyso;RjxDIU$X3cM>5XIwWmko!i0La?BCAp6 zXSFAZmKod?&r{T78)&~YZX(%iXazNE&6HK)3R(sxZ@dEYU?9hr2|;5atX?1kf4hT; zzAhRCsnK@e6jd3a3}IOv#SQo5&K}DCa;k#HgJcvjn$^kLlWU7+JTfI4Q+qnugs(M* z9UfoBGOtPb@?M?vgK+2OP4lkf_RXrz;~5L0UuC2{i=C~#RjE7q3(Y`cnTBUMl>QQ7 zRd*P(Xb~v?2!W8J&MmUDVr0ZX46@ilEbY=*{TvB3-qYMehs>UVWYybSi@l#AUu7Jo z^j~XY`86)5<m6lknx<JR)_Ne&W+dd#r>*zdzK4<j^opCODqOgrZaehhFUTDlODhc^ zZM&(C8L=?>C1pTu-*%dUdijv#Hr$wY?LGUZ%aT?%`%IlVG&9^lexDO(G<dHAH0}4e zbu!O@tz2I?VZkq^V`#rlDr;sWEiF`Ou86nNDW+@gNml%knmS8%eeR74MxYW2y#uX1 zbBYB0&hqAEmfvXY2Xt|tn>nh!g1K{0pT(hvjo)Jr)L!Uud~o+!3q8>hyrNqhAoQ{^ z0zAPXr?_c>K+bZaENvA2CM&k2Q`P~WQ~O}$p$!XVc8JJ=bEJ4MU?jNwcaMm<PoXc@ zuM4M9W#ut%<wR?dlN*NEk$|3<FDk}Qr?54=cam?nA_KKq|B^uCSTQwBJk2(`<F;9F zjz=;PKhKnU#^&pC7d<bQNF`+-?pvmHXlSTN!kS4-ug>l?K33VMfKXd2kVUdCp}~<- z3yv0oC*M1xTx?EP-5t(rx`NT>>=e5rpURzvFfg=!-FXw%hjcRQJ(Tf#(wo!peHUOo zLkCo0)M@Baw^4TxR8?cR@bv5Ab>huGllJ7;Ys`W={Tfm+PJf7??T`xqaW$~;(OqvH zmRD5FYM4e+B`Jufe5`N!OxF99(Te-H-Vle8Y~f>tRm(@15J^!9+q447yV@zd$`Yw| z>FG)KBu-IXeJ<~^f_`bLZ<=Q6!0OT(HBP2!C5|Wds_<M3vz0WQzSF2pKC{nwRu-<0 z_@8}U&=awF#D84c;gZZxPw+DXI1g%@ko||GyqFe-JN1pYoam_V^5Xb={DLV-Ubvt* zEjA&p$X7$o_FVpYhY<s*JR^a#Fh6pff&^pSRk2-UXJ6d8)CQRrI#{KT9vH0f=6yJ( z;Si&64h?O`eT<dOqAY;oki6Y%wo`u9Vz}WwEYMq!5WTZ^Ky9<xY+cZ+SMjX|h~C5+ z5l;h`N~YY=j33^17fmqY(hesJOv4!@Q&}zR2)&?oz?#{NN06K+SS4~p;c~hAbgm52 zEco$0yzF#bAK=+=k-|!b2pD+#s7q7B4OFr(65|B5Eo4abMjp9xdwdzFq07eN#4HHJ zg=XX5UtI*pmyUbL++DmQ@tt|Jd{*ln{AeAwM6oYkgiPwaFZIeF@XWnvY@1xfkF)kS zyTUf8>Uz+8Fx}t>3M+*!*d7=Uq`Ck8(9M}R5R}K~*m~#v<EOX9fXd#3`phNn*Fx;1 zpl_0(3jiVC7D*pEFy6w9>|r}DSVOI}Iv|GfX;GF$hqX*6;*S!-Z>R0AF~`h%>Re@& zm((>w1|uqgApToqWf2}kW2o|0QD^tSI`qpR$w>*0IPJ~j&H9WDIXfni?#1s*)*3XW z+z@2d%n%1B%PF}&vl;5{cs3Q{f9F(BT2L;s91CJeuc32^55K~ktgjMqqswheq!w%g zab*KPjC@EEo7XFk%8wu==va@$qff$$ry=zh(d9Mgi($+qCoM6xl3YhCXl%Qp05l8a zGl1_sxr?0Njs=*Y_23Us3)#XxjmiK*=<ODUs!{Vl4APc9oW`3YgGQwZX7rsTd47Z0 zliKB^^?1G)$mMEy`g!+Ubm15Ih`I55tpf8uS;^~FY5NS4{+q+!4vad{m|%I9(b;fW zod*EB0{~>CP5L?)-+n8!C8=T`(mC5((m)GH+@OkBi#AeOoBaxO>xf32H6?Bc4lb7o z7}J)NQ|uv<xNEB~LoTaX;6V50*J`lb`E8%o9u*6^&0^tm(dLC%ika%-ry)Wt%7zJc zI;*E%C89Uz3A})2%7haaY-f@qP9B5iY_@FAY<d%Kg7?6jHKy&BB7ZZcslUaNU$u7R zDL9$r!k;>cHUnTHC6il3SK=XD{3MCI5}1rOcwG8;d$^u6oh6I5g#FDSjDeP-FB9m{ zl9!?<TyK#IR5K$iiR}Htvx6~j*>5Lz`djYl@;=KUm&d*xG*OB@Ku`1+5`j{3g@bgH z)wy_|%?1YWV1A!hnR$w{Yy`S4Vn{_GnPr2D>%)zroY0}`T=oNekB5GNW+{;<E$o}^ zQDcAk)ZcBms0By4qW8EF1-Gb@c&1S_(=|a$BRsDr<DjAVb2%;Z%dPNXKW;vUq1*Q+ z&F`U4lvb$&QV`)}UG!Al$b)eh{W74<hz`Tp#cah(V(0XxQSF<L?ml@NK7Kp6uT%>= z>^oLZ1YWoNDd}wFGI`8*RIXmTUbqPxc})D#)XL*!4J?u$TcH1|jf8C*#^HuD+GHks zY}1?Me)<fixy3!J?Bc<^XI0AkyrJ$C5=3ORoZvsDD7Iu9XddVpkr?jaWjgBQnK%I? zt+wW}`BsNnGo^Us{<N7WQ2g@Nv6!+x?4WK=uU{xcnCtDhHhu7Oq$<4ciE8|NYXH=N ze2y;IawC~-sK)>IsA03Y-pa+G1F_0$YE$WZ3|*w5TYjGVPMt^DYJ+%nvlG)RVcq`- z79`dfR9@oMyem|%f27oMAujQBkVeha8ICjlm`dW+Vj|y0ds|%--;Nh?v~#pPPb)v^ z6EN0P24HHs##Y5^tSB>>U&OTNXjGNtlQw~*#_{Hp%N_Zfll~5UEvtSsLVJE2cg2}^ z`5F*KFv#`Wpp$8_!@BU8%*fMT%Eik@g~cIhJ|0<dD3QyL;j6!{{+@igUpfG_=!&xc zJxRkYp)JJsYKmN6chQZU9}m1X*HM*4Y()rtla=)gYj`6f9xc<0X&kB1D}FH@=x)*F znZ~si_hMc;BMMLFXC5@cckqaF-spX1XJb^)oGt##BgWIYRYs&dnu4cFaMc`oCU#pT zFZytXCYtt8M9VguNqIaMA9%YPRrv5Wq>`lB<6Ky~dPTi4>^;?Fzt*UOsM;yY1gBO0 z;E_|O<3<wjV(vkDnq^b&eH(9%l;QnpIF{#w%u2#?aRo2q^q#Me6$|cb$lr5<p$FEx z11{sW=Hw8Ex*F`t3$8bBK5OGa$4_k8Hm@lzkK)Nc=Qg6;uA_X^Hj$V_9SppUyUc9$ z#r33_t7o|#9RvLjtbT{pF(yO<nZ}Vv{OK}q!9zlwb;znYVBFs!C37{Edo3SM>9Kq+ zMjWJ2f3o*7!DUI(<qu3vos%~`5&>M4_>*|E*zb|d+9d}PAYXiHvGD8uAI3ZNK>?S> z<J-LFWk%b|-6-+DY2cmJ$;N6Qgk}eyNv_mZ%rDVJ8$1|u;PAa-Ny{@N^N+j$?w+AS z2WA_bag4;YK*1%`4by)ZetHO>|A5p(&WS@7DMi^B2Q5*1$rl#%38R54J+s`=m5r&{ z5Nd*OO6n!aVKJaign?G)GBz6M^jOrq(n8jYs%L#UuVRd^1?m()8gK=8Vsxm>9BTbh zfDD&3`8L)4Y#mTS2g4RDmM4RZQbym$n(Tzf(a{m6OW@*9RADT8elCE83QbSCRN~jj zBgfPe`ZoX7-Yq4{{i+dY6xUp~>G$d!Gwtm%;?2b<Ar<ZqkdP{tpKor<;vo-)7~$~H z@ZMRM_fFf1g4N<QnJAW}1dE#SeS*D@jJo<<?)7!5Dd)1IgjKpC&M|JAh>qx?zk@d) z=>aw`f)M^8iY4Vn?9g%Qx5^D$I3Y^jEN*m3?oUyg6#raYz-1AQ|7Jzd;eH7FM#z&w z>4WQq;n7?0sq8z)%@^za8Jn8ttz+Zu<K4Gv_PJj0t5&BH-Q4Cd|0QOz#}WUC=v{Y* z1%V!~(@x%6OSwYN3>g29U*!1!x4P<bHS@a=yBwXC%TQ}!2yf12m~ic7Wl1f8TH%-= z+sU%VG0n)B7x1*0Nd;xb5ve~Dn!Oobw_z>C34W^J%YcqqZx{#*=q@Q2bnbjva39EE zG<I}B;5-MR)sgHTFQmTSS)spPq$>ZG->OT(hpsqI;l7N!&b;Xta-(i^QQae-(mt}= z96bE;i#8bfm9*^57n!`-<BCDl=H~mliYcEG*YmZZrCaTmpk}KTcg7B$-oDWEFnO!j z1HYNF3Iju7YJYc@zBwVy!$y_$G_J^d;NDfopfvTQ1GNrO?Y}(#FuWPaC^;^8vxb#H zX9T|qYz6Jnx+{vqB{a06Io&BCy)c3H&694GvCxjVN)azMiPMvr_+I4lJ^Pf>5OV{& zw<-W#3+%w_GcWJbdCz+?ocvJyb0%&@98-|I(lId28B^;4Ml`XKjDoY>)K^b(XYRdU zM^_GW6u94`;a5|ET;VO2i02X9&~1lBJGQ2H?FwustdW#+FCWHY7r;Fp`UzA*t$gGg zUz1YbBzJG!kCq-&b1zou^f+h#5~>rxHP<jTl#+$<uRBgDSaMPuu2db<EdRE=Ke<@` z1wLRr4Re+>Pk2XM6|#x^_~NagGOSdiP$MCo>O?Z2E5&zct3c+HvovtR)A&aieah!v zabmjPg@bbN>GQ}_iq19gOTp1xbf8jTGz6n2HhQvx5ZwHgn-lJNgk_L@2;v`V)V5#O zt7190PW<N4aVL=8@$q#c*}d`;htW3$@e+W1Gm|eXmlIO2WDWThKkakH1%x}P?KJEu zKI4ykAB#>PNkoIp=)SJeE1mW{*DITrfT%cvXg65TSijFg?)0{7e+k5kQJ{SXM1#>} zzY#80ML8m;2dds9exHkK;tV1P6%!giO1gfJw#z*YBQHD2Q^_!4Rzy1AD!h6gzch8g zhQ-&b(d>nH#CD81FI-<OqZ5=?;mHX$$XC~C@fGMFRdqEu>m`9MN4j0}VC2!M4Se1) zR^`pF{igDuPLLPN?QFMt2#)TPbaYT|z~WS(pDIu#R%OsyG|i7JnX2A@2WC!ZMA<6y z<-Hv{AqjLvwF-O6HhnbWfklm4`o-cjq<^qg=-QAt$Hm<Sw4N}H^fiYo_{z$8(FP(K zi{`6z4vMvY_*Y^ACFH1AMSl1Q+!%t43IA`GpnK*B27QP5_hBE6>nivn*Te%-jYJ|B zxm&2eIr$R6Jbt^3uYd)wwOnrQr!S8FBy)}iwuha``Ay;sWGor}mdE%GIh{>-Me{)l z!htCY)PW0{UnkG;vMLA&7}Pn^v1QQCb7_T?0oyxjI|tjt-h%YWPVAhK_%@f1h@@)y zGGPf3_ok`;z9ufBfBhv+!+=D3R$jQW%EQCZ$VIG@G6X5Uk%2;&t2lVX2ge8NOgl2& z45*}|L2mrU`0ScTXPBKKm5?YPr@AtFrh6KTteUvBAd50Z2Aa)0h}p8ar2l0#ea0ld zJ^v6x%*u2B6RMrMaUc9=0FK$G_0;N2DL<srWHku>cMMNVY+mA3+%;LE6OWr%BN}du z@9v5{5w8D4x5)7^yoWPO$qx^U1<0Y2YXWbAI#^(R4JHP<TUfmx{veP<=xK|gPh&tX z41T?M>@eJo$LGDTMUmglq*<~cJDGIzT<(Uo8!dzF)NKX*$)oNt#)g5FPq8Ty?6Gw} zsPb0HeBPLwUAR{z`U5lQg<y!SVu|u?g^2>-?$Vmfq1Q>)`ba-bgBpiQL|)+wC)f66 zX!MgyyKpZ$+%1#duPsKco|e+ZaLK$Xx+kzu2a44x=d2uR5ShxUT%HHvn;3$c)_3BQ zPZfu<Xo-BDj#A1Q4Py&sj_u9S>FdA<BydW!piw?Hv7bz3`NMN6-Uu_uU;adgDvM!G zbouMkadhFcKaA;anyBYPF40)(mrDLXuy0xS+gugiO^fm4``{m1#Yls%9c0M{A+`qc zO*WAWo><w)aeL}$vv*!o_Z4FY-07m=)Zb%YQ^;1io$;4&Vx=j$qBdw%5?-B|!Le6m zKD?uHIZ<fDsnQ+Wj&J88T^JWZ%cfcIoO#w(E$C7os_z9i374VP&Iz%gO6woX_k>&| zmhTt6PZBg66CDMdlUC7@X8c0MM5mIaB1*1O8~xVnoSA7v_v<AVbQmQ+2r4>E;-xd| zYmCVUlgCZ46$GbB%i&njAMT5tzeF&scGCMKlAL?rOtIs!{MffxP110bz6*g3m+2fX z8MQ`RDm3w+$wIU=b!BW*-bwm6G+!eM&cWS5iU!#AO&M;Gkmzm-`w!Q4yR)k43q)_V z33QlMU;oM%DQz^GnjCr|tgg>J0^qeh-Up;?-Hq`TuTAx?cbO>-y)@OxEDW5^E)}|z z3+3D;V!Dkm<ME6GPm`bgk*Llr4f*r;>`kG?tS5GZK(r@6MVZAhu0Y{_P*uNC&wihn zcWn^ANE*sI;LAClq_By0bZNqdKQtR-h&Yx%f<da3m*sD?_sf>;?>l{rvV={8W&B<# zS&kP>&l&0;(44C2q|foOcdhyVFjj2v>F$GH$6P*E>CjkT3;S(&{aVs(h(k|S8Gja1 zJ2o)62eXM+FVd=3K|f^wOy4Vc5>Yf<V?<TH?!NO&#SOFKh;e___a~*P^M0U{^Z7pv zz0p;_`gIkL!Mh1Rpe7U9eX=UWH|C=Ev1f~kuOk){x|9jyhiOnoo_O&7PtngQLAAOS zKeGWiS&)dA-0Y5}1tz@JukYUR=2ZCy+_O`Y?ka)l0tXTnpO}7fCF6_t!ay#tQH-94 zV{i;Fy%WPtWTr8HPyuzgKJK`=&B7gu!8~I^x}EL&246YyU~E^B$c7+IrAB*2F(HPl z*W+Hq@~<Q_K5`UK#Amfz@YTH2rzY<!Kgb5@^KaEAU45H{Keu_EK-NNK`&nPd<sU}w zj9JHP5<Hol5CA(YE7o;o{YAu6RVqy}VZwH1hcv(NCxh$i0^Nh9r<YqO_SwPUebTsI zRMs8xEKN^9IX*nM+}L{j8oTXzF8dn_YAG$*`3I-xG5{=hj*mpH9%0f1hD!p1yGE_w zx0yNI4sZ;V4Q^?^%#-}|bSuu}RyNSYHjl5hdqrhFxVbV6;sE)RUjnfJ3TTH6WrMTq zU0pu!QHtSP&t>flz6J?tp$xvNx$C(_c0F-<e2tHDt(!UY+|X<ZJ%j-+oI3MklOYrN z0v*J;z`=9U8Z6nsAB*c5$^40*m6!c%w5v{@e3kk$?ccEhk{njsJFG1dFS`;YFx_6? zZyAg*$$wq(co}cdyV$l+(PR2ItI~^__>7#=r)~kA*fiBk#=PoC(ww-ZB(fh@XTLW8 z#ETR1^Gb~tZNw$AmpPFTzdU$k%0ZE7-peL9O5LlLuLj+GXRn9*4fU{73ka;DHAwI) z<2MQdz6MoBy>KLDBttt2ODnw`tkFgOVcmNi(Ol(H%hQW(PbIp{QoGAC<xlOJmY->S z`DzVIuXmW3r_m#>byg1Ah=3TK(*Hew^Ns%(9pVie+iBHjA7;9@%OQT$br@*qz`LN| zhGDq2X*Zd0U`hvXx8$30LXfO^bWMYg)xhCXU&TtdQw;3INA;^h{!>t#Iw1+e^@HuJ z`{Cw`n^>$Xk6(j20XY-ZEtU!<LBV&AJ9?|(W#b-4eELmy-il3ur;Q6h0Lzyh@<xBx z4y~~eRrI2-^yl&5hKIF@db-L60vY-vX3paJamz#_)s>by+**a@yFT#*PDMo(Zf11- z3!*o-ybgGX&+luh9SwXSV;mXqZPLqLGXVASh|nva`eff~Ze{UyM2xR|;@l&LAYrt{ zfWq@^ZXPC+36KS)EvCDStMBanUDLjjQ^n~vt4pLUp)GERUY$;KjgF;8Qa#~Xlvkz| zG1L2>1wQtS1sV*yyjjcRjd4f$M3KDxz(WTBUeP&!0NLhdmcz$^&4C>ZFd&(9VsnGM z;f<8W4YGmvGfYs?@p($LOwXXe5q&$z-ptX*G>gG5;CV0=V}jSpWqioFkqax}JY8f} z3!TE3{8ZPq?!$HA3!krnvLo9+zq?E|I&I!%|GYzg90OJVd(c-Lc4FLm`hfa_CgFBj zFZ}O;)#rh0{@bul5bysSbZJMS+kn*2=Re4;|0El@CeOeBja{{GXlwlW|Nc#}<i878 z{nzZV_{4DV|Giu%FZ+LQgPzU2+lQ{>rO@^D^~S@;U6ucB&Gm)VANn<9CpB>!Z}NX` z@c-V|e<%EZ2cD~On|J^JsXuJ~_xeZ>KKh=%{_hpHXJTdkpMRrMYvh#tph1`K80`K8 zU7~3wvVsxWE=LW{q@Y%9+$Q4Jr#R!+>{ya`*`+rz-wDj?uHhe(ALF5a1pLBdR-9al zUi>I>wl;oBd^&l8XQS-(0;>e>b!{WVS(|2ipDfwdKYoSl-P#r9WtCx1)oJDeuZv$T zfu`nXkLiAXapmuuEgfsbc1iMhmGu$dN|ZSzebRz{w<TIUvdy1Sue=}4+vxgCQTf#c zE(HEu(ZK&ma-;}$BvJy;DF`A1)TJ3B+GszLlPc~}e$WDIFrcm#NI0=y%U<xp99!OU zNHf3F)LRR~YS4qdE%N{_EQZ&b4Bs#pFSgM}FR!|1e^SJ5s0S|A7|KqDrwy*0ud;pL z6{yqN1Ze-m=($YE`TTgMze3<WPEQ+Axs@Y2I=u*cLS5{Ui(Za9_7mX-LaiiQbtmsE z^zPWpI)QcryXj@WF5Rz-e3Uye2;S6y97emd3~7~ggszyf=}oe=GJM&59pPRJ+%goo z_%HS_yd$55*Bc4gy;qSyhi49VPr2(gykk~jtgfk+*|DR@-?B+d%46h^3{SUy@q&*q z)^m_8UIReNtm7j{O&<%7eLo3$1P3kWnufzdN;!zMbv(<L-ZDfw9Rl4cJxCwSdDd%f znNFy?)WUSsQ79BNkQ%YGhbV2-#MDBnmEo5W8ZMfdr{&Gzn)4eew->}yseypF&2H@$ zW4nYR*}R1NyvRUW2%AWbY*j26#k!c{%7a_;+Sl(-@?uTi9i=0=Ujz;n&A1WfkYk!h zxKHbBVnS@sR^LC2RIDA4zfmp(bDRo|#0Pu5@0PSN*CptnyBl*jIO)BZvR@ci@?rQm z-BNk{DhjuI1WO!ju9vF`bu}<w)D0^Y`t#jD&RyhQqk&mt+M3$vijV30?nIZ@ia08= zE#ULotSNmbmXIFS(T-(2UM;2tS2ehtM4#GD)Ok^(>lb~>FbBOQaTl^Od628#!i6ea z*UpiD6^5t27B6y~_=_+-g$Ixej~SlA(QdAk@WG_vUT=v?<)~>J)j>xX{zA%45on=J z3HD3#LgYMt3qtAD98clkzoJ;IA@iIauZeD(shhX-cRh@z)-pVmJ(ixlrEu~8;Zi<* zE1aLr3zySYwCMa&O{C4jQW|NXuzq$Hz-BHD=Blc1UL}lr#dGaiAi^MaW`e3#%Ymka z^{J3n)UA)H>wneys^Xb^FeUmABcId;hR<qy1~_k>J(+O75v@NrTmfJwpWM$uH&33y z`2EePll^}E&b5kD>^4SoNfYeC!yA|EjN;`hG0nG(fNO*?R(2(KqwRZ$g7~Nd%oqFo z9*OeKyF$0WC+)V}?5Uh5Q^ACbILx+KQ|?TE(b89{zUv$T<ecvqO$Mi@sY)hGx;`aP zmr@*e4#MbOx(GA2$%4nYx`-m34X~?uN(U)zA>@gv7NuQT^0va#ZdtzhQ5v~)GJC`f zg+3zAu?TkvHb2cF%Rw}<PM^@-af%^HIvN|34>JY{nykXgkF<N?K}SuPg4@mg4?|5o zl!J4rbkJPF^Ylxrcqq?>+L!;TOZ+MQ4YigE0X13u$$i@bspM~pBoY)ezS&j7>GE1L zF*_x{v4*3P0R`D*zTf`Xc2pX3NX2#<Vv^eCcKU!y8?0T>J=inL(Zd$?Wq53joegTh z7x><Q8NQ9<QX$0XF+k{HYVj~70nfwwra6<UwQsDQ<yX!3!X*SDbGjRzb7H`jjM*`; zb}^`WyU4*Kq<6<*YZW@b+amVzQ2}_@r~=zKJG8VVcfowM^lEQ#vesWMsMB!YG_^Xk z2?Xa1K}ftD_&fN;QtcOM896&^Sau-)yIv;Kr<oSyZ!$=Bz%W2H*I2o}X`BvsUhE-D z%QN0=QGrwarx>cx`Zi@OWnvBf7F}hfifLP_oNO!uLc5$YX<}&BI)V2QL%8Oy-YvPJ zI%ijAf<@grBlmiBFGFFM{f(X9uDADY6CKZ#Uz!5Owelvr^2#s}DSEK#c2Lc?vqeGv z9R9AJ_sdOBh<bev=ytG|EWkj5A;%7>BL-Zj^im?G>REc8hMAY5Y7>~bogZ}>DRHJP zObs$%CWz9F7PU8jCY6caIgmF&*)QZfnSW^Gv$~vFNd$^|z2)U=z~jI}PcfYzx@$s@ ztg1=zbkpi<+RG~U8nJFlBA5(45l!{Rh#qJ3B<n@pDhG5i9M>jR>Fw3~MoJnh)owX# z-Arxn;27-|HETc!VJYHhL;bW%B6QcOEdy$goG$zTnv0%OV|QR-lu6|Z@jo@Z1t{@S z24xM3H>YxRE0&PYqdDx)Bc3WS+xfxCXV}BXWjH$N(UJ#r`Qj*9Bu`AZg4N_(-e4a0 zIwO*LlGI^@zLT3A#4eD>W<=+@r%7JkX)O{ZGIW__mhHhmS?`APbtvb4*yzSWzFn6s zX)#G;yPazqnl-9IPJ;CMSWdc(;jb&xNlLW}(Itq*A6+}HQ@2P&n$gRY7I!Zv)HbEE zkLZ827iLXRET>f5-m%XPT=%5dSMQRfONtdVpta}e*(PYvRH+|rr;;}WXSE8A%5;N; z_H+uJ-xjV*@P|W-ZAYQouFv;&ol5wLm#>KH5TU(>C~>=uEvn?zx}1Yi!SgSyn{ceE zlP8H=zRk<`TL`De%LoG_2VpR;zPTLh&*o={eRf-oJ4(?qU2nU_j}-^Y%bVeq{I?H_ zi`k9H)!ID^kK%>M+Kxtl6{+bf&jq#O&Gpgt2}k(RkkpFRKMXl}x}bnEtnj)bqWA-5 z$!S%&JTqAFj*brlcg)o{itpUCJW_WGs;#LI9OEm?P|rm-Lof3qKQtg-l$?Dk4q%EW zDIu^Q41Z698s}!$U~v^=07t@!2?A2UCfhB~yY&7}Ve>}o2jtjrq(GHKiESvj%oBL& z5)2vZwrp&0u*QBGQ$`+E7!s<-a2n^O2KeEs1tZeAMxSx-urO;Z6{fTO7L$+&Bp-yO zA7~uKk<?dO3JT*2eqxkgGLRflxxM~<3*f9Ls%QU!IVYgS)u#`rDOT^U6gWtyfbj+? zP{Z1n$-`^&9L@;(L3?Ld#FOp@j=&(z-};iAtN8v-r+`lBkT}|0T*Xn8wz7j(Q8Fe5 zVmr{oV#2#I25Qo<{cXHB93@#mrDCu6wS5i6|0EyOKIjaK5vKb>?R}0w^@G1m*8$g` zlVRx~sru6dR9?UJ+S?LI<=F$8N;ey}6DbKA4&TA}?K)Vj6^xTDRC<v5T%{G{8WuZJ zBMcyHcHuI_aG8KRpbRJSL(_x^eQd>(Oc(pg3z1IbabCE-S66&?nU1n@PcD5p-!b9O zlyjF6XG$C+AYU0xnb=c6YO3uE$Jy5r@LljSU4++=*r=A$Kxwr4Xu4JX(@v@BmJ6>< zyswJVBItsHMSNGC0th0Ibs2dEy{Qt8@J172QQ1fIUe(OJZCy)c&u>`t{1;F!pGjAA z)bJl^f5<=!EIC5dms^-WS$FLh=?O0u`Cor}`(lq>C(yH5m!EGX>qw#slMbPDQ1&Hl zsx>%UXT3wKGHiwo5d$3ElBD9hdz|Tb9Ip9@+mW~-@eiYyn%C~yQ@qL|^nv?OZ$<Mj zhp_~LR`l&=V7z|CL=^4a?<nl1#^A7lvz=W*<FtodS@K#p+{?8!|Km|w&CsylBB>`K z34sQ_Y2{#Sg7h)r>pjBvem8<mZ^P^T&_INvgu?t29(q?xJ|doE@pY^@e(%MxQZvL- zsW%<qvorSV*ThfPn?(t{28|pFJ?&em+r{(rA$T@Cnt~WkvFdz;61c)lBmB6X>^hao zyg~+AP`EocDu?uN=OqPm#Z1l9bWoo6r@t?Q$*0WsQc_k#+cA$RH}nTim+%eBF#KXc z{_J0i2)2p{(3bQ&;j}u;2pQWYBO@Gi9JgNI|3q`YDVq2d(JW2rE;5rms2A;m21p4O z0Zmcd<LtuE>Y;hjums<3Plp=s$&F9N>a}@#Rc6^lDucbyob^g$BDABC82X`+7g`%7 zO$b>hR@-Vp?E7t(9{?*s=kE7}uAtMTw@E>f`H4L{-!%FKdkXfC_>KqBnWO(OV!z!` zEp~(o))nk52NP<z_7hfKFg29;fE7%l8(mW0)c{Qwjn*ycqZX55+K7~MVAQ63!}~%% z8C1hnz$pj|h=7Co(HJ!yMAO~2P}R<R%UD;-$c?pvbX|@e?f%VUNZBVAO}GZ}VdU1Z zoCJDg;Rd1X>Mb}X62Q=!Y#k)skUbBEJFbRr&M|&s_9#U&dLeM5bWSSdHrSoYqagYR zLQL^(XVZ#>_G60$x6UE8il@8->ncBe98hQMg_14vG5rTVZYzMhKzEe=s;m$*(4As? z%t55jShxV)i)e3^{j>aBJ|wReVos=Xuk}B5H_gK~zeBmM44Zhi7*Wlu1V@bZ(rlYT z;_EE*&LvR3$4<jH2FTWox3h$RAbX<5zKwv`Lre-KL{j_8w#<}wf(VLwMbyAt!S8Mh zM?Xx=CD!f)(dkB-)TrwoG_bfOmR;pVQ?p?3%FY)eGPK!P@X9*TNiH>d305HZJ@tk6 zXWbF;ozAYeo(!VGZeu(=Y`jeZse7~_(kJ#(eU5)~I7un~K%vXnE{<rSlgZeTPA=); z62!Kqj2B&e&y9D)A0%?<(LfXF_<r$aq0q5jJPyjc&d%`PoGjM=v1k1gE7=+{K6)V` z)KCujCNE8w#cuc{cPa;aEnG6uz|7SziW$Z}BCu+Yw3wU*ioyBg^SKqcqvUqz6&PHZ zvxqB#)dU=MN(Xt5g&h#16st(HVcf6&O54Rej#8;y*bPF~WMr7%M9ZUAXrOzMe$Uf+ z5b~YxS?b`~{K+F<yy7Luk1>vPg-!&3N#TBRzLbslJguLW&lKn*FJk^-097)^OD|$f z?AG*KZ0P5%_AS5uVXI9AgN)3d_=t+^eG$X5(yP`d2JY)uak0Dy@7QD?(^Atri;;4G zxNEN1QA9Fq7OHJHH5Sc3L@NJt2E9(NX7g6T<W*tHj6PECj3Ku~WI&=y#as#I{ku4; z-+g=nPkO3UruZ|SN@8&kT)3wK<Tq3%r1;s|^)p;5I_hkS%Nb`q;}+g!$tn$Yg{}J# ztgHQwGAi>PB%r7<tZ}R*5qfn<IhU-D6EXH9M09~~2xL6es6oWNFirI<SHu-i2Jzmh z=SC^yr!Gi<m@>G_{)EemGJ;hM<bQ$Xjn>V$i8(6itxXE0c`eUy&EcgV81qvKvTJy7 z(|?I1j}kr$ox5vYkMg{C1y*KeGx89#=MdOU-^#C7RGh!0I!7nRV{qS^A1qS43D#9e zS)Aa|n<`K>KH|FvPENyf#Z`|wAryNWa94}OZBbNddnM_ZVH2QEy-?v#n(5^8wtdL` zRNGCtZ?eaUWBe1R`-G37^}3nnK@;~Q$uDXa!+WyQ4gGR4{UG`;sroYeo8ABHoUBnr zCCA#<*eQv8!P3(=$qh;}r<>OY;pk<qw(RVw<mFM6PNR~9gt76+0i-l(Ff(+yt0%8> zhXySM+V<>FW?}wG2+TAP4t>ilK>e246qr?~M$7nC@yCL1qr4EN(0aQy70TAWAD2X_ zgRz<9)99|SvOb}!kY1W9rwuFZ;4x@XJMi{twC{R|07o`tLO4dVQkSFbbs!FJR-BH? zh1&Y(*|642)}IgfcepW)|1efJPd{-|GTU16>?~s)*|saWbPX8HK&I2;f7Oz{SCI^< zB(Q$Zk>jMRucDjm6KwFyY~d%0D4QXwCRSt&MLR5PRbpi!;CPDfPuyyH9sRP0UsQ`r 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�tJJ92+j4SA-4j!clz~d*XfUWAHIJ8 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%0AmjTp#^Gi1yvn7Okhq*0OL2!FqBhF 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ǢSH!d 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%0Ah3pf4dnXY8&i3cZ4x0gXl1kA@=_Oc!i?rve=S= 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 literal 0 HcmV?d00001 From e79599b96946ab0027efbf2f9609a7a4701c0327 Mon Sep 17 00:00:00 2001 From: Micz Flor <micz.flor@web.de> Date: Thu, 31 Dec 2020 17:22:53 +0100 Subject: [PATCH 032/206] 2021 calendar --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 58c9e6067..91517b157 100755 --- a/README.md +++ b/README.md @@ -10,10 +10,12 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podc ## The Phoniebox Calendar 2021 is here!!! -Another bunch of wonderful designs! 20201 is the third Phoniebox calendar. If you are interested, you can see the [2019 and 2020 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). You can [download the printable PDF here](https://mi.cz/static/2021-Phoniebox-Calendar.pdf). +Another bunch of wonderful designs! 2021 is the third Phoniebox calendar. If you are interested, you can see the [2019 and 2020 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). Download [the printable PDF of 2021 here](https://mi.cz/static/2021-Phoniebox-Calendar.pdf).  +The year 2020 also has a clear *:star: community hero :star:*: @s-martin has been doing outstanding work for the Phoniebox community:sparkles:. Thanks to you and may 2021 be a wonderful year for you. + ## Important updates / news * **Gitter Community** we got ourselves a gitter community; chat us up at https://gitter.im/phoniebox From 5d4a1eb93438c60378239d87882a9d3677ba6a96 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Fri, 1 Jan 2021 10:25:53 +0100 Subject: [PATCH 033/206] Added stop on removal functionality example (#1209) See #1049 --- .../gpio_control/example_configs/gpio_settings.ini | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/components/gpio_control/example_configs/gpio_settings.ini b/components/gpio_control/example_configs/gpio_settings.ini index 87d786bcb..8a2176468 100755 --- a/components/gpio_control/example_configs/gpio_settings.ini +++ b/components/gpio_control/example_configs/gpio_settings.ini @@ -89,4 +89,11 @@ Type: Button Pin: 21 pull_up: True hold_time: 0.3 -functionCall: functionCallPlayerPauseForce \ No newline at end of file +functionCall: functionCallPlayerPauseForce + +[RFIDDevice] +enable: True +Type: Button +Pin: 21 +pull_up: True +functionCall: functionCallPlayerStop From ca6a4786cd217fb9a08be9d6c6806d2fc0f99994 Mon Sep 17 00:00:00 2001 From: jeripeierSBB <jeremias.peier@sbb.ch> Date: Fri, 1 Jan 2021 10:58:24 +0100 Subject: [PATCH 034/206] feat: GPIO Buttons over USB Encoder (#1249) * feat: Buttons USB Encoder Closes MiczFlor#1156 * change usb to uppercase USB --- components/controls/__init__.py | 0 .../controls/buttons_usb_encoder/README.md | 19 ++++++ .../controls/buttons_usb_encoder/__init__.py | 0 .../buttons-usb-encoder.jpg | Bin 0 -> 24462 bytes .../buttons_usb_encoder.py | 30 ++++++++++ .../io_buttons_usb_encoder.py | 56 ++++++++++++++++++ .../map_buttons_usb_encoder.py | 43 ++++++++++++++ ...oniebox-buttons-usb-encoder.service.sample | 14 +++++ .../register_buttons_usb_encoder.py | 19 ++++++ .../setup-buttons-usb-encoder.sh | 36 +++++++++++ components/gpio_control/function_calls.py | 5 +- 11 files changed, 220 insertions(+), 2 deletions(-) create mode 100644 components/controls/__init__.py create mode 100644 components/controls/buttons_usb_encoder/README.md create mode 100644 components/controls/buttons_usb_encoder/__init__.py create mode 100644 components/controls/buttons_usb_encoder/buttons-usb-encoder.jpg create mode 100644 components/controls/buttons_usb_encoder/buttons_usb_encoder.py create mode 100644 components/controls/buttons_usb_encoder/io_buttons_usb_encoder.py create mode 100644 components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py create mode 100755 components/controls/buttons_usb_encoder/phoniebox-buttons-usb-encoder.service.sample create mode 100644 components/controls/buttons_usb_encoder/register_buttons_usb_encoder.py create mode 100755 components/controls/buttons_usb_encoder/setup-buttons-usb-encoder.sh diff --git a/components/controls/__init__.py b/components/controls/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/components/controls/buttons_usb_encoder/README.md b/components/controls/buttons_usb_encoder/README.md new file mode 100644 index 000000000..ff501f1ec --- /dev/null +++ b/components/controls/buttons_usb_encoder/README.md @@ -0,0 +1,19 @@ +# Buttons USB Encoder + +Taken from [issue 1156](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/1156). + +Supports functionality of buttons which are connected via USB Encoder. The USB Encoder is the easy solution for anyone +who doesn't want to solder, but also wants arcade buttons. + +Tested Devices: + +* [IGames Zero Verzögerung USB Encoder](https://www.amazon.de/gp/product/B01N0GZQZI) +* [EG STARTS Nullverzögerung USB Encoder](https://www.amazon.de/gp/product/B075DFNK24) + +## Usage + +1. Plug in your USB Encoder. You don't need to install any drivers. After plugging in, the USB encoder acts like an + input device. +2. Run the script `setup-buttons-usb-encoder.sh` to set up your USB Encoder (choose the device and map the buttons). + + diff --git a/components/controls/buttons_usb_encoder/__init__.py b/components/controls/buttons_usb_encoder/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/components/controls/buttons_usb_encoder/buttons-usb-encoder.jpg b/components/controls/buttons_usb_encoder/buttons-usb-encoder.jpg new file mode 100644 index 0000000000000000000000000000000000000000..45042654c3b34f835c6515571f5d221dd3e9dfb2 GIT binary patch literal 24462 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 WNzVW56Hj)8|InQO-y668ockY7Yh@Jx literal 0 HcmV?d00001 diff --git a/components/controls/buttons_usb_encoder/buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/buttons_usb_encoder.py new file mode 100644 index 000000000..b832f343a --- /dev/null +++ b/components/controls/buttons_usb_encoder/buttons_usb_encoder.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 + +import sys + +sys.path.append(".") + +import logging +from evdev import categorize, ecodes, KeyEvent +import components.gpio_control.function_calls +from io_buttons_usb_encoder import button_map, current_device + +logger = logging.getLogger(__name__) + +try: + button_map = button_map() + for event in current_device().read_loop(): + if event.type == ecodes.EV_KEY: + keyevent = categorize(event) + if keyevent.keystate == KeyEvent.key_down: + try: + function_name = button_map[keyevent.keycode] + try: + getattr(components.gpio_control.function_calls, function_name)() + except: + logger.warning( + "Function " + function_name + " not found in function_calls.py (mapped from button: " + keyevent.keycode + ")") + except KeyError: + logger.warning("Button " + keyevent.keycode + " not mapped to any function.") +except: + logger.error("An error with Buttons USB Encoder occurred.") diff --git a/components/controls/buttons_usb_encoder/io_buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/io_buttons_usb_encoder.py new file mode 100644 index 000000000..c20e5c366 --- /dev/null +++ b/components/controls/buttons_usb_encoder/io_buttons_usb_encoder.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python3 + +import os.path +import sys +import json + +from evdev import InputDevice, list_devices + +path = os.path.dirname(os.path.realpath(__file__)) +device_name_path = path + '/deviceName.txt' +button_map_path = path + '/buttonMap.json' + + +def all_devices(): + return [InputDevice(fn) for fn in list_devices()] + + +def current_device(): + if not os.path.isfile(device_name_path): + sys.exit('Please run register_buttons_usb_encoder.py first') + else: + with open(device_name_path, 'r') as f: + device_name = f.read() + devices = all_devices() + for device in devices: + if device.name == device_name: + _current_device = device + break + try: + _current_device + except: + sys.exit('Could not find the device %s\n. Make sure it is connected' % device_name) + return _current_device + + +def write_current_device(name): + with open(device_name_path, 'w') as f: + f.write(name) + f.close() + + +def button_map(): + if not os.path.isfile(button_map_path): + sys.exit('Please run map_buttons_usb_encoder.py first') + else: + with open(button_map_path, 'r') as json_file: + button_map = json.load(json_file) + if (len(button_map) == 0): + sys.exit("No buttons mapped to a function") + return button_map + + +def write_button_map(button_map): + with open(button_map_path, 'w') as fp: + json.dump(button_map, fp) + fp.close() diff --git a/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py new file mode 100644 index 000000000..5b94ebedc --- /dev/null +++ b/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python3 + +import sys + +sys.path.append(".") + +from evdev import categorize, ecodes, KeyEvent +from io_buttons_usb_encoder import current_device, write_button_map +import components.gpio_control.function_calls + +try: + functions = list( + filter(lambda function_name: function_name.startswith("functionCall"), + dir(components.gpio_control.function_calls))) + button_map = {} + + print("") + print("During the next step you can map your buttons to one of the following available functions:") + print(list(map(lambda function_name: function_name.replace("functionCall", ""), functions))) + print("") + if input('Ready to continue? (y/n)') != 'y': + sys.exit("Aborted mapping buttons to functions") + + for function_name in functions: + function_name_short = function_name.replace("functionCall", "") + print("") + print("Press button to map " + function_name_short + " or press ctrl+c to skip this function") + try: + for event in current_device().read_loop(): + if event.type == ecodes.EV_KEY: + keyevent = categorize(event) + if keyevent.keystate == KeyEvent.key_down: + button_map[keyevent.keycode] = function_name + print("Button " + keyevent.keycode + " is now mapped to " + function_name_short) + break + except KeyboardInterrupt: + continue + if len(button_map) == 0: + print("Warning: No buttons mapped to a function!") + else: + write_button_map(button_map) +except KeyboardInterrupt: + sys.exit("Aborted mapping buttons to functions") diff --git a/components/controls/buttons_usb_encoder/phoniebox-buttons-usb-encoder.service.sample b/components/controls/buttons_usb_encoder/phoniebox-buttons-usb-encoder.service.sample new file mode 100755 index 000000000..c885fe811 --- /dev/null +++ b/components/controls/buttons_usb_encoder/phoniebox-buttons-usb-encoder.service.sample @@ -0,0 +1,14 @@ +[Unit] +Description=Phoniebox Buttons USB Encoder Service +After=network.target iptables.service firewalld.service + +[Service] +User=pi +Group=pi +Restart=always +RestartSec=10 +WorkingDirectory=/home/pi/RPi-Jukebox-RFID +ExecStart=/home/pi/RPi-Jukebox-RFID/components/controls/buttons_usb_encoder/buttons_usb_encoder.py + +[Install] +WantedBy=multi-user.target diff --git a/components/controls/buttons_usb_encoder/register_buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/register_buttons_usb_encoder.py new file mode 100644 index 000000000..7c9d9dbf8 --- /dev/null +++ b/components/controls/buttons_usb_encoder/register_buttons_usb_encoder.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python3 +import sys + +from io_buttons_usb_encoder import all_devices, write_current_device + +try: + devices = all_devices() + i = 0 + print("") + print("Choose the Buttons USB Encoder device from the list") + for dev in devices: + print(i, dev.name) + i += 1 + + dev_id = int(input('Device Number: ')) + + write_current_device(devices[dev_id].name) +except KeyboardInterrupt: + sys.exit("Aborted to register Buttons USB Encoder.") diff --git a/components/controls/buttons_usb_encoder/setup-buttons-usb-encoder.sh b/components/controls/buttons_usb_encoder/setup-buttons-usb-encoder.sh new file mode 100755 index 000000000..7a827fdfc --- /dev/null +++ b/components/controls/buttons_usb_encoder/setup-buttons-usb-encoder.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash + +HOME_DIR="/home/pi" +JUKEBOX_HOME_DIR="${HOME_DIR}/RPi-Jukebox-RFID" +BUTTONS_USB_ENCODER_DIR="${JUKEBOX_HOME_DIR}/components/controls/buttons_usb_encoder" + +question() { + local question=$1 + read -p "${question} (y/n)? " choice + case "$choice" in + y|Y ) ;; + n|N ) exit 0;; + * ) echo "Error: invalid" ; question ${question};; + esac +} + +printf "Please make sure that the Buttons USB Encoder and the buttons are connected before continuing...\n" +question "Continue" + +# make files executable +sudo chmod +x "${BUTTONS_USB_ENCODER_DIR}"/register_buttons_usb_encoder.py +sudo chmod +x "${BUTTONS_USB_ENCODER_DIR}"/buttons_usb_encoder.py +sudo chmod +x "${BUTTONS_USB_ENCODER_DIR}"/map_buttons_usb_encoder.py + +# choose buttons usb encoder device +"${BUTTONS_USB_ENCODER_DIR}"/register_buttons_usb_encoder.py + +# setup buttons +"${BUTTONS_USB_ENCODER_DIR}"/map_buttons_usb_encoder.py + +printf "\nStart phoniebox-buttons-usb-encoder service...\n" +sudo cp -v "${BUTTONS_USB_ENCODER_DIR}"/phoniebox-buttons-usb-encoder.service.sample /etc/systemd/system/phoniebox-buttons-usb-encoder.service +sudo systemctl start phoniebox-buttons-usb-encoder.service +sudo systemctl enable phoniebox-buttons-usb-encoder.service + +printf "Done.\n" diff --git a/components/gpio_control/function_calls.py b/components/gpio_control/function_calls.py index 567c38f23..c4918b590 100644 --- a/components/gpio_control/function_calls.py +++ b/components/gpio_control/function_calls.py @@ -1,11 +1,12 @@ import logging import sys from subprocess import Popen as function_call +import os +import pathlib logger = logging.getLogger(__name__) -playout_control = "../../scripts/playout_controls.sh" - +playout_control = os.path.abspath(os.path.join(pathlib.Path(__file__).parent.absolute(), "../../scripts/playout_controls.sh")) def functionCallShutdown(*args): function_call("{command} -c=shutdown".format(command=playout_control), shell=True) From 6393a42bfb469a457dfc4e286c6ea31a36c02a29 Mon Sep 17 00:00:00 2001 From: Dominik Ach <nico.ach@netzbegrueng.de> Date: Fri, 1 Jan 2021 11:58:03 +0100 Subject: [PATCH 035/206] added support for pc/sc readers --- scripts/Reader.py.pcsc | 70 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100755 scripts/Reader.py.pcsc diff --git a/scripts/Reader.py.pcsc b/scripts/Reader.py.pcsc new file mode 100755 index 000000000..795b03206 --- /dev/null +++ b/scripts/Reader.py.pcsc @@ -0,0 +1,70 @@ +#!/usr/bin/env python3 + +# Reader.py supporting PC/SC-readers +# Uses the first available reader +# Requirements +# apt install pcscd python3-pyscard + +from smartcard.scard import * +from smartcard.util import toHexString +from smartcard.util import * + +class Reader: + + reader = None + + def __init__(self): + self.reader = self + + def readCard(self): + + response = [] + + try: + hresult, hcontext = SCardEstablishContext(SCARD_SCOPE_USER) + if hresult != SCARD_S_SUCCESS: + raise error( + 'Failed to establish context: ' + \ + SCardGetErrorMessage(hresult)) + + try: + hresult, readers = SCardListReaders(hcontext, []) + if hresult != SCARD_S_SUCCESS: + raise error( + 'Failed to list readers: ' + \ + SCardGetErrorMessage(hresult)) + + readerstates = [] + for i in range(len(readers)): + readerstates += [(readers[i], SCARD_STATE_UNAWARE)] + + hresult, newstates = SCardGetStatusChange(hcontext, 0, readerstates) + + hresult, newstates = SCardGetStatusChange( + hcontext, + INFINITE, + newstates) + + reader = readers[0] + + hresult, hcard, dwActiveProtocol = SCardConnect( + hcontext, + reader, + SCARD_SHARE_SHARED, + SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1) + + hresult, response = SCardTransmit(hcard,dwActiveProtocol,[0xFF,0xCA,0x00,0x00,0x00]) + + + finally: + hresult = SCardReleaseContext(hcontext) + if hresult != SCARD_S_SUCCESS: + raise error( + 'Failed to release context: ' + \ + SCardGetErrorMessage(hresult)) + + return(toHexString(response, PACK)) + + except error as e: + print(e) + From 657f87f25f6f3036aec2a4fcef0569089ba2fc49 Mon Sep 17 00:00:00 2001 From: Micz Flor <micz.flor@web.de> Date: Fri, 1 Jan 2021 13:18:04 +0100 Subject: [PATCH 036/206] Web App settings for swipe or place rifd (#1130) * web app settings for #1122 * web app settings for #1122 * Include @toqqi's review comments Co-authored-by: s-martin <s-martin@users.noreply.github.com> --- htdocs/inc.header.php | 5 +- htdocs/inc.setPlayerBehaviourRFID.php | 75 +++++++++++++++++++++++++++ htdocs/lang/lang-en-UK.php | 6 +++ htdocs/settings.php | 16 ++++++ scripts/inc.writeGlobalConfig.sh | 15 ++++++ 5 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 htdocs/inc.setPlayerBehaviourRFID.php diff --git a/htdocs/inc.header.php b/htdocs/inc.header.php index 59898adda..8d4a0b3b9 100755 --- a/htdocs/inc.header.php +++ b/htdocs/inc.header.php @@ -148,11 +148,14 @@ function fileGetContentOrDefault($filename, $defaultValue) // read the global conf file $globalConf = parse_ini_file($conf['settings_abs']."/global.conf", $process_sections = null); -//print "<pre>"; print_r($globalConf); print "</pre>"; //??? +if ($debug == "true") { + print "<pre>Array globalConf"; print_r($globalConf); print "</pre>"; //??? +} // assign the values from the global conf file to the vars in PHP $Audio_Folders_Path = $globalConf['AUDIOFOLDERSPATH']; $Playlists_Folders_Path = $globalConf['PLAYLISTSFOLDERPATH']; +$Swipe_or_Place = $globalConf['SWIPEORPLACE']; $Second_Swipe = $globalConf['SECONDSWIPE']; $Second_Swipe_Pause = $globalConf['SECONDSWIPEPAUSE']; $Second_Swipe_Pause_Controls = $globalConf['SECONDSWIPEPAUSECONTROLS']; diff --git a/htdocs/inc.setPlayerBehaviourRFID.php b/htdocs/inc.setPlayerBehaviourRFID.php new file mode 100644 index 000000000..180efd812 --- /dev/null +++ b/htdocs/inc.setPlayerBehaviourRFID.php @@ -0,0 +1,75 @@ + +<?php +/* +* GLOBAL settings for behaviour of placing or swiping RFID cards to +* control player play and stop +* SWIPENOTPLACE = Swiping starts the player +* PLACENOTSWIPE = Placing the card starts player, removal stops it +*/ + +if(isset($_POST['rfidSwipePlace']) && trim($_POST['rfidSwipePlace']) != "") { + /* + * make sure it is a value we can accept, do not just write whatever is in the POST + */ + if(trim($_POST['rfidSwipePlace']) == "SWIPENOTPLACE") { + $Swipe_or_Place = "SWIPENOTPLACE"; + $exec = 'echo "'.$Swipe_or_Place.'" > '.$conf['settings_abs'].'/Swipe_or_Place'; + if($debug == "true") { + print $exec; print "<br>Swipe_or_Place: ".$Swipe_or_Place; + } + exec($exec); + } elseif(trim($_POST['rfidSwipePlace']) == "PLACENOTSWIPE") { + $Swipe_or_Place = "PLACENOTSWIPE"; + $exec = 'echo "'.$Swipe_or_Place.'" > '.$conf['settings_abs'].'/Swipe_or_Place'; + if($debug == "true") { + print $exec; print "<br>Swipe_or_Place: ".$Swipe_or_Place; + } + exec($exec); + } + // execute shell to create config file + $exec = "sudo ".$conf['scripts_abs']."/inc.writeGlobalConfig.sh"; + // execute shell to restart RFID Reader Service + $exec = "sudo systemctl restart phoniebox-rfid-reader.service"; + if($debug == "true") { + print $exec; + } + exec($exec); +} else { + if($debug == "true") { + print "<br>Swipe_or_Place: ".$Swipe_or_Place; + } +} +?> + + <!-- input-group --> + <div class="col-md-6 col-sm-6"> + <h4><?php print $lang['settingsPlayoutBehaviourCardLabel']; ?></h4> + + <form name='swipeplace' method='post' action='<?php print $_SERVER['PHP_SELF']; ?>'> + <div class="input-group my-group"> + <select id="rfidSwipePlace" name="rfidSwipePlace" class="form-control"> +<?php + print " + <option value='SWIPENOTPLACE'"; + if($Swipe_or_Place == "SWIPENOTPLACE") { + print " selected"; + } + print ">".$lang['settingsPlayoutBehaviourCardSwipe']; + print "</option>\n"; + print " + <option value='PLACENOTSWIPE'"; + if($Swipe_or_Place == "PLACENOTSWIPE") { + print " selected"; + } + print ">".$lang['settingsPlayoutBehaviourCardPlace']; + print "</option>\n"; +?> + </select> + <span class="input-group-btn"> + <input type='submit' class="btn btn-default" name='submit' value='<?php print $lang['globalSet']; ?>'/> + </span> + </div> + </form> + <span class="help-block"><?php print $lang['settingsPlayoutBehaviourCardHelp']; ?></span> + </div> + <!-- /input-group --> diff --git a/htdocs/lang/lang-en-UK.php b/htdocs/lang/lang-en-UK.php index d0144c5e0..ee208e498 100755 --- a/htdocs/lang/lang-en-UK.php +++ b/htdocs/lang/lang-en-UK.php @@ -205,6 +205,12 @@ /* * Settings */ +$lang['settingsPlayoutBehaviourCard'] = "General RFID player control"; +$lang['settingsPlayoutBehaviourCardLabel'] = "Swipe or place the card?"; +$lang['settingsPlayoutBehaviourCardSwipe'] = "Swiping starts the player."; +$lang['settingsPlayoutBehaviourCardPlace'] = "Placing the card starts player, removal stops it."; +$lang['settingsPlayoutBehaviourCardHelp'] = "If you chose 'Place card', this affects the 'Second Swipe' options which can be selected below."; + $lang['settingsVolChangePercent'] = "Vol. Change %"; $lang['settingsMaxVol'] = "Maximum Volume"; $lang['settingsStartupVol'] = "Startup Volume"; diff --git a/htdocs/settings.php b/htdocs/settings.php index 51a0fa4a2..13a0b9224 100755 --- a/htdocs/settings.php +++ b/htdocs/settings.php @@ -97,6 +97,22 @@ <div class="row"> <?php include("inc.setLanguage.php"); +?> + </div><!-- / .row --> + </div><!-- /.panel-body --> + +<div class="panel-group"> + <div class="panel panel-default"> + <div class="panel-heading"> + <h4 class="panel-title"><a name="language"></a> + <i class='mdi mdi-emoticon'></i> <?php print $lang['settingsPlayoutBehaviourCard']; ?> + </h4> + </div><!-- /.panel-heading --> + + <div class="panel-body"> + <div class="row"> +<?php +include("inc.setPlayerBehaviourRFID.php"); ?> </div><!-- / .row --> </div><!-- /.panel-body --> diff --git a/scripts/inc.writeGlobalConfig.sh b/scripts/inc.writeGlobalConfig.sh index 1f98bc54c..88909e0ee 100755 --- a/scripts/inc.writeGlobalConfig.sh +++ b/scripts/inc.writeGlobalConfig.sh @@ -64,6 +64,19 @@ fi # 2. then|or read value from file PLAYLISTSFOLDERPATH=`cat $PATHDATA/../settings/Playlists_Folders_Path` +############################################## +# General RFID player control SWIPE OR PLACE +# General decision on how the player operates +# SWIPENOTPLACE = Swiping starts the player +# PLACENOTSWIPE = Placing the card starts player, removal stops it +# 1. create a default if file does not exist +if [ ! -f $PATHDATA/../settings/Swipe_or_Place ]; then + echo "SWIPENOTPLACE" > $PATHDATA/../settings/Swipe_or_Place + chmod 777 $PATHDATA/../settings/Swipe_or_Place +fi +# 2. then|or read value from file +SWIPEORPLACE=`cat $PATHDATA/../settings/Swipe_or_Place` + ############################################## # Second swipe # What happens when the same card is swiped a second time? @@ -273,6 +286,7 @@ CMDSEEKBACK=`grep 'CMDSEEKBACK' $PATHDATA/../settings/rfid_trigger_play.conf|tai # AUDIOFOLDERSPATH # PLAYLISTSFOLDERPATH +# SWIPEORPLACE # SECONDSWIPE # SECONDSWIPEPAUSE # SECONDSWIPEPAUSECONTROLS @@ -305,6 +319,7 @@ CMDSEEKBACK=`grep 'CMDSEEKBACK' $PATHDATA/../settings/rfid_trigger_play.conf|tai rm "${PATHDATA}/../settings/global.conf" echo "AUDIOFOLDERSPATH=\"${AUDIOFOLDERSPATH}\"" >> "${PATHDATA}/../settings/global.conf" echo "PLAYLISTSFOLDERPATH=\"${PLAYLISTSFOLDERPATH}\"" >> "${PATHDATA}/../settings/global.conf" +echo "SWIPEORPLACE=\"${SWIPEORPLACE}\"" >> "${PATHDATA}/../settings/global.conf" echo "SECONDSWIPE=\"${SECONDSWIPE}\"" >> "${PATHDATA}/../settings/global.conf" echo "SECONDSWIPEPAUSE=\"${SECONDSWIPEPAUSE}\"" >> "${PATHDATA}/../settings/global.conf" echo "SECONDSWIPEPAUSECONTROLS=\"${SECONDSWIPEPAUSECONTROLS}\"" >> "${PATHDATA}/../settings/global.conf" From ce8e9ffc900cf66a5207c17145e2805796955c59 Mon Sep 17 00:00:00 2001 From: jeripeierSBB <jeremias.peier@sbb.ch> Date: Fri, 1 Jan 2021 14:18:17 +0100 Subject: [PATCH 037/206] fix: let function_calls.py work with python 3.5 (#1253) --- components/gpio_control/function_calls.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/components/gpio_control/function_calls.py b/components/gpio_control/function_calls.py index c4918b590..b87f96b8b 100644 --- a/components/gpio_control/function_calls.py +++ b/components/gpio_control/function_calls.py @@ -6,7 +6,9 @@ logger = logging.getLogger(__name__) -playout_control = os.path.abspath(os.path.join(pathlib.Path(__file__).parent.absolute(), "../../scripts/playout_controls.sh")) +playout_control_relative_path = "../../scripts/playout_controls.sh" +function_calls_absolute_path = str(pathlib.Path(__file__).parent.absolute()) +playout_control = os.path.abspath(os.path.join(function_calls_absolute_path, playout_control_relative_path)) def functionCallShutdown(*args): function_call("{command} -c=shutdown".format(command=playout_control), shell=True) From f91097c9992cc3d619c1dd73d93b07e1081e50bd Mon Sep 17 00:00:00 2001 From: Florian Bachmann <834350+baflo@users.noreply.github.com> Date: Sat, 2 Jan 2021 09:55:39 +0100 Subject: [PATCH 038/206] Shortcuts volume commands of playout control (#1235) * Shortcuts volume commands of playout control * Moves debug control out of shorcutted block * Fixes indentation --- scripts/playout_controls.sh | 165 +++++++++++++++++++----------------- 1 file changed, 86 insertions(+), 79 deletions(-) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index 2c3224e58..3e8fc9592 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -104,89 +104,96 @@ VOLFILE=${PATHDATA}/../settings/Audio_Volume_Level if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo "VAR COMMAND: ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo "VAR VALUE: ${VALUE}" >> ${PATHDATA}/../logs/debug.log; fi +# Regex that declares commands for which the following code can be shortcut +# and we can immediately jump to the switch-case statement. Increases execution +# speed of these commands. +shortcutCommands="^(setvolume|volumedown|volumeup|mute)$" + +# Run the code from this block only, if the current command is not in "shortcutCommands" +if [[ ! "$COMMAND" =~ $shortcutCommands ]] +then + ENABLE_CHAPTERS_FOR_EXTENSIONS="mp4,m4a,m4b,m4r" + ENABLE_CHAPTERS_MIN_DURATION="600" + + function dbg { + if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then + echo "$1" >> ${PATHDATA}/../logs/debug.log; + fi + } + + function sec_to_ms() { + SECONDSPART="$(cut -d '.' -f 1 <<< "$1")" + MILLISECONDSPART="$(cut -d '.' -f 2 <<< "$1")" + MILLISECONDSPART_NORMALIZED="$(echo "$MILLISECONDSPART" | cut -c1-3 | sed 's/^0*//')" + + if [[ "" == "$SECONDSPART" ]]; then + SECONDSPART="0" + fi + + if [[ "" == "$MILLISECONDSPART_NORMALIZED" ]]; then + MILLISECONDSPART_NORMALIZED="0" + fi + echo "$((${SECONDSPART} * 1000 + ${MILLISECONDSPART_NORMALIZED}))" + } + + AUDIO_FOLDERS_PATH=$(cat "${PATHDATA}/../settings/Audio_Folders_Path") + + CURRENT_SONG_INFO=$(echo -e "currentsong\nclose" | nc -w 1 localhost 6600) + CURRENT_SONG_FILE=$(echo "$CURRENT_SONG_INFO" | grep -o -P '(?<=file: ).*') + CURRENT_SONG_FILE_ABS="${AUDIO_FOLDERS_PATH}/${CURRENT_SONG_FILE}" + dbg "current file: $CURRENT_SONG_FILE_ABS" + + CURRENT_SONG_DIR="$(dirname -- "$CURRENT_SONG_FILE_ABS")" + CURRENT_SONG_BASENAME="$(basename -- "${CURRENT_SONG_FILE_ABS}")" + CURRENT_SONG_FILE_EXT="${CURRENT_SONG_BASENAME##*.}" + CURRENT_SONG_ELAPSED=$(echo -e "status\nclose" | nc -w 1 localhost 6600 | grep -o -P '(?<=elapsed: ).*') + CURRENT_SONG_DURATION=$(echo -e "status\nclose" | nc -w 1 localhost 6600 | grep -o -P '(?<=duration: ).*') + + CHAPTERS_FILE="${CURRENT_SONG_DIR}/${CURRENT_SONG_BASENAME%.*}.chapters.json" + dbg "chapters file: $CHAPTERS_FILE" + + if [ "$(grep -wo "$CURRENT_SONG_FILE_EXT" <<< "$ENABLE_CHAPTERS_FOR_EXTENSIONS")" == "$CURRENT_SONG_FILE_EXT" ]; then + CHAPTER_SUPPORT_FOR_EXTENSION="1" + else + CHAPTER_SUPPORT_FOR_EXTENSION="0" + fi + dbg "chapters for extension enabled: $CHAPTER_SUPPORT_FOR_EXTENSION" + + + if [ "$(printf "${CURRENT_SONG_DURATION}\n${ENABLE_CHAPTERS_MIN_DURATION}\n" | sort -g | head -1)" == "${ENABLE_CHAPTERS_MIN_DURATION}" ]; then + CHAPTER_SUPPORT_FOR_DURATION="1" + else + CHAPTER_SUPPORT_FOR_DURATION="0" + fi + dbg "chapters for duration enabled: $CHAPTER_SUPPORT_FOR_DURATION" + + if [ "${CHAPTER_SUPPORT_FOR_EXTENSION}${CHAPTER_SUPPORT_FOR_DURATION}" == "11" ]; then + if ! [ -f "${CHAPTERS_FILE}" ]; then + CHAPTERS_COUNT="0" + dbg "chaptes file does not exist - export triggered" + ffprobe -i "${CURRENT_SONG_FILE_ABS}" -print_format json -show_chapters -loglevel error > "${CHAPTERS_FILE}" & + else + CHAPTERS_COUNT="$(grep '"id":' "${CHAPTERS_FILE}" | wc -l )" + dbg "chapters file does exist, chapter count: $CHAPTERS_COUNT" + fi -ENABLE_CHAPTERS_FOR_EXTENSIONS="mp4,m4a,m4b,m4r" -ENABLE_CHAPTERS_MIN_DURATION="600" - -function dbg { - if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then - echo "$1" >> ${PATHDATA}/../logs/debug.log; - fi -} - -function sec_to_ms() { - SECONDSPART="$(cut -d '.' -f 1 <<< "$1")" - MILLISECONDSPART="$(cut -d '.' -f 2 <<< "$1")" - MILLISECONDSPART_NORMALIZED="$(echo "$MILLISECONDSPART" | cut -c1-3 | sed 's/^0*//')" - - if [[ "" == "$SECONDSPART" ]]; then - SECONDSPART="0" - fi - - if [[ "" == "$MILLISECONDSPART_NORMALIZED" ]]; then - MILLISECONDSPART_NORMALIZED="0" - fi - echo "$((${SECONDSPART} * 1000 + ${MILLISECONDSPART_NORMALIZED}))" -} - -AUDIO_FOLDERS_PATH=$(cat "${PATHDATA}/../settings/Audio_Folders_Path") - -CURRENT_SONG_INFO=$(echo -e "currentsong\nclose" | nc -w 1 localhost 6600) -CURRENT_SONG_FILE=$(echo "$CURRENT_SONG_INFO" | grep -o -P '(?<=file: ).*') -CURRENT_SONG_FILE_ABS="${AUDIO_FOLDERS_PATH}/${CURRENT_SONG_FILE}" -dbg "current file: $CURRENT_SONG_FILE_ABS" - -CURRENT_SONG_DIR="$(dirname -- "$CURRENT_SONG_FILE_ABS")" -CURRENT_SONG_BASENAME="$(basename -- "${CURRENT_SONG_FILE_ABS}")" -CURRENT_SONG_FILE_EXT="${CURRENT_SONG_BASENAME##*.}" -CURRENT_SONG_ELAPSED=$(echo -e "status\nclose" | nc -w 1 localhost 6600 | grep -o -P '(?<=elapsed: ).*') -CURRENT_SONG_DURATION=$(echo -e "status\nclose" | nc -w 1 localhost 6600 | grep -o -P '(?<=duration: ).*') - -CHAPTERS_FILE="${CURRENT_SONG_DIR}/${CURRENT_SONG_BASENAME%.*}.chapters.json" -dbg "chapters file: $CHAPTERS_FILE" - -if [ "$(grep -wo "$CURRENT_SONG_FILE_EXT" <<< "$ENABLE_CHAPTERS_FOR_EXTENSIONS")" == "$CURRENT_SONG_FILE_EXT" ]; then - CHAPTER_SUPPORT_FOR_EXTENSION="1" -else - CHAPTER_SUPPORT_FOR_EXTENSION="0" -fi -dbg "chapters for extension enabled: $CHAPTER_SUPPORT_FOR_EXTENSION" + CHAPTER_START_TIMES="$( ( echo -e $CURRENT_SONG_ELAPSED & grep 'start_time' "$CHAPTERS_FILE" | cut -d '"' -f 4 | sed 's/000$//') | sort -V)" + ELAPSED_MATCH_CHAPTER_COUNT=$(grep "$CURRENT_SONG_ELAPSED" <<< "$CHAPTER_START_TIMES" | wc -l) + # elapsed and chapter start exactly match -> skip one line + if [ "$ELAPSED_MATCH_CHAPTER_COUNT" == "2" ]; then + PREV_CHAPTER_START=$(grep "$CURRENT_SONG_ELAPSED" -B 1 <<< "$CHAPTER_START_TIMES" | head -n1) + CURRENT_CHAPTER_START="$CURRENT_SONG_ELAPSED" + else + PREV_CHAPTER_START=$(grep "$CURRENT_SONG_ELAPSED" -B 2 <<< "$CHAPTER_START_TIMES" | head -n1) + CURRENT_CHAPTER_START=$(grep "$CURRENT_SONG_ELAPSED" -B 1 <<< "$CHAPTER_START_TIMES" | head -n1) + fi -if [ "$(printf "${CURRENT_SONG_DURATION}\n${ENABLE_CHAPTERS_MIN_DURATION}\n" | sort -g | head -1)" == "${ENABLE_CHAPTERS_MIN_DURATION}" ]; then - CHAPTER_SUPPORT_FOR_DURATION="1" -else - CHAPTER_SUPPORT_FOR_DURATION="0" -fi -dbg "chapters for duration enabled: $CHAPTER_SUPPORT_FOR_DURATION" - -if [ "${CHAPTER_SUPPORT_FOR_EXTENSION}${CHAPTER_SUPPORT_FOR_DURATION}" == "11" ]; then - if ! [ -f "${CHAPTERS_FILE}" ]; then - CHAPTERS_COUNT="0" - dbg "chaptes file does not exist - export triggered" - ffprobe -i "${CURRENT_SONG_FILE_ABS}" -print_format json -show_chapters -loglevel error > "${CHAPTERS_FILE}" & - else - CHAPTERS_COUNT="$(grep '"id":' "${CHAPTERS_FILE}" | wc -l )" - dbg "chapters file does exist, chapter count: $CHAPTERS_COUNT" - fi - - - CHAPTER_START_TIMES="$( ( echo -e $CURRENT_SONG_ELAPSED & grep 'start_time' "$CHAPTERS_FILE" | cut -d '"' -f 4 | sed 's/000$//') | sort -V)" - ELAPSED_MATCH_CHAPTER_COUNT=$(grep "$CURRENT_SONG_ELAPSED" <<< "$CHAPTER_START_TIMES" | wc -l) - - # elapsed and chapter start exactly match -> skip one line - if [ "$ELAPSED_MATCH_CHAPTER_COUNT" == "2" ]; then - PREV_CHAPTER_START=$(grep "$CURRENT_SONG_ELAPSED" -B 1 <<< "$CHAPTER_START_TIMES" | head -n1) - CURRENT_CHAPTER_START="$CURRENT_SONG_ELAPSED" - else - PREV_CHAPTER_START=$(grep "$CURRENT_SONG_ELAPSED" -B 2 <<< "$CHAPTER_START_TIMES" | head -n1) - CURRENT_CHAPTER_START=$(grep "$CURRENT_SONG_ELAPSED" -B 1 <<< "$CHAPTER_START_TIMES" | head -n1) - fi - - NEXT_CHAPTER_START=$(grep "$CURRENT_SONG_ELAPSED" -A 1 <<< "$CHAPTER_START_TIMES" | tail -n1) -fi + NEXT_CHAPTER_START=$(grep "$CURRENT_SONG_ELAPSED" -A 1 <<< "$CHAPTER_START_TIMES" | tail -n1) + fi -# SHUFFLE_STATUS=$(echo -e status\\nclose | nc -w 1 localhost 6600 | grep -o -P '(?<=random: ).*') + # SHUFFLE_STATUS=$(echo -e status\\nclose | nc -w 1 localhost 6600 | grep -o -P '(?<=random: ).*') +fi # END COMMANDS SHORTCUT case $COMMAND in shutdown) From 7523383ecc90bd06877785ebb36f263800a68cf8 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Sat, 2 Jan 2021 10:05:30 +0100 Subject: [PATCH 039/206] Ensure ALSA is installed (#1255) * Ensure ALSA is installed * Fixed typo * Added alsa to tests also --- scripts/installscripts/buster-install-default.sh | 2 +- scripts/installscripts/tests/test_installation.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index b4b4f553f..07aaabde3 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -781,7 +781,7 @@ install_main() { ${apt_get} ${allow_downgrades} install raspberrypi-kernel-headers fi - ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php7.3-common php7.3-cgi php7.3 at mpd mpc mpg123 git ffmpeg resolvconf spi-tools netcat + ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php7.3-common php7.3-cgi php7.3 at mpd mpc mpg123 git ffmpeg resolvconf spi-tools netcat alsa-tools # restore backup of /etc/resolv.conf in case installation of resolvconf cleared it sudo cp /etc/resolv.conf.orig /etc/resolv.conf diff --git a/scripts/installscripts/tests/test_installation.sh b/scripts/installscripts/tests/test_installation.sh index 473cd6cf3..2b48b21e2 100755 --- a/scripts/installscripts/tests/test_installation.sh +++ b/scripts/installscripts/tests/test_installation.sh @@ -155,7 +155,7 @@ verify_apt_packages(){ local packages="libspotify-dev samba samba-common-bin gcc lighttpd php7.3-common php7.3-cgi php7.3 at mpd mpc mpg123 git ffmpeg resolvconf spi-tools python3 python3-dev python3-pip python3-mutagen python3-gpiozero -python3-spidev netcat" +python3-spidev netcat alsa-tools" # TODO apt-transport-https checking only on RPi is currently a workaround local packages_raspberrypi="apt-transport-https raspberrypi-kernel-headers" local packages_spotify="mopidy mopidy-mpd mopidy-local mopidy-spotify libspotify12 From ab02337fbaaba907655a22e07ad8ad8d0dca8ca5 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Sat, 2 Jan 2021 10:32:14 +0100 Subject: [PATCH 040/206] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e0defd681..fdafd81f5 100755 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podc ## Important updates / news -* **Discussions forums** we use Github's Discussions feature for a more forum style. Please ask questions there, bugs and enhancements should still be in issues; see here https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions +* **Discussions forums** we use Github's Discussions feature for a more forum style. Please ask general questions in [Discussions](https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions), bugs and enhancements should still be in [Issues](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues). * **Gitter Community** we got ourselves a gitter community; chat us up at https://gitter.im/phoniebox From 291122b73fb03f8793ada627019b411afeaa1fef Mon Sep 17 00:00:00 2001 From: ChrisSoc <pi@exaberry> Date: Mon, 4 Jan 2021 20:09:28 +0100 Subject: [PATCH 041/206] Preparing new file structure --- .../{bt-headphones => bluetooth-sink-switch}/bt-sink-switch.py | 0 .../install-bt-sink-switch.sh | 0 .../{bt-headphones => control/bluetooth-buttons}/bt-buttons.py | 0 .../bluetooth-buttons}/install-bt-buttons.sh | 0 .../sampleconfigs}/phoniebox-bt-buttons.service.sample | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename components/{bt-headphones => bluetooth-sink-switch}/bt-sink-switch.py (100%) rename components/{bt-headphones => bluetooth-sink-switch}/install-bt-sink-switch.sh (100%) rename components/{bt-headphones => control/bluetooth-buttons}/bt-buttons.py (100%) rename components/{bt-headphones => control/bluetooth-buttons}/install-bt-buttons.sh (100%) rename {components/bt-headphones => misc/sampleconfigs}/phoniebox-bt-buttons.service.sample (100%) diff --git a/components/bt-headphones/bt-sink-switch.py b/components/bluetooth-sink-switch/bt-sink-switch.py similarity index 100% rename from components/bt-headphones/bt-sink-switch.py rename to components/bluetooth-sink-switch/bt-sink-switch.py diff --git a/components/bt-headphones/install-bt-sink-switch.sh b/components/bluetooth-sink-switch/install-bt-sink-switch.sh similarity index 100% rename from components/bt-headphones/install-bt-sink-switch.sh rename to components/bluetooth-sink-switch/install-bt-sink-switch.sh diff --git a/components/bt-headphones/bt-buttons.py b/components/control/bluetooth-buttons/bt-buttons.py similarity index 100% rename from components/bt-headphones/bt-buttons.py rename to components/control/bluetooth-buttons/bt-buttons.py diff --git a/components/bt-headphones/install-bt-buttons.sh b/components/control/bluetooth-buttons/install-bt-buttons.sh similarity index 100% rename from components/bt-headphones/install-bt-buttons.sh rename to components/control/bluetooth-buttons/install-bt-buttons.sh diff --git a/components/bt-headphones/phoniebox-bt-buttons.service.sample b/misc/sampleconfigs/phoniebox-bt-buttons.service.sample similarity index 100% rename from components/bt-headphones/phoniebox-bt-buttons.service.sample rename to misc/sampleconfigs/phoniebox-bt-buttons.service.sample From cc011d98fe6f96ab6ae80032b23c824ba7fc24ed Mon Sep 17 00:00:00 2001 From: ChrisSoc <pi@exaberry> Date: Mon, 4 Jan 2021 21:32:10 +0100 Subject: [PATCH 042/206] Increase functional robustness and adapt file locations --- .../bluetooth-sink-switch/bt-sink-switch.py | 132 ++++++--- .../install-bt-sink-switch.sh | 25 +- .../bt-buttons-register-device.py | 46 +++ .../control/bluetooth-buttons/bt-buttons.py | 280 ++++++++++++------ .../bluetooth-buttons/install-bt-buttons.sh | 27 +- htdocs/settings.php | 4 +- .../phoniebox-bt-buttons.service.sample | 6 +- scripts/playout_controls.sh | 2 +- scripts/startup-scripts.sh | 14 +- 9 files changed, 372 insertions(+), 164 deletions(-) create mode 100755 components/control/bluetooth-buttons/bt-buttons-register-device.py diff --git a/components/bluetooth-sink-switch/bt-sink-switch.py b/components/bluetooth-sink-switch/bt-sink-switch.py index cf0e58c6a..495b725d0 100755 --- a/components/bluetooth-sink-switch/bt-sink-switch.py +++ b/components/bluetooth-sink-switch/bt-sink-switch.py @@ -1,29 +1,55 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- """ -Created on Tue Dec 8 17:39:01 2020 - -Provides btSwitch (see below) as function and callable script +Provides bt_switch (see below) as function and callable script If called as script, configure led_pin according to your set-up -@author: chris +Usage: +$ bt-sink-switch cmd [debug] + cmd = toggle|speakers|headphones : select audio target + debug : enable debug logging """ import sys import re import subprocess +import logging # If called as script, this variable will set GPIO number of the LED to reflect sink status # Uses BCM GPIO numbering, i.e. 'led_pin = 6' means GPIO6 # Set 'led_pin=None' to disable LED support (and no GPIO pin is blocked in this case) -led_pin = None +# led_pin = None +led_pin = 6 + +# Create logger +logger = logging.getLogger('bt-sink-switch.py') +logger.setLevel(logging.DEBUG) +# Create console handler and set default level +logconsole = logging.StreamHandler() +logconsole.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s: %(message)s', datefmt='%d.%m.%Y %H:%M:%S')) +logconsole.setLevel(logging.INFO) +logger.addHandler(logconsole) + -def btUsage(sname): +def bt_usage(sname): + """Print usage, if module is called as script""" print("Usage") - print(" ./" + sname + "[ toggle | speakers | headphones]") - -def btSwitch(cmd, led_pin=None): + print(" ./" + sname + " toggle | speakers | headphones [debug]") + + +def bt_check_mpc_err() -> None: + """Error check on mpd output stream and attempt to recover previous state""" + logger.debug("bt_check_mpc_err()") + mpcproc = subprocess.run("mpc status", shell=True, check=False, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + logger.debug(mpcproc.stdout) + # grep for this expression: 'ERROR: Failed to open audio output' + mpcerr = re.search(b"ERROR:.*output", mpcproc.stdout) + if mpcerr is not None: + mpcplay = subprocess.run("mpc play", shell=True, check=False, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + logger.debug(mpcplay) + + +def bt_switch(cmd, led_pin=None): """ Set/Toggle between regular speakers and headphone output. If no bluetooth device is connected, always defaults to mpc output 1 @@ -68,72 +94,94 @@ def btSwitch(cmd, led_pin=None): Parameters ---------- - cmd : string - toggle | speakers | headphones - - led_pin : integer - GPIO pin number of LED to reflect output status. If None, LED support is disabled (and no GPIO pin is blocked) - """ + :param cmd: string is "toggle" | "speakers" | "headphones" + :param led_pin: integer with GPIO pin number of LED to reflect output status. If None, LED support is disabled (and no GPIO pin is blocked) + """ # Check for valid command if cmd != "toggle" and cmd != "speakers" and cmd != "headphones": - print("Error: Invalid command. Doing nothing.") + logger.error("Invalid command. Doing nothing.") return - + # Rudimentary check if LED pin request is valid GPIO pin number if led_pin is not None: if led_pin < 2 or led_pin > 27: led_pin = None - print("- ERROR: Invalid led_pin. Ignoring led_pin = " + str(led_pin), file=sys.stderr) - + logger.error("Invalid led_pin. Ignoring led_pin = " + str(led_pin)) + if led_pin is not None: # Set-up GPIO LED pin if not already configured. If it already exists, sanity check direction of pin before use try: with open("/sys/class/gpio/gpio" + str(led_pin) + "/direction") as f: if f.readline(3) != "out": - print("- ERROR: LED pin already in use with direction 'in'. Ignoring led_pin = " + str(led_pin), file=sys.stderr) + logger.error("LED pin already in use with direction 'in'. Ignoring led_pin = " + str(led_pin)) led_pin = None - except: + except FileNotFoundError: # GPIO direction file does not exist -> pin is not configured. Set it up (sleep is necessary!) - subprocess.run("echo " + str(led_pin) + " > /sys/class/gpio/export; \ + proc = subprocess.run("echo " + str(led_pin) + " > /sys/class/gpio/export; \ sleep 0.1; \ - echo out > /sys/class/gpio/gpio" + str(led_pin) + "/direction", shell=True, check=False) - + echo out > /sys/class/gpio/gpio" + str(led_pin) + "/direction", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + logger.debug(proc.stdout) + # Figure out if output 1 (speakers) is enabled - isSpeakerOn_console = subprocess.run("mpc outputs", shell=True, check=False, capture_output=True) + isSpeakerOn_console = subprocess.run("mpc outputs", shell=True, check=False, stdout=subprocess.PIPE, + stderr=subprocess.STDOUT) + logger.debug(isSpeakerOn_console.stdout) isSpeakerOn = re.search(b"1.*enabled", isSpeakerOn_console.stdout) # Figure out if a bluetooth device is connected (any device will do). Assume here that only speakers/headsets will be connected # -> No need for user to adapt MAC address # -> will actually support multiple speakers/headsets paired to the phoniebox # Alternative: Check for specific bluetooth device only with "bluetoothctl info MACADDRESS" - isBtConnected_console = subprocess.run("bluetoothctl info", shell=True, check=False, capture_output=True) - isBtConnected = re.search(b"Connected:\s+yes", isBtConnected_console.stdout) - - if ((cmd == "toggle" and isSpeakerOn) or (cmd == "headphones")): + isBtConnected_console = subprocess.run("bluetoothctl info", shell=True, check=False, stdout=subprocess.PIPE, + stderr=subprocess.STDOUT) + logger.debug(isBtConnected_console.stdout) + isBtConnected = re.search(b"Connected:\s+yes", isBtConnected_console.stdout) + + if (cmd == "toggle" and isSpeakerOn) or (cmd == "headphones"): # Only switch to BT headphones if they are actually connected if isBtConnected: print("Switched audio sink to \"Output 2\"") - subprocess.run("mpc enable only 2", shell=True, check=False, capture_output=True); + # With mpc enable only 2, output 1 gets disabled before output 2 gets enabled causing a stream output fail + # This order avoids the issue + proc = subprocess.run("mpc enable 2; sleep 0.1; mpc disable 1", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT); + logger.debug(proc.stdout) + # Yet, in some cases, a stream error still occurs: check and recover + bt_check_mpc_err() if led_pin is not None: - subprocess.run("echo 1 > /sys/class/gpio/gpio" + str(led_pin) + "/value", shell=True, check=False) + proc = subprocess.run("echo 1 > /sys/class/gpio/gpio" + str(led_pin) + "/value", shell=True, + check=False, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + logger.debug(b'LED on: ' + proc.stdout) return - else: + else: print("No bluetooth device connected. Defaulting to \"Output 1\".") if led_pin: sleeptime = 0.25 - for i in range(0,3): - subprocess.run("echo 1 > /sys/class/gpio/gpio" + str(led_pin) + "/value; sleep " + str(sleeptime) + "; echo 0 > /sys/class/gpio/gpio" + str(led_pin) + "/value; sleep " + str(sleeptime), shell=True, check=False) + for i in range(0, 3): + subprocess.run("echo 1 > /sys/class/gpio/gpio" + str(led_pin) + "/value; sleep " + str( + sleeptime) + "; echo 0 > /sys/class/gpio/gpio" + str(led_pin) + "/value; sleep " + str( + sleeptime), shell=True, check=False, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) # Default: Switch to Speakers print("Switched audio sink to \"Output 1\"") - subprocess.run("mpc enable only 1", shell=True, check=False, capture_output=True); + # mpc only 1 always enables 1 first, avoiding any intermediate state with no valid output stream + proc = subprocess.run("mpc enable only 1", shell=True, check=False, stdout=subprocess.PIPE, + stderr=subprocess.STDOUT); + logger.debug(proc.stdout) + # Yet, in some cases, a stream error still occurs: check and recover + bt_check_mpc_err() if led_pin: - subprocess.run("echo 0 > /sys/class/gpio/gpio" + str(led_pin) + "/value", shell=True, check=False) + proc = subprocess.run("echo 0 > /sys/class/gpio/gpio" + str(led_pin) + "/value", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + logger.debug(b'LED off: ' + proc.stdout) if __name__ == "__main__": - if len(sys.argv) == 2: - btSwitch(sys.argv[1], led_pin) - else: - btUsage(sys.argv[0]) - + if len(sys.argv) == 3: + logconsole.setLevel(logging.DEBUG) + + if 2 <= len(sys.argv) <= 3: + bt_switch(sys.argv[1], led_pin) + else: + bt_usage(sys.argv[0]) diff --git a/components/bluetooth-sink-switch/install-bt-sink-switch.sh b/components/bluetooth-sink-switch/install-bt-sink-switch.sh index 036b0240b..e18f3b67c 100755 --- a/components/bluetooth-sink-switch/install-bt-sink-switch.sh +++ b/components/bluetooth-sink-switch/install-bt-sink-switch.sh @@ -25,7 +25,7 @@ USER=`whoami` SCRPATH=`pwd` # Ensure script is executable for everyone -sudo chmod ugo+x $FILE +sudo chmod ugo+rx $FILE # Make sure required packages are installed echo -e "\nChecking bluetooth packages" @@ -36,22 +36,17 @@ echo -e "\nSetting up user rights" sudo usermod -G bluetooth -a www-data sudo usermod -G bluetooth -a ${USER} -# Default to speaker sink after boot -STARTUP=../../scripts/startup-scripts.sh -STARTEXISTS=0 -if [ -f ${STARTUP} ]; then - # Check if script is already registed with startup-scripts.sh - STARTEXISTS=`grep -c ${FILE} ${STARTUP}` -fi -if [ "${STARTEXISTS}" = 0 ]; then - echo -e "\nRegistering start-up script" - echo -e "\n#Default audio sink to speakers irrespective of setting at shutdown" >> $STARTUP - echo -e "${SCRPATH}/bt-sink-switch.py speakers\n" >> $STARTUP -fi +# Add www-data to allow gpio control (for LED support) +sudo usermod -G gpio -a www-data # Let global controls know this feature is enabled -CONFFILE=../../settings/BtHeadphoneIntegration -echo "ON" > ${CONFFILE} +echo -e "\nLet global controls know this feature is enabled" +CONFFILE=../../settings/bluetooth-sink-switch +echo "enabled" > ${CONFFILE} +chmod ugo+rw ${CONFFILE} + +# Restart web service to take notice of new user rights +sudo systemctl restart lighttpd.service # Final notes echo -e "\n\n\nIMPORTANT NOTE:\nPlease modify ${FILE} around line 20 for\n led_pin=None\nto configure LED pin-out.\n Do nothing to leave it disabled." diff --git a/components/control/bluetooth-buttons/bt-buttons-register-device.py b/components/control/bluetooth-buttons/bt-buttons-register-device.py new file mode 100755 index 000000000..73c82244a --- /dev/null +++ b/components/control/bluetooth-buttons/bt-buttons-register-device.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 +""" +Presents available input devices to user for selection of bluetooth device +""" + +import evdev as ev +import os.path + +# Filename for storing the device name, relative to this script's location +filename_device_selection = '../../../settings/bluetooth-input-device-name.txt' + + +def bt_register_device(filename) -> str: + """Presents available input devices to user for selection of bluetooth device + + Selected device name is stored in 'filename' + + :param filename: Filename for storing the device name, relative to this script's location + :return str: Selected device name + """ + sq = input("Ensure bluetooth devices is turned on and connected. Ready? [Y/n] ") + if sq != "Y" and sq != "y" and sq != "": + print("Exiting ...") + return '' + + all_devices = [ev.InputDevice(path) for path in ev.list_devices()] + if len(all_devices) == 0: + print("#" * 60) + print("# NO INPUT DEVICES FOUND!") + print("#" * 60) + print("Exiting ...") + return '' + + for idx in range(len(all_devices)): + print(f"{str(idx)}: {all_devices[idx].name}") + devid = int(input("Device number: ")) + + filename_abs = os.path.dirname(os.path.realpath(__file__)) + '/' + filename + with open(filename_abs, 'w') as f: + f.write(all_devices[devid].name) + + return all_devices[devid].name + + +if __name__ == '__main__': + bt_register_device(filename_device_selection) diff --git a/components/control/bluetooth-buttons/bt-buttons.py b/components/control/bluetooth-buttons/bt-buttons.py index 1bbf40112..d079ae510 100755 --- a/components/control/bluetooth-buttons/bt-buttons.py +++ b/components/control/bluetooth-buttons/bt-buttons.py @@ -1,104 +1,194 @@ #!/usr/bin/env python3 +""" +Enable Bluetooth Headphone/Speaker Buttons for Music Control -from evdev import InputDevice, categorize, ecodes -from subprocess import check_call +Script will listen to headphone button press events and call appropriate Phoniebox control function +If no headset is connected, it will endlessly check headset connection status every 2 seconds. + +Should be run as service. For debug can be run directly from console with additional debug output: + $ ./bt-buttons.py debug + +- Run install-bt-buttons.sh to configure user rights, service etc (will also run bt-buttons-register-device.py) +- Run bt-buttons-register-device.py with headphones connected to select bluetooth input device + +This script has been tested with the following headsets: PowerLocus Buddy, Sennheiser Momentum M2 AEBT +""" +import evdev as ev +import logging +import subprocess import time +import sys +import os.path + + +# Filename with stored device name, relative to this script's location +filename_device_selection = '../../../settings/bluetooth-input-device-name.txt' +# Filename to read bt-sink-switch / mpd support from +# See components/bluetooth-audio-toggle for more information +filename_mpd_switch_feature = '../../../settings/bluetooth-sink-switch' + + +# Button key codes +bt_keycode_play = 200 +bt_keycode_pause = 201 +bt_keycode_next = 163 +bt_keycode_prev = 165 + + +# Create logger +logger = logging.getLogger('bt-buttons.py') +logger.setLevel(logging.DEBUG) +# Create console handler and set level to debug +logconsole = logging.StreamHandler() +logconsole.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s: %(message)s', datefmt='%d.%m.%Y %H:%M:%S')) +logconsole.setLevel(logging.DEBUG) +logger.addHandler(logconsole) -# Enable Bluetooth Headphone Buttons for Music Control -# Script will listen to headphone button press events and call approriate phonibox control function -# If no headset is connected, it will endlessly check headset connection status every 3 seconds. - - -# Step 1: Find out which event the bluetooth headset is connected to. -# It will be an input event device: /dev/input/eventX -# Make sure it is connected first and you can playback music :-) Follow the excellent instructions in the wiki -# -# Option 1) cat /proc/bus/input/devices -# In my case the bluetooth headset is listed under its MAC address -# Option 2) Disconnect headset, show >ls /dev/input -# Connect headset , show >ls /dev/input, analyze the difference -# -# Step 2: Test the event -# > cat /dev/input/event1 -# Press some buttons on the headset. Not all buttons will be forwarded, e.g. vol up/down may also be handled only in the headset. -# Try also long/short press -# The output will look wired. Don't worry - the important thing is that you are seeing something on the console -# -# Step 3: Figure out the key mappings -# In this script adapt the EVTDEV constant to fit your input event device -# Call this script directly from command the line (make sure it does not run as a service, if you already used the install script: >sudo systemctl stop phoniebox-bt-buttons) -# >./bt-buttons.py -# Press a button on the headset. The script will output a log like this -# -# key event at 1600886330.107993, 201 (KEY_PAUSECD), up -# -# The "201" is the keycode, you are looking for. Go through all the buttons. Also try short/long press. On my headphones, they result in different keycodes -# -# Step 4: Adjust this script with keycodes (and behavior) -# If you are only looking for the play/pause/next/prev, simply adapt the keycodes below -# If you have more buttons than I have, you may extend the if-else clause towards the end of the script. -# To add new ctrl functions, check out playout_controls.sh for available commands -# -# This script has been tested with the following headset: PowerLocus Buddy -# -# Note: -# (a) If the event device does not exist, this script will not throw an error. (You will see no output if things dont work!) -# But continue checking if that event will appear at some time, i.e. which will happen if the headset gets connected. -# So if nothing happens, make sure you have the right event device listed here. -# (b) This script assumes a constant /dev/input/eventX to headset mapping, which is not globally given. -# But in a stable raspberry pi setup it will be constant, if no input devices are added/removed (especially in any order) -# -# Possible future feature enhancements -# Use cat /proc/bus/input/devices first to find correct eventX to headset mapping -# -# If you want this script to run automatically as service after booting do this: -# The easy way: -# run the install script -# The hard way: -# Adjust directory paths in phoniebox-bt-buttons.service.sample -# sudo cp phoniebox-bt-buttons.service.sample /etc/systemd/system/phoniebox-bt-buttons.service -# sudo chown root:root /etc/systemd/system/phoniebox-bt-buttons.service -# sudo chmod 644 /etc/systemd/system/phoniebox-bt-buttons.service -# sudo systemctl enable phoniebox-bt-buttons.service -# -# Troubleshooting -# If buttons fail to work after reboot, take a look into the boot messages to analyze the service messages -# >journalctl -b -u phoniebox-bt-buttons.service -# Check with >bluetoothctl info, if the headset is connected, play some music to be sure. Check /dev/input/eventX exists and check >cat /proc/bus/input/devices -# Then go back to starting the script in the console and take a look at the messages (stop the service first) - -BTNPLAY = 200 -BTNPAUSE = 201 -BTNNEXT = 163 -BTNPREV = 165 - -EVTDEV='/dev/input/event0' - -def btkeyhandler(): - # Try to open the event device - dev = InputDevice(EVTDEV) - print(dev) + +def bt_on_disconnect(mpd_support=0) -> None: + """Executed on Bluetooth device disconnect + + Default: Switch output device to speakers + Disconnecting the Bluetooth device during playback causes an error with mpd + as it suddenly has no more output stream. Error state is checked and previous state recovery is attempted to + provide smooth transistion to speakers automatically by bt-sink-switch.py + :param mpd_support: Indicates if bluetooth sink switch feature using mpd is enabled + """ + logger.info("on disconnect") + if mpd_support: + pctproc = subprocess.run(f"{os.path.dirname(os.path.realpath(__file__))}/../../../scripts/playout_controls.sh -c=bluetoothtoggle -v=speakers", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + logger.debug(pctproc.stdout) + + +def bt_on_connect(mpd_support=0) -> None: + """Executed on Bluetooth device connect + + Default: Switch output device to Bluetooth device + Note: During bootup, if bluetooth device gets connected before the service for this script is started, this function + will still be executed + :param mpd_support: Indicates if bluetooth sink switch feature using mpd is enabled + """ + logger.info("on connect") + if mpd_support: + pctproc = subprocess.run(f"{os.path.dirname(os.path.realpath(__file__))}/../../../scripts/playout_controls.sh -c=bluetoothtoggle -v=headphones", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + logger.debug(pctproc.stdout) + + +def bt_get_device_name(filename) -> str: + """Gets the bluetooth device name from config file""" + logger.debug(f"bt_get_device_name looking for '{filename}'") + try: + with open(filename) as f: + devname: str = f.readline().strip() + except Exception as e: + logger.critical("#" * 60) + logger.critical(f"Error opening file '{filename}'. Please run registerBluetoothInput.py first!") + logger.critical(f"Exception: {e.__class__.__name__}") + logger.critical("#" * 60) + raise e + logger.debug(f"bt_get_device_name() -> {devname}") + return devname + + +def bt_get_mpd_support(filename) -> int: + """Checks if bluetooth switch feature is enabled""" + logger.debug(f"bt_get_mpd_support looking for '{filename}'") + try: + with open(filename) as f: + mpdsupport = f.readline().strip().lower() + except PermissionError: + mpdsupport = '' + except FileNotFoundError: + mpdsupport = '' + logger.debug(f"file read out '{mpdsupport}'") + if mpdsupport == 'enabled': + logger.debug("bt_get_mpd_support result is ON") + return 1 + logger.debug("bt_get_mpd_support result is OFF") + return 0 + + +def bt_open_device(name) -> ev.InputDevice: + """Tries to open bluetooth device, raises error if not available to be handled up-level""" + all_devices = [ev.InputDevice(path) for path in ev.list_devices()] + for dev in all_devices: + if dev.name == name: + logger.debug(f"bt_open_device({name}): Device '{name}' search success") + break + else: + # No device found, don't log to prevent log file spamming + # logger.error(f"bt_open_device({name}): Device '{name}' not found") + raise FileNotFoundError + return dev + + +def bt_key_handler(name, mpd_support=0) -> None: + """Actual key handler, once bluetooth device is connected""" + # Try to open the event device, will exit with exception on fail + dev = bt_open_device(name) + logger.debug(dev) + bt_on_connect(mpd_support) + path = os.path.dirname(os.path.realpath(__file__)) # Infinite loop reading the events. Will fail, if event device gets disconnected for event in dev.read_loop(): - if event.type == ecodes.EV_KEY: + if event.type == ev.ecodes.EV_KEY: # Report the button event - print(categorize(event)) + logger.debug(ev.categorize(event)) # Only act on button press, not button release if event.value == 1: - if event.code == BTNPLAY: - check_call("../../scripts/playout_controls.sh -c=playerpause", shell=True) - elif event.code == BTNPAUSE: - check_call("../../scripts/playout_controls.sh -c=playerpause", shell=True) - elif event.code == BTNNEXT: - check_call("../../scripts/playout_controls.sh -c=playernext", shell=True) - elif event.code == BTNPREV: - check_call("../../scripts/playout_controls.sh -c=playerprev", shell=True) - -while True: - try: - btkeyhandler() - break - except FileNotFoundError: - # Sleeping in long intervalls when headset is not connected - time.sleep(3) - + if event.code == bt_keycode_play: + proc = subprocess.run(f"{path}/../../../scripts/playout_controls.sh -c=playerpause", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + elif event.code == bt_keycode_pause: + proc = subprocess.run(f"{path}/../../../scripts/playout_controls.sh -c=playerpause", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + elif event.code == bt_keycode_next: + proc = subprocess.run(f"{path}/../../../scripts/playout_controls.sh -c=playernext", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + elif event.code == bt_keycode_prev: + proc = subprocess.run(f"{path}/../../../scripts/playout_controls.sh -c=playerprev", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + logger.debug(proc.stdout) + if proc.returncode != 0: + logger.error("#" * 60) + logger.error(f"In subprocess execution (retcode = {str(proc.returncode())})") + logger.error(proc.stdout) + logger.error("#" * 60) + + +def bt_loop(filename_device_selection, filename_mpd_switch_feature, sleeptime=2) -> None: + """Main loop for watching bluetooth device to connect, then call bt_key_handler + + Constantly checks for bluetooth device to connect by calling bt_key_handler() + On bluetooth device connect bt_on_connect will be executed + On bluetooth device disconnect bt_on_disconnect will be executed + + :param filename_mpd_switch_feature: Filename with stored device name, relative to this script's location + :param filename_device_selection: Filename with bluetooth sink switch configuration, relative to this script's location + :param sleeptime: Time to sleep between bluetooth device connection checks + :return: + """ + path = os.path.dirname(os.path.realpath(__file__)) + filename = path + '/' + filename_device_selection + name = bt_get_device_name(filename) + filename = path + '/' + filename_mpd_switch_feature + mpd_support = bt_get_mpd_support(filename) + logger.debug('Waiting for first connect of Bluetooth device') + while True: + try: + bt_key_handler(name, mpd_support) + except FileNotFoundError: + # This error occurs, if opening the bluetooth input device fails + time.sleep(sleeptime) + except OSError: + # This error occurs, when the already opened bluetooth device suddenly gets disconnected + bt_on_disconnect(mpd_support) + time.sleep(sleeptime) + + +if __name__ == '__main__': + if len(sys.argv) == 2: + logconsole.setLevel(logging.DEBUG) + bt_loop(filename_device_selection, filename_mpd_switch_feature, sleeptime=2) diff --git a/components/control/bluetooth-buttons/install-bt-buttons.sh b/components/control/bluetooth-buttons/install-bt-buttons.sh index 21eaf96b5..9c98fa2a7 100755 --- a/components/control/bluetooth-buttons/install-bt-buttons.sh +++ b/components/control/bluetooth-buttons/install-bt-buttons.sh @@ -1,7 +1,9 @@ #!/bin/bash -# Check that script is called from source directory FILE=bt-buttons.py +REGFILE=bt-buttons-register-device.py + +# Check that script is called from source directory if [ ! -f "$FILE" ]; then echo -e "Error: Install script must be started from source directoy of bt-headphones!" exit -1 @@ -10,10 +12,14 @@ fi USER=`whoami` SCRPATH=`pwd` +chmod ugo+rx ${FILE} +chmod ugo+rx ${REGFILE} + # Configuring service file echo -e "\nConfiguring service" -sed "s@WorkingDirectory.*@WorkingDirectory=${SCRPATH}@g" phoniebox-bt-buttons.service.sample > phoniebox-bt-buttons.service.configured -sed -i "s@ExecStart.*@ExecStart=${SCRPATH}/${FILE} > /dev/null@g" phoniebox-bt-buttons.service.configured +SERVICESAMPLE=../../../misc/sampleconfigs/phoniebox-bt-buttons.service.sample +sed "s@WorkingDirectory.*@WorkingDirectory=${SCRPATH}@g" ${SERVICESAMPLE} > phoniebox-bt-buttons.service.configured +sed -i "s@ExecStart.*@ExecStart=${SCRPATH}/${FILE}@g" phoniebox-bt-buttons.service.configured # Install service and enable it SSRC=phoniebox-bt-buttons.service.configured @@ -23,8 +29,19 @@ sudo mv -f ${SSRC} ${SDST} sudo chown root:root ${SDST} sudo chmod 644 ${SDST} sudo systemctl enable phoniebox-bt-buttons.service + + +# Call the register-device script +# Do this last, so that user can re-run abortive device registration without having to run the installer again +echo -e "\n\n*******************************************************************" +echo -e "Will try to register bluetooth input device. If this fails, you can re-start the device registration by calling \n $ ./${REGFILE}" +echo -e "Don't forget to reboot or restart the phoniebox-bt-buttons.service afterwards!" +echo -e "*******************************************************************\n\n" +./${REGFILE} + +# Start the service for immediate use sudo systemctl start phoniebox-bt-buttons.service # Final notes -echo -e "\n\nIMPORTANT NOTE:\nThis feature requires a certain amount of customization to each headset. Check out $FILE for details." -echo -e "If experimenting with the script make sure the service is stopped:\n sudo systemctl stop phoniebox-bt-buttons.service\n\n" +echo -e "\n\nIMPORTANT NOTE:\nThis feature MAY require a certain amount of customization to some headsets. Check out the README.md for details." +echo -e "\n\nEverything is set up now and should work now. In case of doubt, reboot!\n\n" diff --git a/htdocs/settings.php b/htdocs/settings.php index d6358f733..ab5e1f3ea 100755 --- a/htdocs/settings.php +++ b/htdocs/settings.php @@ -128,9 +128,9 @@ <?php -$filename = $conf['settings_abs'].'/BtHeadphoneIntegration'; +$filename = $conf['settings_abs'].'/bluetooth-sink-switch'; if (file_exists($filename)) { - if (strcmp(trim(file_get_contents($filename)), "ON") === 0) { + if (strcmp(strtolower(trim(file_get_contents($filename))), "enabled") === 0) { include('inc.bluetooth.php'); } } diff --git a/misc/sampleconfigs/phoniebox-bt-buttons.service.sample b/misc/sampleconfigs/phoniebox-bt-buttons.service.sample index 34f012f31..f8c5116f0 100644 --- a/misc/sampleconfigs/phoniebox-bt-buttons.service.sample +++ b/misc/sampleconfigs/phoniebox-bt-buttons.service.sample @@ -1,13 +1,13 @@ [Unit] Description=Phoniebox Bluetooth Buttons Service -After=network.target +After=mpd.service [Service] User=pi Group=pi Restart=always -WorkingDirectory=/home/pi/RPi-Jukebox-RFID/components/bt-headphones -ExecStart=/home/pi/RPi-Jukebox-RFID/components/bt-headphones/bt-buttons.py > /dev/null +WorkingDirectory=/home/pi/RPi-Jukebox-RFID/components/control/bluetooth-buttons +ExecStart=/home/pi/RPi-Jukebox-RFID/components/control/bluetooth-buttons/bt-buttons.py [Install] WantedBy=multi-user.target diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index 59e6a7bd5..a55697cb4 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -997,7 +997,7 @@ case $COMMAND in ;; bluetoothtoggle) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi - $PATHDATA/../components/bt-headphones/bt-sink-switch.py $VALUE + $PATHDATA/../components/bluetooth-sink-switch/bt-sink-switch.py $VALUE ;; *) echo Unknown COMMAND $COMMAND VALUE $VALUE diff --git a/scripts/startup-scripts.sh b/scripts/startup-scripts.sh index 503c165cf..a32f17be7 100755 --- a/scripts/startup-scripts.sh +++ b/scripts/startup-scripts.sh @@ -41,7 +41,7 @@ while [ "$STATUS" != "ACTIVE" ]; do STATUS=$(echo -e status\\nclose | nc -w 1 lo # play startup sound mpgvolume=$((32768*${AUDIOVOLSTARTUP}/100)) echo "${mpgvolume} is the mpg123 startup volume" -/usr/bin/mpg123 -f -${mpgvolume} /home/pi/RPi-Jukebox-RFID/shared/startupsound.mp3 +#/usr/bin/mpg123 -f -${mpgvolume} /home/pi/RPi-Jukebox-RFID/shared/startupsound.mp3 ####################### # re-scan music library @@ -52,3 +52,15 @@ mpc rescan if [ "${READWLANIPYN}" == "ON" ]; then /home/pi/RPi-Jukebox-RFID/scripts/playout_controls.sh -c=readwifiipoverspeaker fi + +####################### +# Default audio sink to speakers (instead of bluetooth device) irrespective of setting at shutdown +if [ -f $PATHDATA/../settings/bluetooth-sink-switch ]; then + BTSINKSWITCH=`cat $PATHDATA/../settings/bluetooth-sink-switch` + if [ "${BTSINKSWITCH}" == "enabled" ]; then + $PATHDATA/../components/bluetooth-sink-switch/bt-sink-switch.py speakers + fi +fi + + + From 8101e9dacb10626d061ecffa93f806b93e056c11 Mon Sep 17 00:00:00 2001 From: ChrisSoc <pi@exaberry> Date: Mon, 4 Jan 2021 22:11:31 +0100 Subject: [PATCH 043/206] Add Readme --- .../control/bluetooth-buttons/README.md | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 components/control/bluetooth-buttons/README.md diff --git a/components/control/bluetooth-buttons/README.md b/components/control/bluetooth-buttons/README.md new file mode 100644 index 000000000..28c141fd9 --- /dev/null +++ b/components/control/bluetooth-buttons/README.md @@ -0,0 +1,82 @@ +## Contol Phoniebox via Buttons from Bluetooth Headset + +Many bluetooth headsets or bluetooth speaker sets have buttons for controlling the music stream. **Let's make use of them!** +This component provides support for controlling your Phoniebox through these buttons on your bluetooth headset (or speaker set). + +### Installation + +1. Make sure your bluetooth headset is connected to the Phoniebox. Follow the instructions in the [Wiki](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Bluetooth). +2. Execute `$ ./install-bt-buttons.sh. It will ask you to identify your headset and set up appropriate user rights, and registers the script as a service. It should work immediatly. In case of doubt, reboot. + - If later changing the headset, re-run `$ ./register-device.py`. Reboot or restart the service with `sudo systemctl restart phoniebox-bt-buttons.service ` + +### Supported Buttons + +Out-of-the box support is included for the following buttons + +- Play/Pause +- Previous Track +- Next Track + +Key codes are standarized and so it should also work with your headphones. If you want to add more keys or assign a different behaviour see [Troubleshooting](#troubleshooting) + +*Note:* Volume up/down is inherently supported by the bluetooth protocol. There is no need to handle these by this script. + +### On Connect / On Disconnect + +If the feature [bluetooth-sink-switch](../../bluetooth-sink-switch) is enabled, the script automatically switches the audio stream to headphones / regular speakers on bluetooth connect / disconnect respectivly. Playback state (play/pause) is retained. + +*Note:* On-connect actions may take up to 4 seconds - please be patient (bluetooth connection is only checked every two seconds, bluetooth stream needs to be buffered, etc...) + +You can **customize** the behaviour by editing the functions + +- `bt_on_connect(mpd_support=0)` +- `bt_on_disconnect(mpd_support=0)` + +where `mpd_support` indicates wether the bt-sink-switch-feature is enabled. + +### Troubleshooting + +This feature has been tested with PowerLocus Buddy and Sennheiser Momentum M2 AEBT headphones. + +#### Preparation + +- Stop the service `$ sudo systemctl stop phoniebox-bt-buttons.service` +- Start the script in a command line with debug option `$ ./bt-buttons.py debug` + +#### Check that correct bluetooth device is found + +- Run the [preparatory steps](#preparation) +- Check headset is connected and listed as input event device with `$ cat /proc/bus/input/devices`. Note the device name. +- In the script's debug output you should see something like this. Here the MAC address is the device name +~~~ +30.12.2020 21:44:41 - bt-buttons.py - DEBUG: bt_get_device_name() -> C4:FB:20:63:A7:F2 +30.12.2020 21:45:05 - bt-buttons.py - DEBUG: bt_open_device(C4:FB:20:63:A7:F2): Device 'C4:FB:20:63:A7:F2' search success +30.12.2020 21:45:05 - bt-buttons.py - DEBUG: device /dev/input/event1, name "C4:FB:20:63:A7:F2", phys "" +~~~ + +- If you see discrepancies, re-run `$ ./register-device.py`(see above) + +#### Add key codes / change actions +- Run the [preparatory steps](#preparation) +- Press the buttons on the headset and check for these debug outputs. Note down the keycode. The **163** is the keycode, you are looking for. Go through all the buttons. Also try short/long press. On my headphones, they result in different keycodes +``` +30.12.2020 21:45:59 - bt-buttons.py - DEBUG: key event at 1609361159.529679, 163 (KEY_NEXTSONG), down +``` +- Go into the source code and adjust these lines for desired behaviour +~~~python + if event.code == bt_keycode_play: + proc = subprocess.run(f"{path}/../../../scripts/playout_controls.sh -c=playerpause", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + elif event.code == bt_keycode_pause: + proc = subprocess.run(f"{path}/../../../scripts/playout_controls.sh -c=playerpause", shell=True, check=False, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + +~~~ + +#### Still having trouble? +Check the basics: test the event input. Make sure the headphones are connected beforehand. Replace event*X* with the event number obtained from `$ cat /proc/bus/input/devices`. + +```$ cat /dev/input/eventX``` + +Press some buttons on the headset. Not all buttons will be forwarded, e.g. vol up/down may also be handled only in the headset. + Try also long/short press. The output will look wired. Don't worry - the important thing is that you are seeing something on the console. Now go back to [Troubleshooting](#troubleshooting). \ No newline at end of file From 7e38d76763521ca640d1ede26b88de0f26bc0265 Mon Sep 17 00:00:00 2001 From: Schneelocke <simismail@gmail.com> Date: Thu, 3 Dec 2020 23:29:25 +0100 Subject: [PATCH 044/206] Improve performance in player.php by avoiding system calls --- htdocs/api/common.php | 14 ++++++++++++++ htdocs/api/player.php | 33 +++++++++++++++++++++++---------- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/htdocs/api/common.php b/htdocs/api/common.php index 7955989c7..3089b5472 100755 --- a/htdocs/api/common.php +++ b/htdocs/api/common.php @@ -36,7 +36,21 @@ function execSuccessfully($command) { echo "Execution failed\nCommand: {$command}\nOutput: {$formattedOutput}\nRC: .${rc}"; http_response_code(500); exit(); + } + return $output; +} + +function execMPDCommand($command) { + $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); + $stream = socket_connect($socket,"localhost" ,6600); + socket_write($socket, $command, strlen($command)); + socket_shutdown ($socket,1); + $output = array(); + while ($out = socket_read($socket, 2048)) { + $output = array_merge($output,explode("\n", $out)); } + socket_close($socket); return $output; } + ?> diff --git a/htdocs/api/player.php b/htdocs/api/player.php index a67fb8417..98f049a83 100755 --- a/htdocs/api/player.php +++ b/htdocs/api/player.php @@ -12,6 +12,8 @@ * DEBUG_WebApp_API="TRUE" */ $debugLoggingConf = parse_ini_file("../../settings/debugLogging.conf"); +$globalConf = parse_ini_file("../../settings/global.conf"); +$globalConf['ENABLE_CHAPTERS_FOR_EXTENSIONS'] = "mp4,m4a,m4b,m4r"; if ($debugLoggingConf['DEBUG_WebApp_API'] == "TRUE") { file_put_contents("../../logs/debug.log", "\n# WebApp API # " . __FILE__, FILE_APPEND | LOCK_EX); @@ -51,8 +53,11 @@ function handlePut() { function handleGet() { global $debugLoggingConf; - $statusCommand = "echo 'status\ncurrentsong\nclose' | nc -w 1 localhost 6600"; - $commandResponseList = execSuccessfully($statusCommand); + global $globalConf; + //$statusCommand = "echo 'status\ncurrentsong\nclose' | nc -w 1 localhost 6600"; + //$commandResponseList = execSuccessfully($statusCommand); + $statusCommand = "status\ncurrentsong\nclose"; + $commandResponseList = execMPDCommand($statusCommand); $responseList = array(); forEach ($commandResponseList as $commandResponse) { preg_match("/(?P<key>.+?): (?P<value>.*)/", $commandResponse, $match); @@ -60,16 +65,24 @@ function handleGet() { $responseList[strtolower($match['key'])] = $match['value']; } } + // get volume separately from mpd, because we might use amixer to control volume - $command = "playout_controls.sh -c=getvolume"; - $output = execScript($command); - $responseList['volume'] = implode('\n', $output); - - $command = "playout_controls.sh -c=getchapters"; - $output = execScript($command); - $jsonChapters = trim(implode("\n", $output)); - $chapters = @json_decode($jsonChapters, true); + if ($globalConf['VOLUMEMANAGER'] != "mpd"){ + $command = "playout_controls.sh -c=getvolume"; + $output = execScript($command); + $responseList['volume'] = implode('\n', $output); + } + // get chapter info if file extension indicates supports + $fileExtension = pathinfo ( $responseList['file'], PATHINFO_EXTENSION); + if (in_array($fileExtension, explode(',', $globalConf['ENABLE_CHAPTERS_FOR_EXTENSIONS']))) { + $command = "playout_controls.sh -c=getchapters"; + $output = execScript($command); + $jsonChapters = trim(implode("\n", $output)); + $chapters = @json_decode($jsonChapters, true); + } + + $currentChapterIndex = null; $mappedChapters = array_filter(array_map(function($chapter) use($responseList, &$currentChapterIndex) { static $i = 1; From 804b8a36ba0b97de9be7c13c9c85d21089637684 Mon Sep 17 00:00:00 2001 From: Schneelocke <simismail@gmail.com> Date: Thu, 3 Dec 2020 23:51:56 +0100 Subject: [PATCH 045/206] removed old code --- htdocs/api/player.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/htdocs/api/player.php b/htdocs/api/player.php index 98f049a83..3c4d6ff66 100755 --- a/htdocs/api/player.php +++ b/htdocs/api/player.php @@ -53,9 +53,7 @@ function handlePut() { function handleGet() { global $debugLoggingConf; - global $globalConf; - //$statusCommand = "echo 'status\ncurrentsong\nclose' | nc -w 1 localhost 6600"; - //$commandResponseList = execSuccessfully($statusCommand); + global $globalConf; $statusCommand = "status\ncurrentsong\nclose"; $commandResponseList = execMPDCommand($statusCommand); $responseList = array(); From f6b9afa59c45cb4868b0292af85c36af3053f0e2 Mon Sep 17 00:00:00 2001 From: Schneelocke <simismail@gmail.com> Date: Tue, 8 Dec 2020 22:12:05 +0100 Subject: [PATCH 046/206] Added chapter exts and minduration to global conf --- htdocs/api/player.php | 3 +-- scripts/inc.writeGlobalConfig.sh | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/htdocs/api/player.php b/htdocs/api/player.php index 3c4d6ff66..9d2d92f16 100755 --- a/htdocs/api/player.php +++ b/htdocs/api/player.php @@ -13,7 +13,6 @@ */ $debugLoggingConf = parse_ini_file("../../settings/debugLogging.conf"); $globalConf = parse_ini_file("../../settings/global.conf"); -$globalConf['ENABLE_CHAPTERS_FOR_EXTENSIONS'] = "mp4,m4a,m4b,m4r"; if ($debugLoggingConf['DEBUG_WebApp_API'] == "TRUE") { file_put_contents("../../logs/debug.log", "\n# WebApp API # " . __FILE__, FILE_APPEND | LOCK_EX); @@ -73,7 +72,7 @@ function handleGet() { // get chapter info if file extension indicates supports $fileExtension = pathinfo ( $responseList['file'], PATHINFO_EXTENSION); - if (in_array($fileExtension, explode(',', $globalConf['ENABLE_CHAPTERS_FOR_EXTENSIONS']))) { + if (in_array($fileExtension, explode(',', $globalConf['CHAPTEREXTENSIONS']))) { $command = "playout_controls.sh -c=getchapters"; $output = execScript($command); $jsonChapters = trim(implode("\n", $output)); diff --git a/scripts/inc.writeGlobalConfig.sh b/scripts/inc.writeGlobalConfig.sh index 88909e0ee..85aa4c224 100755 --- a/scripts/inc.writeGlobalConfig.sh +++ b/scripts/inc.writeGlobalConfig.sh @@ -273,6 +273,28 @@ fi # 2. then|or read value from file VERSION=`cat $PATHDATA/../settings/version` +############################################## +# CHAPTEREXTENSIONS +# Only files with the extensions listed will be scanned for chapters +# 1. create a default if file does not exist +if [ ! -f $PATHDATA/../settings/CHAPTEREXTENSIONS ]; then + echo "mp4,m4a,m4b,m4r" > $PATHDATA/../settings/CHAPTEREXTENSIONS + chmod 777 $PATHDATA/../settings/CHAPTEREXTENSIONS +fi +# 2. then|or read value from file +CHAPTEREXTENSIONS=`cat $PATHDATA/../settings/CHAPTEREXTENSIONS` + +############################################## +# CHAPTERMINDURATION +# Only files with play length bigger than minimum will be scanned for chapters +# 1. create a default if file does not exist +if [ ! -f $PATHDATA/../settings/CHAPTERMINDURATION ]; then + echo "600" > $PATHDATA/../settings/CHAPTERMINDURATION + chmod 777 $PATHDATA/../settings/CHAPTERMINDURATION +fi +# 2. then|or read value from file +CHAPTERMINDURATION=`cat $PATHDATA/../settings/CHAPTERMINDURATION` + ############################################## # read control card ids # 1. read all values from file @@ -306,6 +328,8 @@ CMDSEEKBACK=`grep 'CMDSEEKBACK' $PATHDATA/../settings/rfid_trigger_play.conf|tai # EDITION # LANG # VERSION +# CHAPTEREXTENSIONS +# CHAPTERMINDURATION # CMDVOLUP # CMDVOLDOWN # CMDNEXT @@ -337,6 +361,8 @@ echo "READWLANIPYN=\"${READWLANIPYN}\"" >> "${PATHDATA}/../settings/global.conf" echo "EDITION=\"${EDITION}\"" >> "${PATHDATA}/../settings/global.conf" echo "LANG=\"${LANG}\"" >> "${PATHDATA}/../settings/global.conf" echo "VERSION=\"${VERSION}\"" >> "${PATHDATA}/../settings/global.conf" +echo "CHAPTEREXTENSIONS=\"${CHAPTEREXTENSIONS}\"" >> "${PATHDATA}/../settings/global.conf" +echo "CHAPTERMINDURATION=\"${CHAPTERMINDURATION}\"" >> "${PATHDATA}/../settings/global.conf" echo "CMDVOLUP=\"${CMDVOLUP}\"" >> "${PATHDATA}/../settings/global.conf" echo "CMDVOLDOWN=\"${CMDVOLDOWN}\"" >> "${PATHDATA}/../settings/global.conf" echo "CMDNEXT=\"${CMDNEXT}\"" >> "${PATHDATA}/../settings/global.conf" From 397a581eef05f94bb5cf66d9a3479a666c17cbaf Mon Sep 17 00:00:00 2001 From: Schneelocke <simismail@gmail.com> Date: Tue, 8 Dec 2020 22:36:08 +0100 Subject: [PATCH 047/206] Removed the old variables from .sh script --- scripts/playout_controls.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index 3e8fc9592..6302d4388 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -112,8 +112,6 @@ shortcutCommands="^(setvolume|volumedown|volumeup|mute)$" # Run the code from this block only, if the current command is not in "shortcutCommands" if [[ ! "$COMMAND" =~ $shortcutCommands ]] then - ENABLE_CHAPTERS_FOR_EXTENSIONS="mp4,m4a,m4b,m4r" - ENABLE_CHAPTERS_MIN_DURATION="600" function dbg { if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then @@ -152,7 +150,7 @@ then CHAPTERS_FILE="${CURRENT_SONG_DIR}/${CURRENT_SONG_BASENAME%.*}.chapters.json" dbg "chapters file: $CHAPTERS_FILE" - if [ "$(grep -wo "$CURRENT_SONG_FILE_EXT" <<< "$ENABLE_CHAPTERS_FOR_EXTENSIONS")" == "$CURRENT_SONG_FILE_EXT" ]; then + if [ "$(grep -wo "$CURRENT_SONG_FILE_EXT" <<< "$CHAPTEREXTENSIONS")" == "$CURRENT_SONG_FILE_EXT" ]; then CHAPTER_SUPPORT_FOR_EXTENSION="1" else CHAPTER_SUPPORT_FOR_EXTENSION="0" @@ -160,7 +158,7 @@ then dbg "chapters for extension enabled: $CHAPTER_SUPPORT_FOR_EXTENSION" - if [ "$(printf "${CURRENT_SONG_DURATION}\n${ENABLE_CHAPTERS_MIN_DURATION}\n" | sort -g | head -1)" == "${ENABLE_CHAPTERS_MIN_DURATION}" ]; then + if [ "$(printf "${CURRENT_SONG_DURATION}\n${CHAPTERMINDURATION}\n" | sort -g | head -1)" == "${CHAPTERMINDURATION}" ]; then CHAPTER_SUPPORT_FOR_DURATION="1" else CHAPTER_SUPPORT_FOR_DURATION="0" From f71d1c7da1e8acf1f9ca304445692d37060cfdb2 Mon Sep 17 00:00:00 2001 From: Schneelocke <simismail@gmail.com> Date: Sun, 13 Dec 2020 21:53:38 +0100 Subject: [PATCH 048/206] Fixed Socket Read for long content --- htdocs/api/common.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/htdocs/api/common.php b/htdocs/api/common.php index 3089b5472..f6855561c 100755 --- a/htdocs/api/common.php +++ b/htdocs/api/common.php @@ -47,9 +47,10 @@ function execMPDCommand($command) { socket_shutdown ($socket,1); $output = array(); while ($out = socket_read($socket, 2048)) { - $output = array_merge($output,explode("\n", $out)); + $outputTemp .= $out; } - socket_close($socket); + $output = array_merge($output,explode("\n", $outputTemp)); + socket_close($socket); return $output; } From 378cb278f3532cfcd86c30806c1e89bc5c3b28d8 Mon Sep 17 00:00:00 2001 From: Schneelocke <simismail@gmail.com> Date: Mon, 4 Jan 2021 23:59:19 +0100 Subject: [PATCH 049/206] Improved Error-Handling with folders that have wrong permission. --- htdocs/func.php | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/htdocs/func.php b/htdocs/func.php index ff829c25b..88ac8cb6a 100755 --- a/htdocs/func.php +++ b/htdocs/func.php @@ -251,20 +251,28 @@ function dir_list_recursively($rootdir = "") { * The dir path will end without '/'. */ - $iter = new RecursiveIteratorIterator( - new RecursiveDirectoryIterator($rootdir, RecursiveDirectoryIterator::SKIP_DOTS + RecursiveDirectoryIterator::FOLLOW_SYMLINKS), - RecursiveIteratorIterator::SELF_FIRST, - RecursiveIteratorIterator::CATCH_GET_CHILD // Ignore "Permission denied" - ); - - $paths = array($rootdir); - foreach ($iter as $path => $dir) { - if ($dir->isDir()) { - $paths[] = $path; - } - } - - return $paths; + try{ + $iter = new RecursiveIteratorIterator( + new RecursiveDirectoryIterator($rootdir, RecursiveDirectoryIterator::SKIP_DOTS + RecursiveDirectoryIterator::FOLLOW_SYMLINKS), + RecursiveIteratorIterator::SELF_FIRST, + RecursiveIteratorIterator::CATCH_GET_CHILD // Ignore "Permission denied" + ); + } + catch (UnexpectedValueException $e) { + global $debug; + if($debug == "true") { + file_put_contents("../logs/debug.log", "\n # Directory ".$rootdir." is a directory we can not recurse into. Please check permissions. " , FILE_APPEND | LOCK_EX); + } + } + + $paths = array($rootdir); + foreach ($iter as $path => $dir) { + if ($dir->isDir()) { + $paths[] = $path; + } + } + + return $paths; } function index_folders_print($item, $key) @@ -513,7 +521,7 @@ function getSubDirectories( $path = '.', $level = 0, $showfiles = 0 ){ // Open the directory to the handle $dh $dh = @opendir($path); - while( false !== ( $file = readdir( $dh ) ) ){ + while( false !== $dh && false !== ( $file = readdir( $dh ) ) ){ // Loop through the directory if( !in_array( $file, $ignore ) ){ From fed57e794f78707c4eb91b865fe5762f4168be14 Mon Sep 17 00:00:00 2001 From: manajoe <mana@mm13.de> Date: Tue, 5 Jan 2021 21:17:50 +0100 Subject: [PATCH 050/206] shutdownreducingvolume webUI --- htdocs/inc.header.php | 2 + htdocs/inc.setShutdownReduceVolume.php | 79 ++++++++++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 htdocs/inc.setShutdownReduceVolume.php diff --git a/htdocs/inc.header.php b/htdocs/inc.header.php index 8d4a0b3b9..0ecdacb55 100755 --- a/htdocs/inc.header.php +++ b/htdocs/inc.header.php @@ -202,6 +202,7 @@ function fileGetContentOrDefault($filename, $defaultValue) 'scan', 'idletime', 'shutdownafter', + 'shutdownwithreducingvolume', 'stopplayoutafter', 'enableresume', 'disableresume', @@ -303,6 +304,7 @@ function fileGetContentOrDefault($filename, $defaultValue) 'volumedown' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=volumedown", // volume down 'idletime' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=setidletime -v=%s", // set idletime 'shutdownafter' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=shutdownafter -v=%s", // set shutdownafter time (sleeptimer) + 'shutdownwithreducingvolume' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=shutdownwithreducingvolume -v=%s", // set time to shutdown with reducing volume 'stopplayoutafter' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=playerstopafter -v=%s",// set playerstopafter time (auto stop timer) 'playpos' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=playerplay -v=%s", // play from playlist position, 'DebugLogClear' => "sudo rm ../logs/debug.log; sudo touch ../logs/debug.log; sudo chmod 777 ../logs/debug.log", diff --git a/htdocs/inc.setShutdownReduceVolume.php b/htdocs/inc.setShutdownReduceVolume.php new file mode 100644 index 000000000..36d03ba4a --- /dev/null +++ b/htdocs/inc.setShutdownReduceVolume.php @@ -0,0 +1,79 @@ + +<!-- +Sleep Timer Set Form +--> + <!-- input-group --> + <?php + /* + * Values for pulldown form + */ + $shut_reduce_volume_vals = array(2,5,10,15,20,30,45,60,120,180,240); + /* + * Get shut_reduce_volume_ value + */ + $shut_reduce_volume_value = exec("sudo atq -q t | awk '{print $5}'"); + if ($shut_reduce_volume_value != "") { + $unixtime = time(); + /* + * For the night owls: if the shutdown time is after midnight (and so on the next day), + * $shutdowntime is something like 00:30:00 and time() is e.g. 23:45:00. + * strtotime($shutdowntime) returns the unix time for today and we get a negative + * value in the calculation below. + * This is fixed by subtracting a day from the current time, as we only need the difference. + */ + if ($unixtime > strtotime($shut_reduce_volume_value)) { + $unixtime = $unixtime - 86400; + } + $remainingshut_reduce_volume_ = (strtotime($shut_reduce_volume_value)-$unixtime)/60; + if($remainingshut_reduce_volume_ > 60) { + $remainingshut_reduce_volume_ = 60; + } + $remainingshut_reduce_volume_select = round($remainingshut_reduce_volume_); + } + else { + $remainingshut_reduce_volume_select = 0; + } + //$remainingshut_reduce_volume_select = 10; // debug + ?> + <div class="col-md-4 col-sm-6"> + <div class="row" style="margin-bottom:1em;"> + <div class="col-xs-6"> + <h4><?php print $lang['globalshut_reduce_volume_']; ?></h4> + <form name='shutdownafter' method='post' action='<?php print $_SERVER['PHP_SELF']; ?>'> + <div class="input-group my-group"> + <select id="shutdownafter" name="shutdownafter" class="selectpicker form-control"> + <option value='0'><?php print $lang['globalOff']; ?></option> + <?php + foreach($shut_reduce_volume_vals as $i) { + print " + <option value='".$i."'"; + print ">".$i."min</option>"; + } + print "\n"; + ?> + </select> + <span class="input-group-btn"> + <input type='submit' class="btn btn-default" name='submit' value='<?php print $lang['globalSet']; ?>'/> + </span> + </div> + </form> + </div> + + <div class="col-xs-6"> + <div class="orange c100 p<?php print round($remainingshut_reduce_volume_select*100/60); ?>"> + <span><?php + if($remainingshut_reduce_volume_select == 0) { + print $lang['globalOff']; + } else { + print $remainingshut_reduce_volume_select."min"; + } + ?></span> + <div class="slice"> + <div class="bar"></div> + <div class="fill"></div> + </div> + </div> + </div> + </div><!-- ./row --> + </div> + <!-- /input-group --> From 494873466dd6224cb48ce5cda354436053cb7158 Mon Sep 17 00:00:00 2001 From: manajoe <mana@mm13.de> Date: Tue, 5 Jan 2021 21:19:49 +0100 Subject: [PATCH 051/206] Updated settings.php --- htdocs/settings.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/settings.php b/htdocs/settings.php index 13a0b9224..ea2e16675 100755 --- a/htdocs/settings.php +++ b/htdocs/settings.php @@ -156,6 +156,7 @@ <?php include("inc.setStoptimer.php"); include("inc.setSleeptimer.php"); +include("inc.setShutdownReduceVolume.php"); include("inc.setIdleShutdown.php"); ?> </div><!-- / .row --> From 1541af1ec9bb6e38d08f785e198a61cd149112c7 Mon Sep 17 00:00:00 2001 From: manajoe <mana@mm13.de> Date: Tue, 5 Jan 2021 21:25:49 +0100 Subject: [PATCH 052/206] configured lang.php-files --- htdocs/inc.setShutdownReduceVolume.php | 2 +- htdocs/lang/lang-de-DE.php | 1 + htdocs/lang/lang-en-UK.php | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/htdocs/inc.setShutdownReduceVolume.php b/htdocs/inc.setShutdownReduceVolume.php index 36d03ba4a..2b0d182ff 100644 --- a/htdocs/inc.setShutdownReduceVolume.php +++ b/htdocs/inc.setShutdownReduceVolume.php @@ -38,7 +38,7 @@ <div class="col-md-4 col-sm-6"> <div class="row" style="margin-bottom:1em;"> <div class="col-xs-6"> - <h4><?php print $lang['globalshut_reduce_volume_']; ?></h4> + <h4><?php print $lang['globalShutReduceVolume']; ?></h4> <form name='shutdownafter' method='post' action='<?php print $_SERVER['PHP_SELF']; ?>'> <div class="input-group my-group"> <select id="shutdownafter" name="shutdownafter" class="selectpicker form-control"> diff --git a/htdocs/lang/lang-de-DE.php b/htdocs/lang/lang-de-DE.php index 386214cc4..825fdfe5b 100755 --- a/htdocs/lang/lang-de-DE.php +++ b/htdocs/lang/lang-de-DE.php @@ -45,6 +45,7 @@ $lang['globalAutoStopPlayout'] = "Stop Playout Timer"; $lang['globalStopTimer'] = "Stop Playout Timer"; $lang['globalSleepTimer'] = "Einschlaf-Timer"; +$lang['globalShutReduceVolume'] = "Einschlaf-Timer mit Lautstärke-Absenkung"; $lang['globalExternalInterfaces'] = "Externe Geräte & Schnittstellen"; $lang['globalIdleTime'] = "Leerlaufzeit"; $lang['globalNotIdle'] = "Nicht im Leerlauf"; diff --git a/htdocs/lang/lang-en-UK.php b/htdocs/lang/lang-en-UK.php index ee208e498..e79d74a6b 100755 --- a/htdocs/lang/lang-en-UK.php +++ b/htdocs/lang/lang-en-UK.php @@ -45,6 +45,7 @@ $lang['globalAutoStopPlayout'] = "Stop Playout Timer"; $lang['globalStopTimer'] = "Stop Playout Timer"; $lang['globalSleepTimer'] = "Shutdown Timer"; +$lang['globalShutReduceVolume'] = "Shutdown Timer reducing Volume"; $lang['globalExternalInterfaces'] = "External Devices & Interfaces"; $lang['globalIdleTime'] = "Idle Time"; $lang['globalNotIdle'] = "Not Idle"; From dc2c68760ffb56a8cb8ac7447d569e270260165f Mon Sep 17 00:00:00 2001 From: manajoe <mana@mm13.de> Date: Tue, 5 Jan 2021 21:31:35 +0100 Subject: [PATCH 053/206] Update inc.setShutdownReduceVolume.php --- htdocs/inc.setShutdownReduceVolume.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/inc.setShutdownReduceVolume.php b/htdocs/inc.setShutdownReduceVolume.php index 2b0d182ff..1740836be 100644 --- a/htdocs/inc.setShutdownReduceVolume.php +++ b/htdocs/inc.setShutdownReduceVolume.php @@ -39,9 +39,9 @@ <div class="row" style="margin-bottom:1em;"> <div class="col-xs-6"> <h4><?php print $lang['globalShutReduceVolume']; ?></h4> - <form name='shutdownafter' method='post' action='<?php print $_SERVER['PHP_SELF']; ?>'> + <form name='shut_reduce_volume' method='post' action='<?php print $_SERVER['PHP_SELF']; ?>'> <div class="input-group my-group"> - <select id="shutdownafter" name="shutdownafter" class="selectpicker form-control"> + <select id="shut_reduce_volume" name="shut_reduce_volume" class="selectpicker form-control"> <option value='0'><?php print $lang['globalOff']; ?></option> <?php foreach($shut_reduce_volume_vals as $i) { From e8ca69fa9726031814dc5804c735584097172f2f Mon Sep 17 00:00:00 2001 From: manajoe <mana@mm13.de> Date: Tue, 5 Jan 2021 21:35:26 +0100 Subject: [PATCH 054/206] Updated inc.setShutdownReduceVolume.php --- htdocs/inc.setShutdownReduceVolume.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/inc.setShutdownReduceVolume.php b/htdocs/inc.setShutdownReduceVolume.php index 1740836be..55a5feb0a 100644 --- a/htdocs/inc.setShutdownReduceVolume.php +++ b/htdocs/inc.setShutdownReduceVolume.php @@ -39,9 +39,9 @@ <div class="row" style="margin-bottom:1em;"> <div class="col-xs-6"> <h4><?php print $lang['globalShutReduceVolume']; ?></h4> - <form name='shut_reduce_volume' method='post' action='<?php print $_SERVER['PHP_SELF']; ?>'> + <form name='shutdownwithreducingvolume' method='post' action='<?php print $_SERVER['PHP_SELF']; ?>'> <div class="input-group my-group"> - <select id="shut_reduce_volume" name="shut_reduce_volume" class="selectpicker form-control"> + <select id="shutdownwithreducingvolume" name="shutdownwithreducingvolume" class="selectpicker form-control"> <option value='0'><?php print $lang['globalOff']; ?></option> <?php foreach($shut_reduce_volume_vals as $i) { From e21c66e6fcfe6c102e46f25c14559ca028f018ac Mon Sep 17 00:00:00 2001 From: manajoe <mana@mm13.de> Date: Wed, 6 Jan 2021 20:04:51 +0100 Subject: [PATCH 055/206] Renamed to ShutdownVolumeReduction --- htdocs/inc.header.php | 4 ++-- ...ownReduceVolume.php => inc.setShutdownVolumeReduction.php} | 0 htdocs/lang/lang-de-DE.php | 2 +- htdocs/lang/lang-en-UK.php | 2 +- htdocs/settings.php | 2 +- scripts/playout_controls.sh | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) rename htdocs/{inc.setShutdownReduceVolume.php => inc.setShutdownVolumeReduction.php} (100%) diff --git a/htdocs/inc.header.php b/htdocs/inc.header.php index 0ecdacb55..cdf1972e7 100755 --- a/htdocs/inc.header.php +++ b/htdocs/inc.header.php @@ -202,7 +202,7 @@ function fileGetContentOrDefault($filename, $defaultValue) 'scan', 'idletime', 'shutdownafter', - 'shutdownwithreducingvolume', + 'shutdownvolumereduction', 'stopplayoutafter', 'enableresume', 'disableresume', @@ -304,7 +304,7 @@ function fileGetContentOrDefault($filename, $defaultValue) 'volumedown' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=volumedown", // volume down 'idletime' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=setidletime -v=%s", // set idletime 'shutdownafter' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=shutdownafter -v=%s", // set shutdownafter time (sleeptimer) - 'shutdownwithreducingvolume' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=shutdownwithreducingvolume -v=%s", // set time to shutdown with reducing volume + 'shutdownvolumereduction' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=shutdownvolumereduction -v=%s", // set time to shutdown with reducing volume 'stopplayoutafter' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=playerstopafter -v=%s",// set playerstopafter time (auto stop timer) 'playpos' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=playerplay -v=%s", // play from playlist position, 'DebugLogClear' => "sudo rm ../logs/debug.log; sudo touch ../logs/debug.log; sudo chmod 777 ../logs/debug.log", diff --git a/htdocs/inc.setShutdownReduceVolume.php b/htdocs/inc.setShutdownVolumeReduction.php similarity index 100% rename from htdocs/inc.setShutdownReduceVolume.php rename to htdocs/inc.setShutdownVolumeReduction.php diff --git a/htdocs/lang/lang-de-DE.php b/htdocs/lang/lang-de-DE.php index 825fdfe5b..c55bcd22f 100755 --- a/htdocs/lang/lang-de-DE.php +++ b/htdocs/lang/lang-de-DE.php @@ -45,7 +45,7 @@ $lang['globalAutoStopPlayout'] = "Stop Playout Timer"; $lang['globalStopTimer'] = "Stop Playout Timer"; $lang['globalSleepTimer'] = "Einschlaf-Timer"; -$lang['globalShutReduceVolume'] = "Einschlaf-Timer mit Lautstärke-Absenkung"; +$lang['globalShutdownVolumeReduction'] = "Einschlaf-Timer mit Lautstärke-Absenkung"; $lang['globalExternalInterfaces'] = "Externe Geräte & Schnittstellen"; $lang['globalIdleTime'] = "Leerlaufzeit"; $lang['globalNotIdle'] = "Nicht im Leerlauf"; diff --git a/htdocs/lang/lang-en-UK.php b/htdocs/lang/lang-en-UK.php index e79d74a6b..26af7688e 100755 --- a/htdocs/lang/lang-en-UK.php +++ b/htdocs/lang/lang-en-UK.php @@ -45,7 +45,7 @@ $lang['globalAutoStopPlayout'] = "Stop Playout Timer"; $lang['globalStopTimer'] = "Stop Playout Timer"; $lang['globalSleepTimer'] = "Shutdown Timer"; -$lang['globalShutReduceVolume'] = "Shutdown Timer reducing Volume"; +$lang['globalShutdownVolumeReduction'] = "Shutdown Timer Volume Reduction"; $lang['globalExternalInterfaces'] = "External Devices & Interfaces"; $lang['globalIdleTime'] = "Idle Time"; $lang['globalNotIdle'] = "Not Idle"; diff --git a/htdocs/settings.php b/htdocs/settings.php index ea2e16675..f53be68a2 100755 --- a/htdocs/settings.php +++ b/htdocs/settings.php @@ -156,7 +156,7 @@ <?php include("inc.setStoptimer.php"); include("inc.setSleeptimer.php"); -include("inc.setShutdownReduceVolume.php"); +include("inc.setShutdownVolumeReduction.php"); include("inc.setIdleShutdown.php"); ?> </div><!-- / .row --> diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index a88f13964..09091fbe4 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -22,7 +22,7 @@ NOW=`date +%Y-%m-%d.%H:%M:%S` # shutdown # shutdownsilent # shutdownafter -# shutdownwithreducingvolume +# shutdownvolumereduction # reboot # scan # mute @@ -258,7 +258,7 @@ case $COMMAND in echo "${PATHDATA}/playout_controls.sh -c=shutdownsilent" | at -q t now + ${VALUE} minute fi ;; - shutdownwithreducingvolume) + shutdownvolumereduction) # get current volume in percent VOLPERCENT=$(echo -e status\\nclose | nc -w 1 localhost 6600 | grep -o -P '(?<=volume: ).*') # divide current volume by 10 to get a step size for reducing the volume From e44c499e9960e26cf3851212a296d963af6f4e4c Mon Sep 17 00:00:00 2001 From: manajoe <mana@mm13.de> Date: Wed, 6 Jan 2021 20:28:14 +0100 Subject: [PATCH 056/206] Changed at queue name to "r" --- htdocs/inc.setShutdownVolumeReduction.php | 36 +++++++++++------------ scripts/playout_controls.sh | 2 +- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/htdocs/inc.setShutdownVolumeReduction.php b/htdocs/inc.setShutdownVolumeReduction.php index 55a5feb0a..f0dc80663 100644 --- a/htdocs/inc.setShutdownVolumeReduction.php +++ b/htdocs/inc.setShutdownVolumeReduction.php @@ -7,12 +7,12 @@ /* * Values for pulldown form */ - $shut_reduce_volume_vals = array(2,5,10,15,20,30,45,60,120,180,240); + $shutdownvolumereductionvals = array(10,15,20,30,45,60,120,180,240); /* - * Get shut_reduce_volume_ value + * Get shutdownvolumereduction value */ - $shut_reduce_volume_value = exec("sudo atq -q t | awk '{print $5}'"); - if ($shut_reduce_volume_value != "") { + $shutdownvolumereductionvalue = exec("sudo atq -q r | awk '{print $5}'"); + if ($shutdownvolumereductionvalue != "") { $unixtime = time(); /* * For the night owls: if the shutdown time is after midnight (and so on the next day), @@ -21,30 +21,30 @@ * value in the calculation below. * This is fixed by subtracting a day from the current time, as we only need the difference. */ - if ($unixtime > strtotime($shut_reduce_volume_value)) { + if ($unixtime > strtotime($shutdownvolumereductionvalue)) { $unixtime = $unixtime - 86400; } - $remainingshut_reduce_volume_ = (strtotime($shut_reduce_volume_value)-$unixtime)/60; - if($remainingshut_reduce_volume_ > 60) { - $remainingshut_reduce_volume_ = 60; + $remainingshutdownvolumereduction = (strtotime($shutdownvolumereductionvalue)-$unixtime)/60; + if($remainingshutdownvolumereduction > 60) { + $remainingshutdownvolumereduction = 60; } - $remainingshut_reduce_volume_select = round($remainingshut_reduce_volume_); + $remainingshutdownvolumereductionselect = round($remainingshutdownvolumereduction); } else { - $remainingshut_reduce_volume_select = 0; + $remainingshutdownvolumereductionselect = 0; } - //$remainingshut_reduce_volume_select = 10; // debug + //$remainingshutdownvolumereductionselect = 10; // debug ?> <div class="col-md-4 col-sm-6"> <div class="row" style="margin-bottom:1em;"> <div class="col-xs-6"> - <h4><?php print $lang['globalShutReduceVolume']; ?></h4> - <form name='shutdownwithreducingvolume' method='post' action='<?php print $_SERVER['PHP_SELF']; ?>'> + <h4><?php print $lang['globalShutdownVolumeReduction']; ?></h4> + <form name='shutdownvolumereduction' method='post' action='<?php print $_SERVER['PHP_SELF']; ?>'> <div class="input-group my-group"> - <select id="shutdownwithreducingvolume" name="shutdownwithreducingvolume" class="selectpicker form-control"> + <select id="shutdownvolumereduction" name="shutdownvolumereduction" class="selectpicker form-control"> <option value='0'><?php print $lang['globalOff']; ?></option> <?php - foreach($shut_reduce_volume_vals as $i) { + foreach($shutdownvolumereductionvals as $i) { print " <option value='".$i."'"; print ">".$i."min</option>"; @@ -60,12 +60,12 @@ </div> <div class="col-xs-6"> - <div class="orange c100 p<?php print round($remainingshut_reduce_volume_select*100/60); ?>"> + <div class="orange c100 p<?php print round($remainingshutdownvolumereductionselect*100/60); ?>"> <span><?php - if($remainingshut_reduce_volume_select == 0) { + if($remainingshutdownvolumereductionselect == 0) { print $lang['globalOff']; } else { - print $remainingshut_reduce_volume_select."min"; + print $remainingshutdownvolumereductionselect."min"; } ?></span> <div class="slice"> diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index 09091fbe4..d445e358b 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -267,7 +267,7 @@ case $COMMAND in TIMESTEP=`expr $((VALUE / 10))`; # loop 10 times to reduce the volume by VOLSTEP every TIMESTEP minutes for i in $(seq 1 10); do - VOLPERCENT=`expr ${VOLPERCENT} - ${VOLSTEP}`; echo "${PATHDATA}/playout_controls.sh -c=setvolume -v="$VOLPERCENT | at -q t now + `expr $(((i * TIMESTEP)-1))` minute; + VOLPERCENT=`expr ${VOLPERCENT} - ${VOLSTEP}`; echo "${PATHDATA}/playout_controls.sh -c=setvolume -v="$VOLPERCENT | at -q r now + `expr $(((i * TIMESTEP)-1))` minute; done # schedule shutdown after VALUE minutes echo "${PATHDATA}/playout_controls.sh -c=shutdownsilent" | at -q t now + ${VALUE} minute From 4570a981642f2f80c89020c55599ead66a12e198 Mon Sep 17 00:00:00 2001 From: manajoe <mana@mm13.de> Date: Wed, 6 Jan 2021 20:34:52 +0100 Subject: [PATCH 057/206] shutdown also in at queue "r" --- scripts/playout_controls.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index d445e358b..30ac2640c 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -270,7 +270,7 @@ case $COMMAND in VOLPERCENT=`expr ${VOLPERCENT} - ${VOLSTEP}`; echo "${PATHDATA}/playout_controls.sh -c=setvolume -v="$VOLPERCENT | at -q r now + `expr $(((i * TIMESTEP)-1))` minute; done # schedule shutdown after VALUE minutes - echo "${PATHDATA}/playout_controls.sh -c=shutdownsilent" | at -q t now + ${VALUE} minute + echo "${PATHDATA}/playout_controls.sh -c=shutdownsilent" | at -q r now + ${VALUE} minute ;; reboot) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi From 49ca4f12c76089faeccc9c0ade60350f456b40dd Mon Sep 17 00:00:00 2001 From: manajoe <mana@mm13.de> Date: Wed, 6 Jan 2021 20:36:40 +0100 Subject: [PATCH 058/206] enabled debug.log --- scripts/playout_controls.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index 30ac2640c..0474e73dc 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -259,6 +259,7 @@ case $COMMAND in fi ;; shutdownvolumereduction) + if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi # get current volume in percent VOLPERCENT=$(echo -e status\\nclose | nc -w 1 localhost 6600 | grep -o -P '(?<=volume: ).*') # divide current volume by 10 to get a step size for reducing the volume From 0604456d6a360201fda13f3af61101608eb82541 Mon Sep 17 00:00:00 2001 From: manajoe <mana@mm13.de> Date: Wed, 6 Jan 2021 21:00:50 +0100 Subject: [PATCH 059/206] separate at queue for the shutdown --- htdocs/inc.setShutdownVolumeReduction.php | 2 +- scripts/playout_controls.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/inc.setShutdownVolumeReduction.php b/htdocs/inc.setShutdownVolumeReduction.php index f0dc80663..124d5e18d 100644 --- a/htdocs/inc.setShutdownVolumeReduction.php +++ b/htdocs/inc.setShutdownVolumeReduction.php @@ -11,7 +11,7 @@ /* * Get shutdownvolumereduction value */ - $shutdownvolumereductionvalue = exec("sudo atq -q r | awk '{print $5}'"); + $shutdownvolumereductionvalue = exec("sudo atq -q q | awk '{print $5}'"); if ($shutdownvolumereductionvalue != "") { $unixtime = time(); /* diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index 0474e73dc..c7917fcb2 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -271,7 +271,7 @@ case $COMMAND in VOLPERCENT=`expr ${VOLPERCENT} - ${VOLSTEP}`; echo "${PATHDATA}/playout_controls.sh -c=setvolume -v="$VOLPERCENT | at -q r now + `expr $(((i * TIMESTEP)-1))` minute; done # schedule shutdown after VALUE minutes - echo "${PATHDATA}/playout_controls.sh -c=shutdownsilent" | at -q r now + ${VALUE} minute + echo "${PATHDATA}/playout_controls.sh -c=shutdownsilent" | at -q q now + ${VALUE} minute ;; reboot) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi From a68f71a196bd08146c099bc80ed8ce2143afcd9c Mon Sep 17 00:00:00 2001 From: manajoe <mana@mm13.de> Date: Wed, 6 Jan 2021 21:23:13 +0100 Subject: [PATCH 060/206] Fixed: disabling the planned shutdown --- scripts/playout_controls.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index c7917fcb2..e4d5864c9 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -271,7 +271,11 @@ case $COMMAND in VOLPERCENT=`expr ${VOLPERCENT} - ${VOLSTEP}`; echo "${PATHDATA}/playout_controls.sh -c=setvolume -v="$VOLPERCENT | at -q r now + `expr $(((i * TIMESTEP)-1))` minute; done # schedule shutdown after VALUE minutes - echo "${PATHDATA}/playout_controls.sh -c=shutdownsilent" | at -q q now + ${VALUE} minute + if [ ${VALUE} -gt 0 ]; + then + # schedule shutdown after VALUE minutes + echo "${PATHDATA}/playout_controls.sh -c=shutdownsilent" | at -q q now + ${VALUE} minute + fi ;; reboot) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi From b1f7b5c18e14a5385042cf8d1612839aed4be423 Mon Sep 17 00:00:00 2001 From: manajoe <mana@mm13.de> Date: Wed, 6 Jan 2021 21:25:50 +0100 Subject: [PATCH 061/206] fix2 for disabling shutdown --- scripts/playout_controls.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index e4d5864c9..281804729 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -260,6 +260,8 @@ case $COMMAND in ;; shutdownvolumereduction) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi + # remove existing volume and shutdown commands + for i in `sudo atq -q q | awk '{print $1}'`;do sudo atrm $i;done # get current volume in percent VOLPERCENT=$(echo -e status\\nclose | nc -w 1 localhost 6600 | grep -o -P '(?<=volume: ).*') # divide current volume by 10 to get a step size for reducing the volume From 6db18ca95b6fc5bde59533c78545fb5415a55d19 Mon Sep 17 00:00:00 2001 From: manajoe <mana@mm13.de> Date: Wed, 6 Jan 2021 21:27:16 +0100 Subject: [PATCH 062/206] fix3: disabling "at" for the scheduled volume change --- scripts/playout_controls.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index 281804729..d0f42623c 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -261,6 +261,7 @@ case $COMMAND in shutdownvolumereduction) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi # remove existing volume and shutdown commands + for i in `sudo atq -q r | awk '{print $1}'`;do sudo atrm $i;done for i in `sudo atq -q q | awk '{print $1}'`;do sudo atrm $i;done # get current volume in percent VOLPERCENT=$(echo -e status\\nclose | nc -w 1 localhost 6600 | grep -o -P '(?<=volume: ).*') From 518dc9b7ff950aacebed674cdf8032ec239b813f Mon Sep 17 00:00:00 2001 From: manajoe <mana@mm13.de> Date: Wed, 6 Jan 2021 21:40:33 +0100 Subject: [PATCH 063/206] added 4 controls for RFID --- scripts/rfid_trigger_play.sh | 16 ++++++++++++++++ settings/rfid_trigger_play.conf.sample | 10 ++++++++++ 2 files changed, 26 insertions(+) diff --git a/scripts/rfid_trigger_play.sh b/scripts/rfid_trigger_play.sh index b15a7c912..e96902eb7 100755 --- a/scripts/rfid_trigger_play.sh +++ b/scripts/rfid_trigger_play.sh @@ -238,6 +238,22 @@ if [ "$CARDID" ]; then # shutdown after -v minutes $PATHDATA/playout_controls.sh -c=shutdownafter -v=60 ;; + $SHUTDOWNVOLUMEREDUCTION10) + # reduce volume until shutdown in -v minutes + $PATHDATA/playout_controls.sh -c=shutdownvolumereduction -v=10 + ;; + $SHUTDOWNVOLUMEREDUCTION15) + # reduce volume until shutdown in -v minutes + $PATHDATA/playout_controls.sh -c=shutdownvolumereduction -v=15 + ;; + $SHUTDOWNVOLUMEREDUCTION30) + # reduce volume until shutdown in -v minutes + $PATHDATA/playout_controls.sh -c=shutdownvolumereduction -v=30 + ;; + $SHUTDOWNVOLUMEREDUCTION60) + # reduce volume until shutdown in -v minutes + $PATHDATA/playout_controls.sh -c=shutdownvolumereduction -v=60 + ;; $ENABLEWIFI) $PATHDATA/playout_controls.sh -c=enablewifi ;; diff --git a/settings/rfid_trigger_play.conf.sample b/settings/rfid_trigger_play.conf.sample index b061c8a44..21b30febb 100755 --- a/settings/rfid_trigger_play.conf.sample +++ b/settings/rfid_trigger_play.conf.sample @@ -116,6 +116,16 @@ SHUTDOWNAFTER30="%SHUTDOWNAFTER30%" ### Shutdown after 60 min. SHUTDOWNAFTER60="%SHUTDOWNAFTER60%" +## Shutdown Timer Volume Reduction : reduce volume until shutdown in x minutes +### Shutdown after 10 min. +SHUTDOWNVOLUMEREDUCTION10="%SHUTDOWNVOLUMEREDUCTION10%" +### Shutdown after 15 min. +SHUTDOWNVOLUMEREDUCTION15="%SHUTDOWNVOLUMEREDUCTION15%" +### Shutdown after 30 min. +SHUTDOWNVOLUMEREDUCTION30="%SHUTDOWNVOLUMEREDUCTION30%" +### Shutdown after 60 min. +SHUTDOWNVOLUMEREDUCTION60="%SHUTDOWNVOLUMEREDUCTION60%" + ## Wifi: switch on/off and other ### Enable Wifi ENABLEWIFI="%ENABLEWIFI%" From fb087b2441ae155c76d715ad764ba44d26b6d398 Mon Sep 17 00:00:00 2001 From: manajoe <mana@mm13.de> Date: Wed, 6 Jan 2021 21:41:58 +0100 Subject: [PATCH 064/206] updated description --- settings/rfid_trigger_play.conf.sample | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/settings/rfid_trigger_play.conf.sample b/settings/rfid_trigger_play.conf.sample index 21b30febb..c983823d8 100755 --- a/settings/rfid_trigger_play.conf.sample +++ b/settings/rfid_trigger_play.conf.sample @@ -117,13 +117,13 @@ SHUTDOWNAFTER30="%SHUTDOWNAFTER30%" SHUTDOWNAFTER60="%SHUTDOWNAFTER60%" ## Shutdown Timer Volume Reduction : reduce volume until shutdown in x minutes -### Shutdown after 10 min. +### Reduce volume and Shutdown after 10 min. SHUTDOWNVOLUMEREDUCTION10="%SHUTDOWNVOLUMEREDUCTION10%" -### Shutdown after 15 min. +### Reduce volume and Shutdown after 15 min. SHUTDOWNVOLUMEREDUCTION15="%SHUTDOWNVOLUMEREDUCTION15%" -### Shutdown after 30 min. +### Reduce volume and Shutdown after 30 min. SHUTDOWNVOLUMEREDUCTION30="%SHUTDOWNVOLUMEREDUCTION30%" -### Shutdown after 60 min. +### Reduce volume and Shutdown after 60 min. SHUTDOWNVOLUMEREDUCTION60="%SHUTDOWNVOLUMEREDUCTION60%" ## Wifi: switch on/off and other From 1b4a1e17e2b0270fbe74304054983b1c8168b2ea Mon Sep 17 00:00:00 2001 From: ChrisSoc <pi@exaberry> Date: Wed, 6 Jan 2021 22:40:54 +0100 Subject: [PATCH 065/206] Add Readme --- components/bluetooth-sink-switch/README.md | 270 +++++++++++++++++++++ components/bluetooth-sink-switch/webif.png | Bin 0 -> 22086 bytes 2 files changed, 270 insertions(+) create mode 100644 components/bluetooth-sink-switch/README.md create mode 100644 components/bluetooth-sink-switch/webif.png diff --git a/components/bluetooth-sink-switch/README.md b/components/bluetooth-sink-switch/README.md new file mode 100644 index 000000000..3bcbf3025 --- /dev/null +++ b/components/bluetooth-sink-switch/README.md @@ -0,0 +1,270 @@ +## Neatly switch between soundcard and bluetooth audio output + +**Wouldn't it be nice to have regular speakers and Bluetooth headphones on your Phoniebox and choose the desired output on a spur of the moment? ** + +This component provides a mechanism to toggle between both audio sinks through all the usual user interfaces (i.e. GPIO, RFID Card Swipe, Web Interface). The current status is reflected in the Web Interface and through an optional LED. + +**Convinced? So, what is the vision?** + +When a user powers on their Bluetooth headphones, they connect automatically to the Phoniebox. At the switch of the button (or card swipe, etc) the (already running) audio playback is transferred from the speakers to the headphones. This happens almost seamlessly. Parents feel an instant wave of relief at not having to listen to the 500th iteration of this month favourite song. The small user feels instantly proud at having working headphones much like the mom/dad always uses while doing home-office online meetings. If no Bluetooth headphones are connected, the audio sink toggle request defaults to speakers. An LED indicates the currently active audio sink. + +If the feature [bluetooth-buttons](../control/bluetooth-buttons) is enabled the audio stream is automatically switched over to bluetooth on connect and back to speakers on disconnect. + +If no bluetooth device is connected, the output defaults back to speakers. After boot-up the output is always speakers to make sure start-up sound are audiable and to avoid confusion. + + + +**Limitations** + +This feature only works for the *Classic* Edition. Why? It relies on the mpd multiple output channels feature to switch between outputs. This is no avaiable in mopidy, which is used in the Spotify Edition. + +### Installation + +This looks lengthy, but I the major deal is setting up your audio output devices. I have been rather explicit to avoid confusion. + +#### Step 1) Setting up asound.conf + +You need to set up both audio sinks and make sure they work. This is pretty much a prerequisite for everything that follows. + +Follow the instructions for your soundcard. Configure `etc/asound.conf`correctly. And make sure it works! + +Then follow the instructions on the [Wiki on how to connect the bluetooth device](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Bluetooth). We diverge where we set up two audio sinks instead of one: Just **add** the `pcm.btspeaker` section described in the wiki to `etc/asound.conf (choose a name to your liking). Do **not** touch the mpd.conf yet! + +The new entry should end up looking like this: +~~~ +pcm.btheadphone { + type plug + slave.pcm { + type bluealsa + service "org.bluealsa" + device "C4:FB:20:63:A7:F2" + profile "a2dp" + delay -20000 + } + hint { + show on + description "Gesas Headphones" + } +} +~~~ + +In case of doubt, reboot. + +Test the new audio device (mine is called `pcm.btheadphone`). Also test the soundcard (here `pcm.hifiberry` for the regular speakers). +~~~sh +$ aplay -D btheadphone /usr/share/sounds/alsa/Front_Center.wav +$ aplay -D hifiberry /usr/share/sounds/alsa/Front_Center.wav +~~~ + +#### Step 2) Setting up mpd.conf + +You need to set up two audio_output sections. **The order is important**: the first entry must relate to the soundcard setup, the second entry must relate to the bluetooth setup. Give meaningful names, as they will show up in the Web Interface. + +~~~sh +# The first entry should match your soundcard. If you have a working setup, there is most likly no need to change it! As an exanple, here is my configuration for my HifiBerry MiniAmp. +audio_output { + type "alsa" + name "HifiBerry Speakers" # This name will show up in the Web Interface Status + device "hifiberry" # This is the pcm.hifiberry device from the asound.conf. If you did not specify a name, but use the 'default', delete this line + auto_resample "no" # Depends on your asound.conf. In doubt delete this line + mixer_control "Master" # This is the iFace name, you will recognize from your Phoniebox installation +} + +# The second entry belongs to the bluetooth device +audio_output { + type "alsa" + name "Gesas Headphones" # This name will show up in the Web Interface Status + device "btheadphone" # This is the pcm.btheadphone device from the asound.conf + mixer_type "software" + auto_resample "no" + auto_format "no" + enabled "no" # Default is disabled, keepin the soundcard as primary output +} +~~~ + +Restarting the mpd.service or else reboot. + +Check the setup: + +~~~sh +$ mpc outputs +Output 1 (HifiBerry Speakers) is disabled +Output 2 (Gesas Headphones) is enabled +~~~ + +You may switch with `$ mpc enable only 1` and `$ mpc enable only 2`. Play some music and use these commands to check you mpd configuration. You should be able to switch the audio output between the two devices. + +#### Step 3) Run the installer + +This sets up the appropriate user rights and registers the component with global settings etc. + +~~~sh +$ cd components/bluetooth-sink-switch +$ ./install-bt-sink-switch.sh +~~~ + + +#### Step 4) Fine-tuning + +**Status LED** + +An optional status LED will be turned on if the audio sink is set to bluetooth. If a toggle command is issued, but no bluetooth device is connected, the LED will blink three times. Looks very neat, if you have a button with integrated LED. + +Open `bt-sink-switch.py` and edit the following lines. (Default is `led_pin=None`) +~~~python +# Uses BCM GPIO numbering, i.e. 'led_pin = 6' means GPIO6 +# Set 'led_pin=None' to disable LED support (and no GPIO pin is blocked in this case) +led_pin = 6 +~~~ + +**GPIO control** + +If you want to toggle from a GPIO button (e.g. on GPIO5), add these lines to your `gpio_settings.ini` + +~~~ +[BluetoothToggle] +enabled: True +Type: Button +Pin: 5 +pull_up: True +hold_time: 0.3 +functionCall: functionCallBluetoothToggle +~~~ + +**RFID Card** + +If you want to toggle by RFID card swipe, set the card id in `rfid_trigger_play.conf`, e.g.: + +~~~ +### Toggle between speakers and bluetooth headphones +CMDBLUETOOTHTOGGLE="1364237231134" +~~~ + +**Volume attenuation** + +Speakers and Headphones can have very different maximum volume levels. This sometimes leads to very strong volume level changes when switching between speakers and headphones. Restructing the maximum volume with the Phoniebox-integrated max-volume setting does no yield the desired effect, as this is a single setting and does not differentiate between different audio sinks. + +The solution is adding a `softvol` component to the /etc/asound.conf. You may already have one set up, if your soundcard does not have a hardware volume control. Then it is easy! The `softvol` copmonent adds a systemwide ALSA-based volume control for a hardware soundcard. You will need to give it a name, that does **not** exist! Check with `$ amixer scontrols` first, which names are already taken. Here, I have choosen *Master*. This will work even if your soundcard has a hardware volume control. + +The `softvol` component has a feature called *max_db* to limit the maximum volume, which we are going to utilize here. With that we are limiting the maximum volume of the speakers systemwide and independent of MPD or other Phoniebox settings. + +~~~ +# Add the sofvol section +pcm.hifiberry { + type softvol + slave.pcm "plughw:0,0" # Your audio output. Here: audio stream goes direclty to the soundcard 0 + control.name "Master" # Unique, new iFace name not already used in the system + control.card 0 # Be sure to also adjust the index to your soundcard number; i.e. if your soundcard is plughw:1,0 this should also be 1 + max_dB -20.0 # This limits the maximum speaker volume. + # Play around with this number until your are satisfied with the volume change effect when switching between headphones and speakers + hint { + show on + description "HifiBerry Speakers" + } +} + +# Setup the default device +pcm.!default { + type plug + slave.pcm "hifiberry" +} + +ctl.!default { + type hw card 0 +} +~~~ + +**Attention:** This changes the iFace name! The new iFace name is now *Master*. You will need to adjust your mpd.conf in two places + +- Change the mixer control to the new iFace name: `mixer_control "Master"` +- Ensure that it is there is no entry mixer_type or that it is `mixer_type "hardware"` + +See example [mpd.conf](#step-2--setting-up-mpd-conf) above! + +Also change the Phoniebox setting with +~~~sh +$ echo "Master" > RPi-Jukebox-RFID/settings/Audio_iFace_Name +~~~ +and reboot! + +Test the setup with running speaker test in one console +~~~ +$ speaker-test -D hifiberry +~~~ +and changing the default volume control in another console +~~~ +$ alsamixer +~~~ + +If you are experimenting with a softvol and want to get rid of it again - that is not an easy task. Most promising approach is to insert the SD-Card into a different Linux machine delete the file `/var/lib/alsa/asound.state`. This must be done from a different computer, as this file gets written during shutdown. More infos about the softvol may be found [here](https://alsa.opensrc.org/Softvol) + +## Troubleshooting + +Troubleshooting comes in three major sub-tasks: + +- Step 1) Ensure that your asound.conf and mpd.conf configurations are working correclty by performing the checks described in the respective sections +- Step 2) Check that the script for stream toggling works. Call the script manually from console with debug output: `$ ./RPi-Jukebox-RFID/components/bluetooth-sink-switch/bt-sink-switch.py toggle debug`. And analyze the output +- Step 3) Check the actual user interface that you are going to use (e.g. GPIO buttons) + +## Some background + +https://alsa.opensrc.org/Softvol +https://alsa.opensrc.org/How_to_use_softvol_to_control_the_master_volume +https://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html + +## Example config + +For reference, this is my /etc/asound.conf in full (it also sets up an equalizer). The corresponding mpd.conf excerpt is the one given above. + +~~~ + pcm.btheadphone { + type plug + slave.pcm { + type bluealsa + service "org.bluealsa" + device "00:1B:66:A1:56:8D" + profile "a2dp" + delay -20000 + } + hint { + show on + description "Gesas Headphones" + } +} + +pcm.hifiberry { + type softvol + slave.pcm equal + control.name "Master" + control.card 0 + max_dB -20.0 + hint { + show on + description "HifiBerry Speakers" + } +} + +pcm.!default { + type asym + playback.pcm "hifiberry" +} + + +ctl.!default { + type hw card 0 +} + +ctl.equal { + type equal; +} + +pcm.equalcore { + type equal; + slave.pcm "plughw:0,0"; +} + +pcm.equal { + type plug; + slave.pcm equalcore; +} +~~~ \ No newline at end of file diff --git a/components/bluetooth-sink-switch/webif.png b/components/bluetooth-sink-switch/webif.png new file mode 100644 index 0000000000000000000000000000000000000000..adf386ba0ce6de6a92915f77b6efe0e110600bac GIT binary patch literal 22086 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 A^Z)<= literal 0 HcmV?d00001 From 0abaf6c494186a62edabb1e831c00a81e61e7e9e Mon Sep 17 00:00:00 2001 From: ChisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Wed, 6 Jan 2021 22:49:27 +0100 Subject: [PATCH 066/206] Fix some formatting issues in Readme --- components/bluetooth-sink-switch/README.md | 28 +++++++++++++--------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/components/bluetooth-sink-switch/README.md b/components/bluetooth-sink-switch/README.md index 3bcbf3025..68865ece3 100644 --- a/components/bluetooth-sink-switch/README.md +++ b/components/bluetooth-sink-switch/README.md @@ -1,6 +1,6 @@ ## Neatly switch between soundcard and bluetooth audio output -**Wouldn't it be nice to have regular speakers and Bluetooth headphones on your Phoniebox and choose the desired output on a spur of the moment? ** +**Wouldn't it be nice to have regular speakers and Bluetooth headphones on your Phoniebox and choose the desired output on a spur of the moment?** This component provides a mechanism to toggle between both audio sinks through all the usual user interfaces (i.e. GPIO, RFID Card Swipe, Web Interface). The current status is reflected in the Web Interface and through an optional LED. @@ -28,7 +28,7 @@ You need to set up both audio sinks and make sure they work. This is pretty much Follow the instructions for your soundcard. Configure `etc/asound.conf`correctly. And make sure it works! -Then follow the instructions on the [Wiki on how to connect the bluetooth device](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Bluetooth). We diverge where we set up two audio sinks instead of one: Just **add** the `pcm.btspeaker` section described in the wiki to `etc/asound.conf (choose a name to your liking). Do **not** touch the mpd.conf yet! +Then follow the instructions on the [Wiki on how to connect the bluetooth device](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Bluetooth). We diverge where we set up two audio sinks instead of one: Just **add** the `pcm.btspeaker` section described in the wiki to `etc/asound.conf` (choose a name to your liking). Do **not** touch the mpd.conf yet! The new entry should end up looking like this: ~~~ @@ -60,12 +60,14 @@ $ aplay -D hifiberry /usr/share/sounds/alsa/Front_Center.wav You need to set up two audio_output sections. **The order is important**: the first entry must relate to the soundcard setup, the second entry must relate to the bluetooth setup. Give meaningful names, as they will show up in the Web Interface. -~~~sh -# The first entry should match your soundcard. If you have a working setup, there is most likly no need to change it! As an exanple, here is my configuration for my HifiBerry MiniAmp. +~~~ +# The first entry should match your soundcard. If you have a working setup, there is most likly no need to change it! +# As an exanple, here is my configuration for my HifiBerry MiniAmp. audio_output { type "alsa" name "HifiBerry Speakers" # This name will show up in the Web Interface Status - device "hifiberry" # This is the pcm.hifiberry device from the asound.conf. If you did not specify a name, but use the 'default', delete this line + device "hifiberry" # This is the pcm.hifiberry device from the asound.conf. + # If you did not specify a name, but use the 'default', delete this entry auto_resample "no" # Depends on your asound.conf. In doubt delete this line mixer_control "Master" # This is the iFace name, you will recognize from your Phoniebox installation } @@ -154,9 +156,11 @@ pcm.hifiberry { type softvol slave.pcm "plughw:0,0" # Your audio output. Here: audio stream goes direclty to the soundcard 0 control.name "Master" # Unique, new iFace name not already used in the system - control.card 0 # Be sure to also adjust the index to your soundcard number; i.e. if your soundcard is plughw:1,0 this should also be 1 + control.card 0 # Be sure to also adjust the index to your soundcard number + # i.e. if your soundcard is plughw:1,0 this should also be 1 max_dB -20.0 # This limits the maximum speaker volume. - # Play around with this number until your are satisfied with the volume change effect when switching between headphones and speakers + # Play around with this number until your are satisfied with the + # volume change effect when switching between headphones and speakers hint { show on description "HifiBerry Speakers" @@ -179,7 +183,7 @@ ctl.!default { - Change the mixer control to the new iFace name: `mixer_control "Master"` - Ensure that it is there is no entry mixer_type or that it is `mixer_type "hardware"` -See example [mpd.conf](#step-2--setting-up-mpd-conf) above! +See example [mpd.conf](#step-2-setting-up-mpdconf) above! Also change the Phoniebox setting with ~~~sh @@ -209,15 +213,17 @@ Troubleshooting comes in three major sub-tasks: ## Some background https://alsa.opensrc.org/Softvol + https://alsa.opensrc.org/How_to_use_softvol_to_control_the_master_volume + https://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html ## Example config -For reference, this is my /etc/asound.conf in full (it also sets up an equalizer). The corresponding mpd.conf excerpt is the one given above. +For reference, this is my /etc/asound.conf in full (it also sets up an equalizer). The corresponding [mpd.conf](#step-2-setting-up-mpdconf) excerpt is the one given above. ~~~ - pcm.btheadphone { +pcm.btheadphone { type plug slave.pcm { type bluealsa @@ -267,4 +273,4 @@ pcm.equal { type plug; slave.pcm equalcore; } -~~~ \ No newline at end of file +~~~ From 997942beaf070684077500977ec6f358d753cfba Mon Sep 17 00:00:00 2001 From: ChrisSoc <pi@exaberry> Date: Wed, 6 Jan 2021 22:50:59 +0100 Subject: [PATCH 067/206] Change default to be w/o LED --- components/bluetooth-sink-switch/bt-sink-switch.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/components/bluetooth-sink-switch/bt-sink-switch.py b/components/bluetooth-sink-switch/bt-sink-switch.py index 495b725d0..a6d1ae49b 100755 --- a/components/bluetooth-sink-switch/bt-sink-switch.py +++ b/components/bluetooth-sink-switch/bt-sink-switch.py @@ -18,8 +18,7 @@ # If called as script, this variable will set GPIO number of the LED to reflect sink status # Uses BCM GPIO numbering, i.e. 'led_pin = 6' means GPIO6 # Set 'led_pin=None' to disable LED support (and no GPIO pin is blocked in this case) -# led_pin = None -led_pin = 6 +led_pin = None # Create logger logger = logging.getLogger('bt-sink-switch.py') From 6310873c4826591789d17164463a42dfbd7f5669 Mon Sep 17 00:00:00 2001 From: Schneelocke <75278644+Schneelocke@users.noreply.github.com> Date: Thu, 7 Jan 2021 22:07:40 +0100 Subject: [PATCH 068/206] Spotify url conversion (http to mopidy format) (#1203) * Added spotify url conversion * Improved and translated error message --- htdocs/inc.processCheckCardEditRegister.php | 16 ++++++++++++++++ htdocs/lang/lang-de-DE.php | 1 + htdocs/lang/lang-en-UK.php | 1 + htdocs/lang/lang-nl-NL.php | 1 + 4 files changed, 19 insertions(+) diff --git a/htdocs/inc.processCheckCardEditRegister.php b/htdocs/inc.processCheckCardEditRegister.php index 7d96dcf53..5ae713aee 100755 --- a/htdocs/inc.processCheckCardEditRegister.php +++ b/htdocs/inc.processCheckCardEditRegister.php @@ -171,6 +171,22 @@ function fillRfidArrAvailWithUsed($rfidAvailArr, $rfidUsedArr=array()) { $post['audiofolderNew'] = $link = str_replace(array('http://','https://','/','=','-','.', 'www','?','&'), '', $post['streamURL']); } + //wrong spotify url, convert to mopidy format + if((isset($post['streamURL']) && $post['streamType'] == "spotify") && (strpos($post['streamURL'], "https://open.spotify.com/") !== false)){ + $patterns = array(); + $patterns[0] = '/https\:\/\/open.spotify.com/'; + $patterns[1] = '/\/(playlist|album|track|artist)\//'; + $patterns[2] = '/(\w+)\?(.*)/'; + $replacements = array(); + $replacements[0] = 'spotify:'; + $replacements[1] = '$1:'; + $replacements[2] = '$1'; + $newSpotifyURL = preg_replace($patterns, $replacements, $post['streamURL']); + $messageError .= $lang['cardRegisterErrorConvertSpotifyURL']." (error 007)<br />".$post['streamURL']." ➔ ".$newSpotifyURL; + $post['streamURL'] = $newSpotifyURL; + } + + /* * any errors? */ diff --git a/htdocs/lang/lang-de-DE.php b/htdocs/lang/lang-de-DE.php index 386214cc4..f1992aa9f 100755 --- a/htdocs/lang/lang-de-DE.php +++ b/htdocs/lang/lang-de-DE.php @@ -124,6 +124,7 @@ $lang['cardRegisterErrorExistingAndNew'] = "<p>Das ist zu viel! Wähle entweder einen bestehenden Ordner aus oder erstelle einen neuen.</p>"; $lang['cardRegisterErrorExistingFolder'] = "<p>Ein Ordner mit dem gleichen Namen existiert bereits! Wähle einen anderen. </p>"; $lang['cardRegisterErrorSuggestFolder'] = "Ein Ordnername für den Stream muss erstellt werden. Unten im Formular steht ein Vorschlag."; +$lang['cardRegisterErrorConvertSpotifyURL'] = "Falsche Spotify URL, konvertiert in korrektes Format"; $lang['cardRegisterStream2Card'] = "Stream ist mit der Karten-ID verknüpft."; $lang['cardRegisterFolder2Card'] = "Audio-Ordner ist nun mit der Karten-ID verknüpft."; $lang['cardRegisterDownloadingYT'] = "<p>YouTube Audio wird heruntergeladen. Dies kann einige Minuten dauern. Du kannst die Logdatei \"youtube-dl.log\" im Ordner \"shared\" ansehen.</p>"; diff --git a/htdocs/lang/lang-en-UK.php b/htdocs/lang/lang-en-UK.php index ee208e498..e670c4174 100755 --- a/htdocs/lang/lang-en-UK.php +++ b/htdocs/lang/lang-en-UK.php @@ -125,6 +125,7 @@ $lang['cardRegisterErrorExistingAndNew'] = "<p>This is too much! Either choose an existing folder or create a new one.</p>"; $lang['cardRegisterErrorExistingFolder'] = "<p>A folder named with the same name already exists! Chose a different one.</p>"; $lang['cardRegisterErrorSuggestFolder'] = "A folder name for the stream needs to be created. Below in the form I made a suggestion."; +$lang['cardRegisterErrorConvertSpotifyURL'] = "Wrong spotify url, converted to the correct format"; $lang['cardRegisterStream2Card'] = "Stream is linked to Card ID."; $lang['cardRegisterFolder2Card'] = "Audio folder is now linked to Card."; $lang['cardRegisterDownloadingYT'] = "<p>YouTube audio is downloading. This may take a couple of minutes. You may check the logfile \"youtube-dl.log\" in the shared folder.</p>"; diff --git a/htdocs/lang/lang-nl-NL.php b/htdocs/lang/lang-nl-NL.php index 6f27f51e3..1fb654509 100755 --- a/htdocs/lang/lang-nl-NL.php +++ b/htdocs/lang/lang-nl-NL.php @@ -109,6 +109,7 @@ $lang['cardRegisterErrorExistingAndNew'] = "<p>Dit is te veel! Kies een bestaande map of maak een nieuwe map aan.</p>"; $lang['cardRegisterErrorExistingFolder'] = "<p>Er bestaat al een map met dezelfde naam! Kies een andere.</p>"; $lang['cardRegisterErrorSuggestFolder'] = "Er moet een mapnaam voor de stream worden gemaakt. Hieronder in het formulier heb ik een suggestie gedaan."; +$lang['cardRegisterErrorConvertSpotifyURL'] = "Verkeerde spotify url, geconverteerd naar het juiste formaat"; $lang['cardRegisterStream2Card'] = "Stream is gekoppeld aan kaart-ID."; $lang['cardRegisterFolder2Card'] = "De audiomap is nu gekoppeld aan kaart-ID"; $lang['cardRegisterDownloadingYT'] = "<p>YouTube-audio wordt gedownload. Dit kan een paar minuten duren. U kunt het logbestand 'youtube-dl.log' in de gedeelde map controleren.</p>"; From e954235f34ea92897c83b00a358e3cffef1edd56 Mon Sep 17 00:00:00 2001 From: ChisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Sun, 10 Jan 2021 07:48:03 +0100 Subject: [PATCH 069/206] Fix typos --- components/bluetooth-sink-switch/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/components/bluetooth-sink-switch/README.md b/components/bluetooth-sink-switch/README.md index 68865ece3..61dd6b2d0 100644 --- a/components/bluetooth-sink-switch/README.md +++ b/components/bluetooth-sink-switch/README.md @@ -16,7 +16,7 @@ If no bluetooth device is connected, the output defaults back to speakers. After **Limitations** -This feature only works for the *Classic* Edition. Why? It relies on the mpd multiple output channels feature to switch between outputs. This is no avaiable in mopidy, which is used in the Spotify Edition. +This feature only works for the *Classic* Edition. Why? It relies on the mpd multiple output channels feature to switch between outputs. This is no available in mopidy, which is used in the Spotify Edition. ### Installation @@ -26,9 +26,9 @@ This looks lengthy, but I the major deal is setting up your audio output devices You need to set up both audio sinks and make sure they work. This is pretty much a prerequisite for everything that follows. -Follow the instructions for your soundcard. Configure `etc/asound.conf`correctly. And make sure it works! +Follow the instructions for your soundcard. Configure `/etc/asound.conf`correctly. And make sure it works! -Then follow the instructions on the [Wiki on how to connect the bluetooth device](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Bluetooth). We diverge where we set up two audio sinks instead of one: Just **add** the `pcm.btspeaker` section described in the wiki to `etc/asound.conf` (choose a name to your liking). Do **not** touch the mpd.conf yet! +Then follow the instructions on the [Wiki on how to connect the bluetooth device](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Bluetooth). We diverge where we set up two audio sinks instead of one: Just **add** the `pcm.btspeaker` section described in the wiki to `/etc/asound.conf` (choose a name to your liking). Do **not** touch the mpd.conf yet! The new entry should end up looking like this: ~~~ From 7cbd6bb676173854e4b20f402fb20b656652b6a4 Mon Sep 17 00:00:00 2001 From: ChisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Sun, 10 Jan 2021 07:56:48 +0100 Subject: [PATCH 070/206] Fix typo --- components/bluetooth-sink-switch/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/bluetooth-sink-switch/README.md b/components/bluetooth-sink-switch/README.md index 61dd6b2d0..31f0fb81a 100644 --- a/components/bluetooth-sink-switch/README.md +++ b/components/bluetooth-sink-switch/README.md @@ -144,7 +144,7 @@ CMDBLUETOOTHTOGGLE="1364237231134" **Volume attenuation** -Speakers and Headphones can have very different maximum volume levels. This sometimes leads to very strong volume level changes when switching between speakers and headphones. Restructing the maximum volume with the Phoniebox-integrated max-volume setting does no yield the desired effect, as this is a single setting and does not differentiate between different audio sinks. +Speakers and Headphones can have very different maximum volume levels. This sometimes leads to very strong volume level changes when switching between speakers and headphones. Restricting the maximum volume with the Phoniebox-integrated max-volume setting does no yield the desired effect, as this is a single setting and does not differentiate between different audio sinks. The solution is adding a `softvol` component to the /etc/asound.conf. You may already have one set up, if your soundcard does not have a hardware volume control. Then it is easy! The `softvol` copmonent adds a systemwide ALSA-based volume control for a hardware soundcard. You will need to give it a name, that does **not** exist! Check with `$ amixer scontrols` first, which names are already taken. Here, I have choosen *Master*. This will work even if your soundcard has a hardware volume control. From e58a6f6e9808fb59a68f62156926e70f582d5584 Mon Sep 17 00:00:00 2001 From: ChrisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Sun, 10 Jan 2021 10:20:54 +0100 Subject: [PATCH 071/206] Revert missing lines in htdocs/lang-* --- htdocs/lang/lang-de-DE.php | 56 ++++++++++++++++++- htdocs/lang/lang-nl-NL.php | 109 +++++++++++++++---------------------- 2 files changed, 97 insertions(+), 68 deletions(-) mode change 100755 => 100644 htdocs/lang/lang-de-DE.php diff --git a/htdocs/lang/lang-de-DE.php b/htdocs/lang/lang-de-DE.php old mode 100755 new mode 100644 index 0916d7f38..b05b58473 --- a/htdocs/lang/lang-de-DE.php +++ b/htdocs/lang/lang-de-DE.php @@ -1,5 +1,6 @@ <?php $lang = array(); + $lang['globalEdit'] = "Bearbeiten"; $lang['globalResume'] = "Fortsetzen"; $lang['globalPassword'] = "Passwort"; @@ -67,7 +68,9 @@ $lang['globalLanguageSettings'] = "Spracheinstellungen"; $lang['globalPriority'] = "Priorität"; $lang['globalEmail'] = "Email address"; -$lang['globalAudioSink'] = "Audioausgabegeäte"; +$lang['globalAudioSink'] = "Audio Ausgabegeräte"; + +// Player title HTML $lang['playerSeekBack'] = "Rückwärts spulen"; $lang['playerSeekAhead'] = "Vorwärts spulen"; $lang['playerSkipPrev'] = "Vorheriger Titel"; @@ -78,15 +81,19 @@ $lang['playerStop'] = "Player stoppen"; $lang['playerVolDown'] = "Lautstärke verringern"; $lang['playerVolUp'] = "Lautstärke erhöhen"; -$lang['playerMute'] = "toggle mute"; +$lang['player'] = "Stumm ein/aus"; $lang['playerFilePlayed'] = "wird abgespielt"; $lang['playerFileAdded'] = "wurde der Playlist hinzugefügt"; $lang['playerFileDeleted'] = "entfernt"; + +// Edition (classic, +spotify) $lang['globalEdition'] = "Edition"; $lang['classic'] = "Classic edition (barebones)"; $lang['plusSpotify'] = "Plus Edition (feat. Spotify Integration)"; + $lang['navEditionClassic'] = "Classic"; $lang['navEditionPlusSpotify'] = "+Spotify"; + $lang['navBrand'] = "Phoniebox"; $lang['navHome'] = "Player"; $lang['navSearch'] = "Suchen"; @@ -94,11 +101,17 @@ $lang['navInfo'] = "Info"; $lang['navShutdown'] = "Herunterfahren"; $lang['navReboot'] = "Neustart"; + $lang['indexAvailAudio'] = "Verfügbare Medien"; $lang['indexContainsFiles'] = "Enthält die folgenden Dateien:"; $lang['indexShowFiles'] = "Dateien anzeigen"; $lang['indexManageFilesChips'] = "Dateien und Chips verwalten"; + $lang['Spotify'] = "Spotify"; + +/* +* Karten registrieren & bearbeiten +*/ $lang['cardRegisterTitle'] = "Neue Karte hinzufügen"; $lang['cardEditTitle'] = "Karte bearbeiten oder hinzufügen"; $lang['cardRegisterAnchorLink'] = "RFID-Registrierung interaktiv"; @@ -118,6 +131,10 @@ $lang['cardRegisterSwipeUpdates'] = "Dies wird automatisch aktualisiert, wenn du eine RFID-Karte ausliest."; $lang['cardRegisterManualLinks'] = "<p>Du kannst Karten auch manuell mit Ordnern verbinden. Das Handbuch erklärt, wie man sich <a href='https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/MANUAL#connecting-to-the-phoniebox-to-add-files' target='-blank'>mit der Phoniebox verbindet</a> und <a href='https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/MANUAL#registering-cards-manually-through-samba-without-the-web-app' target='_blank'>Karten registriert</a>.</p>"; $lang['cardRegisterTriggerSuccess'] = "Die Karte ist jetzt verknüpft um die Funktion auszuführen:"; + +/* +* "Karten bearbeiten"-Formular +*/ $lang['cardFormFolderLegend'] = "RFID-Karte verlinken mit:"; $lang['cardFormFolderLabel'] = "Einen Audio-Ordner auswählen"; $lang['cardFormFolderSelectDefault'] = "Keiner (--Wählen-- zur Auswahl eines Ordners)"; @@ -129,6 +146,7 @@ $lang['cardFormTriggerLabel'] = "... eine Phoniebox Funktion auswählen"; $lang['cardFormTriggerHelp'] = "Wähle eine Funktion aus der Liste aus (z.B. 'pause', 'volume up', 'shutdown'). Bestehende Verknüpfungen werden im Pulldown-Menü angezeigt."; $lang['cardFormTriggerSelectDefault'] = "Wähle eine Phoniebox Funktion"; + $lang['cardFormStreamLegend'] = "Stream verlinken / erstellen"; $lang['cardFormStreamLabel'] = "Stream URL (benötigt immer einen neuen Ordner - s.o.)"; $lang['cardFormStreamPlaceholderClassic'] = "http(...).mp3 / .m3u / .ogg / .rss / .xml / ..."; @@ -136,14 +154,19 @@ $lang['cardFormStreamHelp'] = "Füge die URL für spotify, Podcast, Webradio, Stream oder andere Online-Medien hinzu"; $lang['cardFormStreamTypeSelectDefault'] = "Wähle den Typ"; $lang['cardFormStreamTypeHelp'] = "Wähle die Art des Streams, den du hinzufügen möchtest"; + $lang['cardFormYTLegend'] = "Von YouTube Herunterladen"; $lang['cardFormYTLabel'] = "YouTube URL (einzelner Track oder Playlist)"; $lang['cardFormYTPlaceholder'] = "z.B. https://www.youtube.com/watch?v=7GI0VdPehQI"; $lang['cardFormYTSelectDefault'] = "--Wählen--, um einen Ordner auszuwählen oder einen neuen darunter zu erstellen"; $lang['cardFormYTHelp'] = "Füge die volle YouTube-URL wie im Beispiel hinzu"; $lang['cardFormRemoveCard'] = "Karten-ID entfernen"; + +// Karten IDs als .csv-Datei exportieren $lang['cardExportAnchorLink'] = "Alle RFID Verknüpfungen exportieren (Audio und Systembefehle)"; $lang['cardExportButtonLink'] = ".csv-Datei aller verfügbaren RFID-Verknüpfungen erstellen"; + +// Karten IDs aus .csv-Datei importieren $lang['cardImportAnchorLink'] = "RFID Verknüpfungen aus .csv-Datei importieren"; $lang['cardImportFileLabel'] = ".csv-Datei auswählen um RFID-Verknüpfungen zu erstellen"; $lang['cardImportFileSuccessUpload'] = "Datei erfolgreich hochgeladen: "; @@ -164,6 +187,10 @@ $lang['cardImportFormDeleteHelp'] = "Welche der bestehenden RFID-Verknüpfungen sollen behalten werden, welche gelöscht?"; $lang['cardImportFileDeleteMessageCommands'] = "<p><i class='mdi mdi-delete'></i> <strong>Systembefehle</strong> gelöscht.</p>"; $lang['cardImportFileDeleteMessageAudio'] = "<p><i class='mdi mdi-delete'></i> <strong>Audio Verknüpfungen</strong> gelöscht.</p>"; + +/* +* "Track bearbeiten"-Formular +*/ $lang['trackEditTitle'] = "Track-Management"; $lang['trackEditInformation'] = "Track-Informationen"; $lang['trackEditMove'] = "Track verschieben"; @@ -174,6 +201,10 @@ $lang['trackEditDeleteHelp'] = "Es gibt kein Rückgängigmachen für gelöschte Dateien. Sie sind weg! Bist du sicher?"; $lang['trackEditDeleteNo'] = "Diesen Track NICHT löschen"; $lang['trackEditDeleteYes'] = "Ja, diesen Track LÖSCHEN"; + +/* +* Einstellungen +*/ $lang['settingsVolChangePercent'] = "Lautst. Änderung"; $lang['settingsMaxVol'] = "Max. Lautstärke"; $lang['settingsStartupVol'] = "Start-Lautstärke"; @@ -206,12 +237,18 @@ $lang['settingsWlanSendEmail'] = "E-Mail Adr."; $lang['settingsWlanSendON'] = "Ja, E-Mail senden."; $lang['settingsWlanSendOFF'] = "Nein, E-Mail nicht senden."; -$lang['settingsVolumeManager'] = "Select volume manager"; + +$lang['settingsVolumeManager'] = "Auswahl Volume Manager"; + $lang['settingsWlanReadNav'] = "Wlan IP vorlesen"; $lang['settingsWlanReadInfo'] = "Wlan IP bei jedem Systemstart vorlesen? (nützlich wenn du deine Phoniebox in ein neues Wlan-Netzwerk mit dynamischer IP verbindest)"; $lang['settingsWlanReadQuest'] = "Wlan IP vorlesen?"; $lang['settingsWlanReadON'] = "Ja, Wlan IP vorlesen."; $lang['settingsWlanReadOFF'] = "Nein, Wlan IP nicht vorlesen."; + +/* +* Systeminformationen +*/ $lang['infoOsDistrib'] = "Betriebssystem"; $lang['infoOsCodename'] = "Codename"; $lang['infoOsTemperature'] = "Temperatur"; @@ -224,6 +261,10 @@ $lang['infoDebugLogSettings'] = "Debug Log Einstellungen"; $lang['infoAudioActive'] = "Aktive Audioausgänge"; $lang['infoBluetoothStatus'] = "Bluetooth Status"; + +/* +* Ordnerverwaltung und Dateien hochladen +*/ $lang['manageFilesFoldersTitle'] = "Ordner & Dateien"; $lang['manageFilesFoldersUploadFilesLabel'] = "Dateien von deinem Laufwerk auswählen"; $lang['manageFilesFoldersUploadLegend'] = "Dateien hochladen"; @@ -239,13 +280,22 @@ $lang['manageFilesFoldersErrorNewFolderNotParent'] = "<p>Der übergeordnete Ordner existiert nicht.</p>"; $lang['manageFilesFoldersSuccessNewFolder'] = "Neuer Ordner erstellt: "; $lang['manageFilesFoldersSelectDefault'] = "--Wählen--, um einen Ordner auszuwählen und/oder einen neuen Unterordner zu erstellen"; + $lang['manageFilesFoldersRenewDB'] = "Datenbank erneuern"; $lang['manageFilesFoldersLocalScan'] = "Musikbibliothek scannen"; $lang['manageFilesFoldersRenewDBinfo'] = "Bitte scanne deine Musikbibliothek, nachdem du neue Dateien hochgeladen oder Ordner verschoben hast. Der Scan ist nicht notwendig, um Musik zu hören, aber es ist notwendig, um Track-Informationen in der Web-Oberfläche zu sehen. Es werden nur neue oder verschobene Dateien gescannt. Während der Scan läuft, wird Mopidy gestoppt. Nach Abschluss des Scans startet Mopidy automatisch neu. Den Serverstatus siehst du im Abschnitt Info."; + +/* +* Dateisuche +*/ $lang['searchTitle'] = "Audiodateien suchen"; $lang['searchExample'] = "z.B. Moonlight"; $lang['searchSend'] = "Suchen"; $lang['searchResult'] = "Suchergebnisse:"; + +/* +* Filter +*/ $lang['filterall'] = "Zeige alle"; $lang['filterfile'] = "Dateien"; $lang['filterlivestream'] = "Livestream"; diff --git a/htdocs/lang/lang-nl-NL.php b/htdocs/lang/lang-nl-NL.php index 16dee3443..1987f6044 100755 --- a/htdocs/lang/lang-nl-NL.php +++ b/htdocs/lang/lang-nl-NL.php @@ -1,5 +1,6 @@ <?php $lang = array(); + $lang['globalEdit'] = "Bewerk"; $lang['globalResume'] = "Vervolg"; $lang['globalPassword'] = "Wachtwoord"; @@ -65,28 +66,20 @@ $lang['globalLoop'] = "Loop"; $lang['globalLang'] = "Taal"; $lang['globalLanguageSettings'] = "Taalinstellingen"; -$lang['globalPriority'] = "Priority"; -$lang['globalEmail'] = "Email address"; $lang['globalAudioSink'] = "Audio Devices"; -$lang['playerSeekBack'] = "seek back"; -$lang['playerSeekAhead'] = "seek forward"; -$lang['playerSkipPrev'] = "previous track"; -$lang['playerSkipNext'] = "next track"; -$lang['playerPlayPause'] = "play / pause"; -$lang['playerReplay'] = "replay track"; -$lang['playerLoop'] = "loop"; -$lang['playerStop'] = "stop player"; -$lang['playerVolDown'] = "volume down"; -$lang['playerVolUp'] = "volume up"; -$lang['playerMute'] = "toggle mute"; + $lang['playerFilePlayed'] = "is gespeeld"; $lang['playerFileAdded'] = "is toegevoegd aan de playlist"; $lang['playerFileDeleted'] = "is verwijderd"; + +// Edition (classic, +spotify) $lang['globalEdition'] = "Editie"; $lang['classic'] = "Classic editie (barebones)"; $lang['plusSpotify'] = "Plus editie (incl. Spotify integratie)"; + $lang['navEditionClassic'] = "Classic"; $lang['navEditionPlusSpotify'] = "+Spotify"; + $lang['navBrand'] = "Phoniebox"; $lang['navHome'] = "Home"; $lang['navSearch'] = "Zoeken"; @@ -94,14 +87,19 @@ $lang['navInfo'] = "Info"; $lang['navShutdown'] = "Afsluiten"; $lang['navReboot'] = "Herstarten"; + $lang['indexAvailAudio'] = "Beschikbare audio"; $lang['indexContainsFiles'] = "Bevat de volgende bestand(en):"; $lang['indexShowFiles'] = "Toon bestanden"; $lang['indexManageFilesChips'] = "Beheer Bestanden en fiches"; + $lang['Spotify'] = "Spotify"; + +/* +* Register & Edit Cards +*/ $lang['cardRegisterTitle'] = "Nieuwe kaart toevoegen"; $lang['cardEditTitle'] = "Nieuwe kaart toevoegen of bewerken"; -$lang['cardRegisterAnchorLink'] = "Interactive RFID Registration"; $lang['cardRegisterMessageDefault'] = "De waarde 'Nieuwste kaart-ID' in het formulier wordt direct bijgewerkt terwijl u een RFID-kaart veegt. <br/> (Javascript in browser vereist om ingeschakeld te kunnen worden.)"; $lang['cardEditMessageDefault'] = "De kaart-ID's die in dit systeem worden gebruikt, staan vermeld op de <a href='index.php' class='mainMenu'><i class='mdi mdi-home'></i> home page</a>."; $lang['cardRegisterMessageSwipeNew'] = "Veeg nog een kaart als u meer kaarten wilt registreren."; @@ -117,53 +115,33 @@ $lang['cardRegisterDownloadingYT'] = "<p>YouTube-audio wordt gedownload. Dit kan een paar minuten duren. U kunt het logbestand 'youtube-dl.log' in de gedeelde map controleren.</p>"; $lang['cardRegisterSwipeUpdates'] = "Dit wordt automatisch bijgewerkt terwijl je een RFID-kaart veegt."; $lang['cardRegisterManualLinks'] = "<p>U kunt kaarten ook handmatig met mappen verbinden. In de handleiding wordt uitgelegd hoe u <a href='https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/MANUAL#connecting-to-the-phoniebox-to-add-files' target='–blank'>verbinding maakt met de phoniebox</a> en <a href='https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/MANUAL#registering-cards-manually-through-samba-without-the-web-app' target='_blank'>kaarten registreert</a>.</p>"; -$lang['cardRegisterTriggerSuccess'] = "The card is now linked to trigger the command:"; + +/* +* Card edit form +*/ $lang['cardFormFolderLegend'] = "Audiomap"; $lang['cardFormFolderLabel'] = "a) Link kaart naar audiomap"; $lang['cardFormFolderSelectDefault'] = "Geen (Pulldown om een map te selecteren)"; -$lang['cardFormFolderHelp'] = "Containing local files or add YouTube content (specify below)."; -$lang['cardFormNewFolderLabel'] = "... or link a new folder"; -$lang['cardFormNewFolderHelp'] = "Always use a new folder for streams (see below) and optionally for YouTube."; -$lang['cardFormNewFolderPlaceholder'] = "e.g. 'Artist Name/Album'"; -$lang['cardFormTriggerLegend'] = "Trigger system command"; -$lang['cardFormTriggerLabel'] = "... or link to a system command"; -$lang['cardFormTriggerHelp'] = "Select system commands (like 'pause', 'volume up', 'shutdown') from the list of available commands. If a RFID card is already linked to a function, the ID is shown in the pulldown menu."; -$lang['cardFormTriggerSelectDefault'] = "Select command to link"; -$lang['cardFormStreamLegend'] = "Link Stream"; $lang['cardFormStreamLabel'] = "b) ... of maak verbinding met de Stream-URL"; $lang['cardFormStreamPlaceholderClassic'] = "Livestream: http(...).mp3 / .m3u / .ogg / ..."; $lang['cardFormStreamPlaceholderPlusSpotify'] = "spotify:album/artist/playlist/track:### / Livestream: http(...).mp3 / .m3u / .ogg / ..."; $lang['cardFormStreamHelp'] = "Voeg de URL toe voor spotify, podcast, webradio, stream of andere online media"; $lang['cardFormStreamTypeSelectDefault'] = "Selecteer type"; $lang['cardFormStreamTypeHelp'] = "Selecteer het type dat u toevoegt"; +$lang['cardFormStreamFolderPlaceholder'] = "bijv. 'Album / Afspeellijst / Stationsnaam'"; +$lang['cardFormStreamFolderHelp'] = "Naam voor de audiomap die de stream-URL bevat."; $lang['cardFormYTLegend'] = "YouTube"; $lang['cardFormYTLabel'] = "c) ... of download YouTube-audio"; $lang['cardFormYTPlaceholder'] = "bijv. https://www.youtube.com/watch?v=7GI0VdPehQI"; $lang['cardFormYTSelectDefault'] = "Pulldown om een map te selecteren of maak hieronder een nieuwe aan"; +$lang['cardFormYTFolderPlaceholder'] = "bijv. 'Nieuwe Map'"; +$lang['cardFormYTFolderHelp'] = "Naam voor de audiomap die de YouTube-audio bevat."; $lang['cardFormYTHelp'] = "Voeg de volledige YouTube-URL toe zoals in het voorbeeld"; $lang['cardFormRemoveCard'] = "Verwijder kaart-ID"; -$lang['cardExportAnchorLink'] = "Export all RFID links (audio playout and commands)"; -$lang['cardExportButtonLink'] = "Create .csv file of available RFID links"; -$lang['cardImportAnchorLink'] = "Import RFID links from .csv file"; -$lang['cardImportFileLabel'] = "Select .csv file to create RFID links"; -$lang['cardImportFileSuccessUpload'] = "Successful upload of file: "; -$lang['cardImportFileErrorUpload'] = "<p>There was an error uploading the file, please try again!</p>"; -$lang['cardImportFileErrorFiletype'] = "<p>Wrong file type! The file must be a <em>.csv</em> file.</p>"; -$lang['cardImportFormOverwriteLabel'] = "Select import action"; -$lang['cardImportFormOverwriteHelp'] = "Specify what to do with the uploaded RFID links."; -$lang['cardImportFormOverwriteAll'] = "Overwrite both: audio AND commands"; -$lang['cardImportFormOverwriteAudio'] = "Overwrite ONLY audio triggers"; -$lang['cardImportFormOverwriteCommands'] = "Overwrite ONLY system commands"; -$lang['cardImportFileOverwriteMessageCommands'] = "<p><i class='mdi mdi-check'></i> <strong>System commands</strong> were overwritten with uploaded RFID IDs.</p>"; -$lang['cardImportFileOverwriteMessageAudio'] = "<p><i class='mdi mdi-check'></i> Links to <strong>audio</strong> playlists etc. were overwritten with uploaded RFID IDs.</p>"; -$lang['cardImportFormDeleteLabel'] = "Delete or keep other RFID links?"; -$lang['cardImportFormDeleteNone'] = "Keep all existing: audio AND commands"; -$lang['cardImportFormDeleteAll'] = "Delete both: audio AND commands"; -$lang['cardImportFormDeleteAudio'] = "Delete ONLY audio triggers"; -$lang['cardImportFormDeleteCommands'] = "Delete ONLY system commands"; -$lang['cardImportFormDeleteHelp'] = "Which of the existing RFID links should be kept, which deleted?."; -$lang['cardImportFileDeleteMessageCommands'] = "<p><i class='mdi mdi-delete'></i> <strong>System commands</strong> deleted.</p>"; -$lang['cardImportFileDeleteMessageAudio'] = "<p><i class='mdi mdi-delete'></i> <strong>Audio links</strong> deleted.</p>"; + +/* +* Track edit form +*/ $lang['trackEditTitle'] = "Track management"; $lang['trackEditInformation'] = "Track informatie"; $lang['trackEditMove'] = "Verplaats track"; @@ -174,20 +152,21 @@ $lang['trackEditDeleteHelp'] = "Er is geen 'ongedaan maken' voor verwijderde bestanden. Ze zijn weg! Weet je het zeker?"; $lang['trackEditDeleteNo'] = "Verwijder deze track NIET"; $lang['trackEditDeleteYes'] = "Ja, VERWIJDER deze track"; + + +/* +* Settings +*/ $lang['settingsVolChangePercent'] = "Vol. verandering %"; $lang['settingsMaxVol'] = "Maximaal Volume"; -$lang['settingsStartupVol'] = "Startup Volume"; $lang['settingsWifiRestart'] = "De wijzigingen die zijn aangebracht op uw WiFi-verbinding vereisen dat een herstart van kracht wordt."; $lang['settingsWifiSsidPlaceholder'] = "Bijv.: PhonieHomie"; $lang['settingsWifiSsidHelp'] = "De naam waaronder uw WiFi wordt weergegeven als 'beschikbaar netwerk'"; -$lang['settingsWifiPassHelp'] = "The password of your WiFi (8 characters at least)"; -$lang['settingsWifiPrioHelp'] = "Your WiFi's priority (0-100). If more than one WiFi is found the box will connect to the one with the higher priority"; $lang['settingsSecondSwipe'] = "Tweede veeg"; $lang['settingsSecondSwipeInfo'] = "Wanneer u dezelfde RFID voor de tweede keer gebruikt, wat gebeurt er dan? Start de afspeellijst opnieuw? Schakelen tussen pauze / afspelen?"; $lang['settingsSecondSwipeRestart'] = "afspeellijst opnieuw afspelen"; $lang['settingsSecondSwipeSkipnext'] = "Ga naar het volgende nummer"; $lang['settingsSecondSwipePause'] = "Schakelen tussen pauze / afspelen"; -$lang['settingsSecondSwipePlay'] = "Resume playback"; $lang['settingsSecondSwipeNoAudioPlay'] = "Negeer audio playout-triggers, alleen systeemopdrachten"; $lang['settingsSecondSwipePauseInfo'] = "Negeer het opnieuw scannen van dezelfde kaart voor:"; $lang['second'] = "Seconde"; @@ -200,18 +179,10 @@ $lang['settingsShowCoverON'] = "Albumhoes laten zien"; $lang['settingsShowCoverOFF'] = "Albumhoes niet laten zien"; $lang['settingsMessageLangfileNewItems'] = "Er zijn nieuwe taalitems in het oorspronkelijke <em> lang-en-UK.php </ em> -bestand. Uw taalbestand is bijgewerkt en bevat nu deze (in het Engels). Misschien wilt u uw taalbestand bijwerken en uw wijzigingen in de Phoniebox-code aanbrengen :) "; -$lang['settingsWlanSendNav'] = "Mail Wlan IP"; -$lang['settingsWlanSendInfo'] = "Send Wlan IP over email on boot? (useful if you hook your Phoniebox into a new Wlan networt with dynamic IP)"; -$lang['settingsWlanSendQuest'] = "Send Wlan IP?"; -$lang['settingsWlanSendEmail'] = "email addr."; -$lang['settingsWlanSendON'] = "Yes, send email."; -$lang['settingsWlanSendOFF'] = "No, do not send email."; -$lang['settingsVolumeManager'] = "Select volume manager"; -$lang['settingsWlanReadNav'] = "Read Wlan IP"; -$lang['settingsWlanReadInfo'] = "Read IP address of wlan (wifi) each time after booting? (useful if you hook your Phoniebox into a new wlan networt with dynamic IP)"; -$lang['settingsWlanReadQuest'] = "Read wlan IP?"; -$lang['settingsWlanReadON'] = "Yes, read wlan IP."; -$lang['settingsWlanReadOFF'] = "No, do not read wlan IP."; + +/* +* System info +*/ $lang['infoOsDistrib'] = "OS-distributie"; $lang['infoOsCodename'] = "Codenaam"; $lang['infoOsTemperature'] = "Temperatuur"; @@ -219,11 +190,12 @@ $lang['infoStorageUsed'] = "Opslag gebruik"; $lang['infoMopidyStatus'] = "Mopidy Server Status"; $lang['infoMPDStatus'] = "MPD Server Status"; -$lang['infoDebugLogTail'] = "<b>DEBUG log file</b>: Last 40 lines"; -$lang['infoDebugLogClear'] = "Clear all content from debug.log"; -$lang['infoDebugLogSettings'] = "Debug Log Settings"; $lang['infoAudioActive'] = "Enabled Audio Devices"; $lang['infoBluetoothStatus'] = "Bluetooth Status"; + +/* +* Folder Management and File Upload +*/ $lang['manageFilesFoldersTitle'] = "Mappen & bestanden"; $lang['manageFilesFoldersUploadFilesLabel'] = "Selecteer bestanden van uw schijf"; $lang['manageFilesFoldersUploadLegend'] = "Upload bestanden"; @@ -239,13 +211,19 @@ $lang['manageFilesFoldersErrorNewFolderNotParent'] = "<p>De bovenliggende map bestaat niet.</p>"; $lang['manageFilesFoldersSuccessNewFolder'] = "Nieuwe map gemaakt:"; $lang['manageFilesFoldersSelectDefault'] = "Trek naar beneden om een map te selecteren en / of maak hieronder een nieuwe onderliggende map"; + $lang['manageFilesFoldersRenewDB'] = "Database vernieuwen"; $lang['manageFilesFoldersLocalScan'] = "Scan muziekbibliotheek"; $lang['manageFilesFoldersRenewDBinfo'] = "Scan uw muziekbibliotheek na het uploaden van nieuwe bestanden of het verplaatsen van mappen. De scan is niet nodig om muziek te horen, maar het is noodzakelijk om nummerinformatie te zien in de Web UI. Alleen nieuwe of verplaatste bestanden worden gescand. Terwijl de scan wordt uitgevoerd, wordt mopidy gestopt. Nadat de scan is voltooid, start de mopidy automatisch. U kunt de serverstatus zien in het gedeelte Info."; + $lang['searchTitle'] = "Zoeken naar audiobestanden"; $lang['searchExample'] = "z.B. Moonlight"; $lang['searchSend'] = "Zoeken"; $lang['searchResult'] = "Zoekresultaten:"; + +/* +* Filter +*/ $lang['filterall'] = "Toon alles"; $lang['filterfile'] = "Bestanden"; $lang['filterlivestream'] = "Livestream"; @@ -253,3 +231,4 @@ $lang['filterspotify'] = "Spotify"; $lang['filteryoutube'] = "YouTube"; ?> + From e4a66f604e47bb4be3acd3ccc40fe538c02683dc Mon Sep 17 00:00:00 2001 From: ChrisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Sun, 10 Jan 2021 10:44:55 +0100 Subject: [PATCH 072/206] Re-enable start-up sound --- scripts/startup-scripts.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/startup-scripts.sh b/scripts/startup-scripts.sh index a32f17be7..f366c6400 100755 --- a/scripts/startup-scripts.sh +++ b/scripts/startup-scripts.sh @@ -41,7 +41,7 @@ while [ "$STATUS" != "ACTIVE" ]; do STATUS=$(echo -e status\\nclose | nc -w 1 lo # play startup sound mpgvolume=$((32768*${AUDIOVOLSTARTUP}/100)) echo "${mpgvolume} is the mpg123 startup volume" -#/usr/bin/mpg123 -f -${mpgvolume} /home/pi/RPi-Jukebox-RFID/shared/startupsound.mp3 +/usr/bin/mpg123 -f -${mpgvolume} /home/pi/RPi-Jukebox-RFID/shared/startupsound.mp3 ####################### # re-scan music library From add1f4ef525dedd953f10909c0be59af6af69906 Mon Sep 17 00:00:00 2001 From: jeripeierSBB <jeremias.peier@sbb.ch> Date: Sun, 10 Jan 2021 14:07:10 +0100 Subject: [PATCH 073/206] feat: keep USB Button Encoder settings during update --- ...buster-install-default-with-autohotspot.sh | 27 ++++++++++++++++++- .../installscripts/buster-install-default.sh | 25 +++++++++++++++++ .../installscripts/stretch-install-default.sh | 25 +++++++++++++++++ 3 files changed, 76 insertions(+), 1 deletion(-) diff --git a/scripts/installscripts/buster-install-default-with-autohotspot.sh b/scripts/installscripts/buster-install-default-with-autohotspot.sh index 1778b25ec..c7e748ab1 100755 --- a/scripts/installscripts/buster-install-default-with-autohotspot.sh +++ b/scripts/installscripts/buster-install-default-with-autohotspot.sh @@ -372,6 +372,18 @@ https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Using-GPIO-hardware-buttons" # append variables to config file echo "EXISTINGuseGpio=$EXISTINGuseGpio" >> "${HOME_DIR}/PhonieboxInstall.conf" + read -rp "Button USB Encoder: use existing device and button mapping? [Y/n] " response + case "$response" in + [nN][oO]|[nN]) + EXISTINGuseButtonUSBEncoder=NO + ;; + *) + EXISTINGuseButtonUSBEncoder=YES + ;; + esac + # append variables to config file + echo "EXISTINGuseButtonUSBEncoder=$EXISTINGuseButtonUSBEncoder" >> "${HOME_DIR}/PhonieboxInstall.conf" + echo "Thanks. Got it." echo "The existing install can be found in the BACKUP directory." read -rp "Hit ENTER to proceed to the next step." INPUT @@ -428,7 +440,7 @@ config_audio_interface() { esac # append variables to config file echo "AUDIOiFace=\"$AUDIOiFace\"" >> "${HOME_DIR}/PhonieboxInstall.conf" - echo "Your iFace is called'$AUDIOiFace'" + echo "Your iFace is called '$AUDIOiFace'" read -rp "Hit ENTER to proceed to the next step." INPUT } @@ -1084,6 +1096,19 @@ existing_assets() { cp "${backup_dir}"/settings/gpio_settings.ini "${jukebox_dir}"/settings/gpio_settings.ini fi + # Button USB Encoder: use existing file + if [ "${EXISTINGuseButtonUSBEncoder}" == "YES" ]; then + # copy from backup to new install + cp "${backup_dir}"/components/controls/buttons_usb_encoder/deviceName.txt "${jukebox_dir}"/components/controls/buttons_usb_encoder/deviceName.txt + cp "${backup_dir}"/components/controls/buttons_usb_encoder/buttonMap.json "${jukebox_dir}"/components/controls/buttons_usb_encoder/buttonMap.json + # make buttons_usb_encoder.py ready to be use from phoniebox-buttons-usb-encoder service + sudo chmod +x "${jukebox_dir}"/components/controls/buttons_usb_encoder/buttons_usb_encoder.py + # make sure service is still enabled by registering again + sudo cp -v "${jukebox_dir}"/components/controls/buttons_usb_encoder/phoniebox-buttons-usb-encoder.service.sample /etc/systemd/system/phoniebox-buttons-usb-encoder.service + sudo systemctl start phoniebox-buttons-usb-encoder.service + sudo systemctl enable phoniebox-buttons-usb-encoder.service + fi + # Sound effects: use existing startup / shutdown sounds if [ "${EXISTINGuseSounds}" == "YES" ]; then # copy from backup to new install diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index 07aaabde3..f0bf19944 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -372,6 +372,18 @@ https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Using-GPIO-hardware-buttons" # append variables to config file echo "EXISTINGuseGpio=$EXISTINGuseGpio" >> "${HOME_DIR}/PhonieboxInstall.conf" + read -rp "Button USB Encoder: use existing device and button mapping? [Y/n] " response + case "$response" in + [nN][oO]|[nN]) + EXISTINGuseButtonUSBEncoder=NO + ;; + *) + EXISTINGuseButtonUSBEncoder=YES + ;; + esac + # append variables to config file + echo "EXISTINGuseButtonUSBEncoder=$EXISTINGuseButtonUSBEncoder" >> "${HOME_DIR}/PhonieboxInstall.conf" + echo "Thanks. Got it." echo "The existing install can be found in the BACKUP directory." read -rp "Hit ENTER to proceed to the next step." INPUT @@ -1067,6 +1079,19 @@ existing_assets() { cp "${backup_dir}"/settings/gpio_settings.ini "${jukebox_dir}"/settings/gpio_settings.ini fi + # Button USB Encoder: use existing file + if [ "${EXISTINGuseButtonUSBEncoder}" == "YES" ]; then + # copy from backup to new install + cp "${backup_dir}"/components/controls/buttons_usb_encoder/deviceName.txt "${jukebox_dir}"/components/controls/buttons_usb_encoder/deviceName.txt + cp "${backup_dir}"/components/controls/buttons_usb_encoder/buttonMap.json "${jukebox_dir}"/components/controls/buttons_usb_encoder/buttonMap.json + # make buttons_usb_encoder.py ready to be use from phoniebox-buttons-usb-encoder service + sudo chmod +x "${jukebox_dir}"/components/controls/buttons_usb_encoder/buttons_usb_encoder.py + # make sure service is still enabled by registering again + sudo cp -v "${jukebox_dir}"/components/controls/buttons_usb_encoder/phoniebox-buttons-usb-encoder.service.sample /etc/systemd/system/phoniebox-buttons-usb-encoder.service + sudo systemctl start phoniebox-buttons-usb-encoder.service + sudo systemctl enable phoniebox-buttons-usb-encoder.service + fi + # Sound effects: use existing startup / shutdown sounds if [ "${EXISTINGuseSounds}" == "YES" ]; then # copy from backup to new install diff --git a/scripts/installscripts/stretch-install-default.sh b/scripts/installscripts/stretch-install-default.sh index fea321b8c..49843d7cf 100755 --- a/scripts/installscripts/stretch-install-default.sh +++ b/scripts/installscripts/stretch-install-default.sh @@ -234,6 +234,18 @@ echo "##################################################### # append variables to config file echo "EXISTINGuseSounds=$EXISTINGuseSounds" >> "${PATHDATA}/PhonieboxInstall.conf" + read -r -p "Button USB Encoder: use existing device and button mapping? [Y/n] " response + case "$response" in + [nN][oO]|[nN]) + EXISTINGuseButtonUSBEncoder=NO + ;; + *) + EXISTINGuseButtonUSBEncoder=YES + ;; + esac + # append variables to config file + echo "EXISTINGuseButtonUSBEncoder=$EXISTINGuseButtonUSBEncoder" >> "${PATHDATA}/PhonieboxInstall.conf" + echo "Thanks. Got it." echo "The existing install can be found in the BACKUP directory." echo "Hit ENTER to proceed to the next step." @@ -771,6 +783,19 @@ then mv /home/pi/BACKUP/shared/shutdownsound.mp3 /home/pi/RPi-Jukebox-RFID/shared/shutdownsound.mp3 fi + # Button USB Encoder: use existing file + if [ $EXISTINGuseButtonUSBEncoder == "YES" ]; then + # copy from backup to new install + mv /home/pi/BACKUP/components/controls/buttons_usb_encoder/deviceName.txt /home/pi/RPi-Jukebox-RFID/components/controls/buttons_usb_encoder/deviceName.txt + mv /home/pi/BACKUP/components/controls/buttons_usb_encoder/buttonMap.json /home/pi/RPi-Jukebox-RFID/components/controls/buttons_usb_encoder/buttonMap.json + # make buttons_usb_encoder.py ready to be use from phoniebox-buttons-usb-encoder service + sudo chmod +x /home/pi/RPi-Jukebox-RFID/components/controls/buttons_usb_encoder/buttons_usb_encoder.py + # make sure service is still enabled by registering again + sudo cp -v /home/pi/RPi-Jukebox-RFID/components/controls/buttons_usb_encoder/phoniebox-buttons-usb-encoder.service.sample /etc/systemd/system/phoniebox-buttons-usb-encoder.service + sudo systemctl start phoniebox-buttons-usb-encoder.service + sudo systemctl enable phoniebox-buttons-usb-encoder.service + fi + fi # / EXISTING ASSETS TO USE FROM EXISTING INSTALL From 658402746b3caecef7ed672ede0a827d3f6a903f Mon Sep 17 00:00:00 2001 From: ChrisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Sat, 23 Jan 2021 20:04:47 +0100 Subject: [PATCH 074/206] Fix tabbed indentation to whitespace --- scripts/playout_controls.sh | 4 ++-- scripts/startup-scripts.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index a55697cb4..f260341ab 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -997,8 +997,8 @@ case $COMMAND in ;; bluetoothtoggle) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi - $PATHDATA/../components/bluetooth-sink-switch/bt-sink-switch.py $VALUE - ;; + $PATHDATA/../components/bluetooth-sink-switch/bt-sink-switch.py $VALUE + ;; *) echo Unknown COMMAND $COMMAND VALUE $VALUE if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo "Unknown COMMAND ${COMMAND} VALUE ${VALUE}" >> ${PATHDATA}/../logs/debug.log; fi diff --git a/scripts/startup-scripts.sh b/scripts/startup-scripts.sh index f366c6400..748167006 100755 --- a/scripts/startup-scripts.sh +++ b/scripts/startup-scripts.sh @@ -54,7 +54,7 @@ if [ "${READWLANIPYN}" == "ON" ]; then fi ####################### -# Default audio sink to speakers (instead of bluetooth device) irrespective of setting at shutdown +# Default audio output to speakers (instead of bluetooth device) irrespective of setting at shutdown if [ -f $PATHDATA/../settings/bluetooth-sink-switch ]; then BTSINKSWITCH=`cat $PATHDATA/../settings/bluetooth-sink-switch` if [ "${BTSINKSWITCH}" == "enabled" ]; then From 1bb0e02c205af6261416f64b34c5a59af480ced2 Mon Sep 17 00:00:00 2001 From: jeripeierSBB <jeremias.peier@sbb.ch> Date: Sun, 14 Feb 2021 22:07:59 +0100 Subject: [PATCH 075/206] fix: handle list of keycodes in buttons usb encoder (#1285) * fix: handle keycode lists in buttons usb encoder * fix: sort key before joining to guarantee order --- components/controls/buttons_usb_encoder/README.md | 2 +- .../controls/buttons_usb_encoder/buttons_usb_encoder.py | 9 ++++++--- .../buttons_usb_encoder/map_buttons_usb_encoder.py | 7 +++++-- .../buttons_usb_encoder/setup-buttons-usb-encoder.sh | 6 ++++++ 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/components/controls/buttons_usb_encoder/README.md b/components/controls/buttons_usb_encoder/README.md index ff501f1ec..e66ef97e0 100644 --- a/components/controls/buttons_usb_encoder/README.md +++ b/components/controls/buttons_usb_encoder/README.md @@ -14,6 +14,6 @@ Tested Devices: 1. Plug in your USB Encoder. You don't need to install any drivers. After plugging in, the USB encoder acts like an input device. -2. Run the script `setup-buttons-usb-encoder.sh` to set up your USB Encoder (choose the device and map the buttons). +2. Navigate to your RPi-Jukebox home directory and run the script `setup-buttons-usb-encoder.sh` to set up your USB Encoder (choose the device and map the buttons).  diff --git a/components/controls/buttons_usb_encoder/buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/buttons_usb_encoder.py index b832f343a..7bf293919 100644 --- a/components/controls/buttons_usb_encoder/buttons_usb_encoder.py +++ b/components/controls/buttons_usb_encoder/buttons_usb_encoder.py @@ -17,14 +17,17 @@ if event.type == ecodes.EV_KEY: keyevent = categorize(event) if keyevent.keystate == KeyEvent.key_down: + button_string = keyevent.keycode + if type(button_string) is list: + button_string = '-'.join(sorted(button_string)) try: - function_name = button_map[keyevent.keycode] + function_name = button_map[button_string] try: getattr(components.gpio_control.function_calls, function_name)() except: logger.warning( - "Function " + function_name + " not found in function_calls.py (mapped from button: " + keyevent.keycode + ")") + "Function " + function_name + " not found in function_calls.py (mapped from button: " + button_string + ")") except KeyError: - logger.warning("Button " + keyevent.keycode + " not mapped to any function.") + logger.warning("Button " + button_string + " not mapped to any function.") except: logger.error("An error with Buttons USB Encoder occurred.") diff --git a/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py index 5b94ebedc..fa4a22a5f 100644 --- a/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py +++ b/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py @@ -30,8 +30,11 @@ if event.type == ecodes.EV_KEY: keyevent = categorize(event) if keyevent.keystate == KeyEvent.key_down: - button_map[keyevent.keycode] = function_name - print("Button " + keyevent.keycode + " is now mapped to " + function_name_short) + button_string = keyevent.keycode + if type(button_string) is list: + button_string = '-'.join(sorted(button_string)) + button_map[button_string] = function_name + print("Button " + button_string + " is now mapped to " + function_name_short) break except KeyboardInterrupt: continue diff --git a/components/controls/buttons_usb_encoder/setup-buttons-usb-encoder.sh b/components/controls/buttons_usb_encoder/setup-buttons-usb-encoder.sh index 7a827fdfc..95db0199c 100755 --- a/components/controls/buttons_usb_encoder/setup-buttons-usb-encoder.sh +++ b/components/controls/buttons_usb_encoder/setup-buttons-usb-encoder.sh @@ -14,6 +14,12 @@ question() { esac } +if [ "$PWD" != "$JUKEBOX_HOME_DIR" ] +then + printf "Please execute script from %s directory\n" $JUKEBOX_HOME_DIR + exit 0 +fi + printf "Please make sure that the Buttons USB Encoder and the buttons are connected before continuing...\n" question "Continue" From 2d48dd6ffa1a2a932f59f0ba33425c9fcf0c76da Mon Sep 17 00:00:00 2001 From: Patrick Beer <patrick@pabera.com> Date: Sun, 14 Feb 2021 23:15:20 +0100 Subject: [PATCH 076/206] Add documentation Complete Install Guide --- docs/INSTALL-COMPLETE-GUIDE.md | 141 +++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 docs/INSTALL-COMPLETE-GUIDE.md diff --git a/docs/INSTALL-COMPLETE-GUIDE.md b/docs/INSTALL-COMPLETE-GUIDE.md new file mode 100644 index 000000000..229bf7aba --- /dev/null +++ b/docs/INSTALL-COMPLETE-GUIDE.md @@ -0,0 +1,141 @@ +# How to set up a Phoniebox from scratch + +## What you need + +All parts marked with a star (*) are optional but improve the overall experience. All linked components are examples but have proven to work together. You are free to choose different equipment. + +1. [Micro SD Card](https://www.amazon.de/gp/product/B073JWXGNT) (e.g. 32 GB) +1. [Raspberry Pi]((https://www.amazon.de/gp/product/B07BDR5PDW)) (Model 1, 2, 3, 4, Zero) +1. [USB RFID Reader]((https://www.amazon.de/gp/product/B018OYOR3E)) +1. [RFID Chips](https://www.amazon.de/gp/product/B078WRNLQZ) or [RFID Cards](https://www.amazon.de/gp/product/B00REFN24A) +1. [Speakers with 3.5mm jack](https://www.amazon.de/gp/product/B00JRW0M32) +1. [USB Sound Card](https://www.amazon.de/gp/product/B00C7LXUDY) * - [Alternative](https://www.amazon.de/gp/product/B00IRVQ0F8) +1. [Ground Loop Isolator](https://www.amazon.de/gp/product/B01LX0H29W) * + +You'll need a few other things for the one time set up only. + +1. Second computer (Linux, Max or Windows) +1. USB Mouse and USB Keyboard +1. Micro SD Card Reader +1. Screen with HTMI connection + +Alternative: If you are able to connect your Raspberry Pi via a wired network interface (LAN), you can set it up via terminal (SSH) only. + +## Install Raspberry Pi OS on a Micro SD card + +Before you can install the Phoniebox software, you need to prepare your Raspberry Pi and install + +1. Connect your Micro SD card (through a card reader) to your computer +1. [Download](https://www.raspberrypi.org/software/) the [Raspberry Pi Imager](https://www.raspberrypi.org/blog/raspberry-pi-imager-imaging-utility/) and open it +1. Select an Operating System: **Raspberry Pi OS** (Recommended) +1. Select your Micro SD card (The card will be formatted) +1. Click "Write" +1. Wait for the imaging process to be finished (it'll take a few minutes) and eject your SD card + +## Initial boot - Set up Wifi connection + +1. Connect a USB mouse, a keyboard and a screen through HDMI +1. Insert the Micro SD card +1. Start your Raspberry Pi by attaching a power supply +1. Walk through the "Welcome to Raspberry Pi" wizard (the content of this wizard might have changed after this tutorial was created) + 1. Set your locale + 1. Change your password + 1. Proceed with with screen settings + 1. Select your Wifi Network (You are being asked in the Phoniebox install routine whether you want to set up your Wifi again, we will skip this step then) + 1. Software Update (optional, takes a while) + 1. Restart +1. Let's enable a few more settings + 1. Launch `Raspberry Pi Configuration` from the `Preferences` menu + 1. A window opens with the `System` tab selected + 1. Select `To CLI` for `Boot` option + 1. Select `Login as user 'pi'` for `Auto login` option + 1. Select `Wait for network` for `Network at Boot` option (optional, required for Spotify+ version) + 1. Navigate to the `Interfaces` tab + 1. Select `Enabled` next to `SSH` + 1. Click OK +1. Optional, but recommended: **Set up a static IP** + 1. Right click on the Wifi sympbol in the upper right corner of your application bar and choose `Wifi & Wired Network Settings` + 1. Configure `interface` and `wlan0` + 1. Check `Disabled IPv6` unless you want to provide a static IPv6 address + 1. Fill out `IPv4` abd `Router` (Gateway) options (keep `DNS Servers` and `DNS Search` empty) + 1. Click `Apply` and `Close` +1. Optional: If you like, you can **turn off Bluetooth** to reduce energy consumption (unless you want to use any Bluetooth devices with your Phoniebox) +1. Shutdown your Raspberry Pi (`Application > Logout > Shutdown`) + +## Install Phoniebox software + +If you want to install the **Spotify+ version**, [read this first](https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/develop/docs/SPOTIFY-INTEGRATION.md). + +1. While shut down, disconnect mouse, keyboard and HDMI +1. Connect RFID Reader +1. Conntect USB Sound Card, plug in the 3.5" speakers with the Ground Loop Isolator in between. If you have chose the example speakers from above, you can power them either through the Raspberry or through an external power source. +1. Boot your Raspberry Pi +1. Open a terminal in your second computer and login via SSH using the `pi` user and your static IP address. If you see a question about authentication and fingerprint, type `yes` and hit `enter` + ``` + ssh pi@192.168.1.123 + ``` + +### Configure USB sound card + +1. Configure your **USB sound card** ([Resource](https://learn.adafruit.com/usb-audio-cards-with-a-raspberry-pi/instructions)). Check if your sound card has been detected + ``` + cat /proc/asound/modules + + // returns + + 0 snd_bcm2835 + 1 snd_usb_audio + ``` +1. Update the sound card priority order, edit the following file + ``` + sudo nano /etc/modprobe.d/alsa-base.conf + ``` +1. Find the following lines and set their value to `1` + ``` + defaults.ctl.card 0 + defaults.pcm.card 0 + + // to + + defaults.ctl.card 1 + defaults.pcm.card 1 + ``` +1. Reboot +1. Test your audio! Check if you hear white noise in stereo when running the following command from your connected speakers. If not, return to the resource linked above to troubleshoot. + ``` + speaker-test -c2 + ``` + +### Phoniebox Install Script + +Run the following command in your SSH terminal and follow the instructions + +``` +cd; rm buster-install-*; wget https://raw.githubusercontent.com/MiczFlor/RPi-Jukebox-RFID/master/scripts/installscripts/buster-install-default.sh; chmod +x buster-install-default.sh; ./buster-install-default.sh +``` + +1. `Yes` to `Continue interactive installation` +1. `No` to the `Wifi Setting step` - it's already set! +1. `Master` to `CONFIGURE AUDIO INTERFACE (iFace)` +1. Optional: Setup Spotify + 1. You need to generate your personal Spotify client id and secret + 1. Visit the [Mopidy Spotify Authentication Page](https://mopidy.com/ext/spotify/#authentication) + 1. Ignore the install guide and click the button `Authenticate Mopidy with Spotify` + 1. Login to Spotify with your credentials + 1. Once logged in, the code snippet on the website is updated with your `client_id` and `client_secret` + 1. Enter your Spotify `username`, `password`, `client_id` and `client_secret` into your terminal +1. `Yes` to `CONFIGURE MPD` +1. `Yes` to `FOLDER CONTAINING AUDIO FILES` +1. Optional: In this scenario, we do not install GPIO buttons, so feel free to choose `No` +1. `Yes` to `Do you want to start the installation?` +1. `Yes` to `Have you connected your RFID reader?` +1. `1` to select `1. USB-Reader` +1. Choose the `#` that resonates with your RFID reader, e.g. `HXGCoLtd Keyboard` +1. `Yes` to `Would you like to reboot now?` + +## Verify Phoniebox installation + +1. Open a browser in your computer and navigate to your static IP: `http://192.168.1.123` +1. You should see the Phoniebox UI +1. In your navigation, choose `Card ID` +1. Swipe one card near your RFID reader. If `Last used Chip ID` is automatically updated (you might hear a beep) and shows a number, your reader works \ No newline at end of file From da345cf4d4a4437235bc8f7cc1e4fcf18e49bf5e Mon Sep 17 00:00:00 2001 From: Patrick Beer <patrick@pabera.com> Date: Mon, 15 Feb 2021 00:03:41 +0100 Subject: [PATCH 077/206] Correct typos in Complete Install Guide --- docs/INSTALL-COMPLETE-GUIDE.md | 54 ++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/docs/INSTALL-COMPLETE-GUIDE.md b/docs/INSTALL-COMPLETE-GUIDE.md index 229bf7aba..e7bb6b301 100644 --- a/docs/INSTALL-COMPLETE-GUIDE.md +++ b/docs/INSTALL-COMPLETE-GUIDE.md @@ -5,19 +5,19 @@ All parts marked with a star (*) are optional but improve the overall experience. All linked components are examples but have proven to work together. You are free to choose different equipment. 1. [Micro SD Card](https://www.amazon.de/gp/product/B073JWXGNT) (e.g. 32 GB) -1. [Raspberry Pi]((https://www.amazon.de/gp/product/B07BDR5PDW)) (Model 1, 2, 3, 4, Zero) -1. [USB RFID Reader]((https://www.amazon.de/gp/product/B018OYOR3E)) +1. [Raspberry Pi](https://www.amazon.de/gp/product/B07BDR5PDW) (Model 1, 2, 3, 4, Zero) +1. [USB RFID Reader](https://www.amazon.de/gp/product/B018OYOR3E) 1. [RFID Chips](https://www.amazon.de/gp/product/B078WRNLQZ) or [RFID Cards](https://www.amazon.de/gp/product/B00REFN24A) 1. [Speakers with 3.5mm jack](https://www.amazon.de/gp/product/B00JRW0M32) 1. [USB Sound Card](https://www.amazon.de/gp/product/B00C7LXUDY) * - [Alternative](https://www.amazon.de/gp/product/B00IRVQ0F8) 1. [Ground Loop Isolator](https://www.amazon.de/gp/product/B01LX0H29W) * -You'll need a few other things for the one time set up only. +You'll need a few other things for a one time set up only. -1. Second computer (Linux, Max or Windows) +1. Second computer (Linux, Mac or Windows) 1. USB Mouse and USB Keyboard 1. Micro SD Card Reader -1. Screen with HTMI connection +1. Screen with HDMI connection Alternative: If you are able to connect your Raspberry Pi via a wired network interface (LAN), you can set it up via terminal (SSH) only. @@ -27,9 +27,9 @@ Before you can install the Phoniebox software, you need to prepare your Raspberr 1. Connect your Micro SD card (through a card reader) to your computer 1. [Download](https://www.raspberrypi.org/software/) the [Raspberry Pi Imager](https://www.raspberrypi.org/blog/raspberry-pi-imager-imaging-utility/) and open it -1. Select an Operating System: **Raspberry Pi OS** (Recommended) -1. Select your Micro SD card (The card will be formatted) -1. Click "Write" +1. Select **Raspberry Pi OS** as the operating system (Recommended) +1. Select your Micro SD card (card will be formatted) +1. Click `Write` 1. Wait for the imaging process to be finished (it'll take a few minutes) and eject your SD card ## Initial boot - Set up Wifi connection @@ -37,13 +37,13 @@ Before you can install the Phoniebox software, you need to prepare your Raspberr 1. Connect a USB mouse, a keyboard and a screen through HDMI 1. Insert the Micro SD card 1. Start your Raspberry Pi by attaching a power supply -1. Walk through the "Welcome to Raspberry Pi" wizard (the content of this wizard might have changed after this tutorial was created) +1. Walk through the "Welcome to Raspberry Pi" wizard (the content of this wizard might have changed after this tutorial was created!) 1. Set your locale 1. Change your password 1. Proceed with with screen settings 1. Select your Wifi Network (You are being asked in the Phoniebox install routine whether you want to set up your Wifi again, we will skip this step then) - 1. Software Update (optional, takes a while) - 1. Restart + 1. Software Update (optional, recommended, takes a while) + 1. Reboot 1. Let's enable a few more settings 1. Launch `Raspberry Pi Configuration` from the `Preferences` menu 1. A window opens with the `System` tab selected @@ -52,12 +52,12 @@ Before you can install the Phoniebox software, you need to prepare your Raspberr 1. Select `Wait for network` for `Network at Boot` option (optional, required for Spotify+ version) 1. Navigate to the `Interfaces` tab 1. Select `Enabled` next to `SSH` - 1. Click OK -1. Optional, but recommended: **Set up a static IP** + 1. Click `OK` +1. Set up a static IP (optional, recommended) 1. Right click on the Wifi sympbol in the upper right corner of your application bar and choose `Wifi & Wired Network Settings` 1. Configure `interface` and `wlan0` 1. Check `Disabled IPv6` unless you want to provide a static IPv6 address - 1. Fill out `IPv4` abd `Router` (Gateway) options (keep `DNS Servers` and `DNS Search` empty) + 1. Fill out `IPv4` and `Router` (Gateway) options (keep `DNS Servers` and `DNS Search` empty) 1. Click `Apply` and `Close` 1. Optional: If you like, you can **turn off Bluetooth** to reduce energy consumption (unless you want to use any Bluetooth devices with your Phoniebox) 1. Shutdown your Raspberry Pi (`Application > Logout > Shutdown`) @@ -68,7 +68,7 @@ If you want to install the **Spotify+ version**, [read this first](https://githu 1. While shut down, disconnect mouse, keyboard and HDMI 1. Connect RFID Reader -1. Conntect USB Sound Card, plug in the 3.5" speakers with the Ground Loop Isolator in between. If you have chose the example speakers from above, you can power them either through the Raspberry or through an external power source. +1. Conntect USB Sound Card, plug in the 3.5" speakers with the Ground Loop Isolator in between. If you have chosen the example speakers from above, you can power them either through the Raspberry Pi or through an external power source. 1. Boot your Raspberry Pi 1. Open a terminal in your second computer and login via SSH using the `pi` user and your static IP address. If you see a question about authentication and fingerprint, type `yes` and hit `enter` ``` @@ -77,7 +77,7 @@ If you want to install the **Spotify+ version**, [read this first](https://githu ### Configure USB sound card -1. Configure your **USB sound card** ([Resource](https://learn.adafruit.com/usb-audio-cards-with-a-raspberry-pi/instructions)). Check if your sound card has been detected +1. Configure your **USB sound card**. Check if your sound card has been detected ``` cat /proc/asound/modules @@ -86,11 +86,11 @@ If you want to install the **Spotify+ version**, [read this first](https://githu 0 snd_bcm2835 1 snd_usb_audio ``` -1. Update the sound card priority order, edit the following file +1. To update the sound card priority order, edit the following file ``` sudo nano /etc/modprobe.d/alsa-base.conf ``` -1. Find the following lines and set their value to `1` +1. Find the following variables and change their value from `0` to `1` ``` defaults.ctl.card 0 defaults.pcm.card 0 @@ -101,7 +101,7 @@ If you want to install the **Spotify+ version**, [read this first](https://githu defaults.pcm.card 1 ``` 1. Reboot -1. Test your audio! Check if you hear white noise in stereo when running the following command from your connected speakers. If not, return to the resource linked above to troubleshoot. +1. Test your audio! Check if you hear white noise in stereo when running the following command from your connected speakers. If not, refer to this [resource](https://learn.adafruit.com/usb-audio-cards-with-a-raspberry-pi/instructions) to troubleshoot. ``` speaker-test -c2 ``` @@ -117,20 +117,20 @@ cd; rm buster-install-*; wget https://raw.githubusercontent.com/MiczFlor/RPi-Juk 1. `Yes` to `Continue interactive installation` 1. `No` to the `Wifi Setting step` - it's already set! 1. `Master` to `CONFIGURE AUDIO INTERFACE (iFace)` -1. Optional: Setup Spotify - 1. You need to generate your personal Spotify client id and secret +1. Setup Spotify (optional) + 1. You need to generate your personal Spotify client ID and secret 1. Visit the [Mopidy Spotify Authentication Page](https://mopidy.com/ext/spotify/#authentication) - 1. Ignore the install guide and click the button `Authenticate Mopidy with Spotify` + 1. Click the button `Authenticate Mopidy with Spotify` 1. Login to Spotify with your credentials 1. Once logged in, the code snippet on the website is updated with your `client_id` and `client_secret` - 1. Enter your Spotify `username`, `password`, `client_id` and `client_secret` into your terminal + 1. Provide your Spotify `username`, `password` and paste your `client_id` and `client_secret` into your terminal 1. `Yes` to `CONFIGURE MPD` 1. `Yes` to `FOLDER CONTAINING AUDIO FILES` 1. Optional: In this scenario, we do not install GPIO buttons, so feel free to choose `No` 1. `Yes` to `Do you want to start the installation?` 1. `Yes` to `Have you connected your RFID reader?` 1. `1` to select `1. USB-Reader` -1. Choose the `#` that resonates with your RFID reader, e.g. `HXGCoLtd Keyboard` +1. Choose the `#` that resonates with your RFID reader, in our case `HXGCoLtd Keyboard` 1. `Yes` to `Would you like to reboot now?` ## Verify Phoniebox installation @@ -138,4 +138,8 @@ cd; rm buster-install-*; wget https://raw.githubusercontent.com/MiczFlor/RPi-Juk 1. Open a browser in your computer and navigate to your static IP: `http://192.168.1.123` 1. You should see the Phoniebox UI 1. In your navigation, choose `Card ID` -1. Swipe one card near your RFID reader. If `Last used Chip ID` is automatically updated (you might hear a beep) and shows a number, your reader works \ No newline at end of file +1. Swipe one card near your RFID reader. If `Last used Chip ID` is automatically updated (you might hear a beep) and shows a number, your reader works +1. Verify Spotify (optional) + 1. Click `Spotify+` in the menu + 1. Mopidy opens, a second web player which was also installed + 1. You should be able to search and play Spotify content here \ No newline at end of file From 0f7e9eb23c93c876c3343750d527fa137768efe0 Mon Sep 17 00:00:00 2001 From: Stefan Caliandro <Caliandroid@users.noreply.github.com> Date: Mon, 15 Feb 2021 21:25:37 +0100 Subject: [PATCH 078/206] FF and Rewind added to GPIO_SETTINGS.ini (#1291) * FF and Rewind added to GPIO_SETTINGS.ini * Update gpio_settings.ini --- .../example_configs/gpio_settings.ini | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/components/gpio_control/example_configs/gpio_settings.ini b/components/gpio_control/example_configs/gpio_settings.ini index 8a2176468..cc226084e 100755 --- a/components/gpio_control/example_configs/gpio_settings.ini +++ b/components/gpio_control/example_configs/gpio_settings.ini @@ -83,10 +83,26 @@ pull_up: True hold_time: 0.3 functionCall: functionCallPlayerPrev +[FastForward] +enabled: false +Type: Button +Pin: 7 +pull_up: True +hold_time: 0.3 +functionCall: functionCallPlayerSeekFwd + +[Rewind] +enabled: false +Type: Button +Pin: 8 +pull_up: True +hold_time: 0.3 +functionCall: functionCallPlayerSeekBack + [Halt] enabled: False Type: Button -Pin: 21 +Pin: 25 pull_up: True hold_time: 0.3 functionCall: functionCallPlayerPauseForce From 9bf5846d316cb5e445e0d61c6d94d69910b97642 Mon Sep 17 00:00:00 2001 From: Micz Flor <micz.flor@web.de> Date: Thu, 18 Feb 2021 12:46:53 +0100 Subject: [PATCH 079/206] updating install information --- docs/INSTALL-COMPLETE-GUIDE.md | 38 ++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/docs/INSTALL-COMPLETE-GUIDE.md b/docs/INSTALL-COMPLETE-GUIDE.md index e7bb6b301..026680f47 100644 --- a/docs/INSTALL-COMPLETE-GUIDE.md +++ b/docs/INSTALL-COMPLETE-GUIDE.md @@ -4,13 +4,22 @@ All parts marked with a star (*) are optional but improve the overall experience. All linked components are examples but have proven to work together. You are free to choose different equipment. -1. [Micro SD Card](https://www.amazon.de/gp/product/B073JWXGNT) (e.g. 32 GB) -1. [Raspberry Pi](https://www.amazon.de/gp/product/B07BDR5PDW) (Model 1, 2, 3, 4, Zero) -1. [USB RFID Reader](https://www.amazon.de/gp/product/B018OYOR3E) -1. [RFID Chips](https://www.amazon.de/gp/product/B078WRNLQZ) or [RFID Cards](https://www.amazon.de/gp/product/B00REFN24A) -1. [Speakers with 3.5mm jack](https://www.amazon.de/gp/product/B00JRW0M32) -1. [USB Sound Card](https://www.amazon.de/gp/product/B00C7LXUDY) * - [Alternative](https://www.amazon.de/gp/product/B00IRVQ0F8) -1. [Ground Loop Isolator](https://www.amazon.de/gp/product/B01LX0H29W) * +1. [Micro SD Card](https://amzn.to/3do7KJr) (e.g. 32 GB) +1. Raspberry Pi + * [Model 4 B](https://amzn.to/2M0xtfJ) + * [Model 3 B+](https://amzn.to/2NGL7Fa) + * (Model 1, 2, 3 and Zero are possible, but they are slow...) +1. [USB RFID Reader](https://amzn.to/3s47Iun) +1. [RFID Chips](https://amzn.to/3k78F2j) or [RFID Cards](https://amzn.to/3dplljG) +1. [Speakers with 3.5mm jack](https://amzn.to/3dnhmnV) + +To improve the sound, we recommend: + +* [Ground Loop Isolator](https://amzn.to/37nyZjK) * + +Alternatively you can use an external sound card, but sometimes that doesn't seem to improve much: + +* [USB Sound Card](https://amzn.to/3djaKqC) * - [Alternative](https://amzn.to/3u8guth) You'll need a few other things for a one time set up only. @@ -19,7 +28,9 @@ You'll need a few other things for a one time set up only. 1. Micro SD Card Reader 1. Screen with HDMI connection -Alternative: If you are able to connect your Raspberry Pi via a wired network interface (LAN), you can set it up via terminal (SSH) only. +Alternative: +* If you are able to connect your Raspberry Pi via a wired network interface (LAN), you can set it up via terminal (SSH) only. +* It's also possible to set up a Pi with [WiFi and ssh](https://raspberrypi.stackexchange.com/questions/10251/prepare-sd-card-for-wifi-on-headless-pi/57023#57023). ## Install Raspberry Pi OS on a Micro SD card @@ -75,7 +86,16 @@ If you want to install the **Spotify+ version**, [read this first](https://githu ssh pi@192.168.1.123 ``` -### Configure USB sound card +### Using on-board headphone-jack for audio + +Note: Installing with an external monitor (HDMI) can create a problem if you use the mini-jack audio out. The problem is that if you plug in a HDMI monitor an additional sound output is added and the index changes. This bothering behavior was introduced, when Raspberry Pi separated headphones jack and HDMI into two different devices in May 2020. + +See: [Troubleshooting: headphone audio unavailable after unplugging HDMI](https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions/1300) + +If this problem occurs, follow the steps in the next section (configure USB sound card). + +### Configure USB sound card (if you are using one) + 1. Configure your **USB sound card**. Check if your sound card has been detected ``` From 91dc192c416482009cd8c9565b8b9da2a452cc25 Mon Sep 17 00:00:00 2001 From: arne123 <arne@pagelnet.de> Date: Sat, 20 Feb 2021 16:11:08 +0100 Subject: [PATCH 080/206] -Added addtional output formats matching the printed Card Numbers for the RDM6300 Reader -Added XOR Checksum for the RDM6300 Output format (Wiegand26) -Tried to Address the dependencie Topic of #1105 (untested) --- scripts/Reader.py.experimental | 104 ++++++++++++++++++++++----------- 1 file changed, 69 insertions(+), 35 deletions(-) diff --git a/scripts/Reader.py.experimental b/scripts/Reader.py.experimental index 1db4af167..05b2359ed 100755 --- a/scripts/Reader.py.experimental +++ b/scripts/Reader.py.experimental @@ -7,23 +7,14 @@ import os.path import sys -import serial -import string + import RPi.GPIO as GPIO import logging from evdev import InputDevice, categorize, ecodes, list_devices -# Workaround: when using RC522 reader with pirc522 pkg the py532lib pkg may not be installed and vice-versa -try: - import pirc522 - from py532lib.i2c import * - from py532lib.mifare import * -except ImportError: - pass logger = logging.getLogger(__name__) - def get_devices(): devices = [InputDevice(fn) for fn in list_devices()] devices.append(NonUsbDevice('MFRC522')) @@ -59,6 +50,7 @@ class UsbReader(object): class Mfrc522Reader(object): def __init__(self): + import pirc522 self.device = pirc522.RFID() def readCard(self): @@ -81,49 +73,88 @@ class Mfrc522Reader(object): def cleanup(): GPIO.cleanup() - class Rdm6300Reader: - def __init__(self): + def __init__(self,param = None): + import serial device = '/dev/ttyS0' baudrate = 9600 ser_timeout = 0.1 self.last_card_id = '' try: self.rfid_serial = serial.Serial(device, baudrate, timeout=ser_timeout) + self.serial_SerialException = serial.SerialException except serial.SerialException as e: logger.error(e) exit(1) + + self.number_format = '' + if param is not None: + nf = param.get("numberformat") + if nf is not None: + self.number_format = nf + + def convert_to_weigand26_when_checksum_ok(self,raw_card_id): + weigand26 = [] + xor = 0 + for i in range(0, len(raw_card_id)>>1): + val = int(raw_card_id[i*2:i*2+2],16) + if (i < 5): + xor = xor ^ val + weigand26.append(val) + else: + chk = val + if (chk == val): + return weigand26 + else: + return None def readCard(self): - byte_card_id = b'' + byte_card_id = bytearray() try: while True: try: - read_byte = self.rfid_serial.read() - - if read_byte == b'\x02': # start byte - while read_byte != b'\x03': # end bye - read_byte = self.rfid_serial.read() - byte_card_id += read_byte - - card_id = byte_card_id.decode('utf-8') - byte_card_id = '' - card_id = ''.join(x for x in card_id if x in string.printable) - - # Only return UUIDs with correct length - if len(card_id) == 12 and card_id != self.last_card_id: - self.last_card_id = card_id - self.rfid_serial.reset_input_buffer() - return self.last_card_id - - else: # wrong UUID length or already send that UUID last time - self.rfid_serial.reset_input_buffer() + wait_for_start_byte = True + while True: + read_byte = self.rfid_serial.read() + + if (wait_for_start_byte): + if read_byte == b'\x02': + wait_for_start_byte = False + else: + if read_byte != b'\x03': #could get stuck here, check len? check timeout by len == 0?? + byte_card_id.extend(read_byte) + else: + wait_for_start_byte = True + break + + raw_card_id = byte_card_id.decode('ascii') + byte_card_id.clear() + self.rfid_serial.reset_input_buffer() + + if len(raw_card_id) == 12 : + w26 = self.convert_to_weigand26_when_checksum_ok(raw_card_id) + if (w26 is not None): + #print ("factory code is ignored" ,w26[0]) + + if self.number_format == 'card_id_dec': + #this will return a 10 Digit card ID e.g. 0006762840 + card_id = '{0:010d}'.format( (w26[1] << 24) + (w26[2] << 16) + (w26[3] << 8) + w26[4]) + elif self.number_format == 'card_id_float': + #this will return card ID as fraction e.g. 103,12632 + card_id='{0:d},{1:05d}'.format( ((w26[1] << 8) + w26[2]) , ((w26[3] << 8) + w26[4])) + else: + #this will return the raw (original) card ID e.g. 070067315809 + card_id = raw_card_id + + if card_id != self.last_card_id: #does this still makes sense here? + self.last_card_id = card_id #Means 2nd swipe will not be possible with RDM6300 + return self.last_card_id #intentionaly? Good reason for this? except ValueError as ve: - logger.errror(ve) + logger.error(ve) - except serial.SerialException as se: + except self.serial_SerialException as se: logger.error(se) def cleanup(self): @@ -132,6 +163,8 @@ class Rdm6300Reader: class Pn532Reader: def __init__(self): + from py532lib.i2c import Pn532_i2c + from py532lib.mifare import Mifare pn532 = Pn532_i2c() self.device = Mifare() self.device.SAMconfigure() @@ -144,7 +177,6 @@ class Pn532Reader: # Not sure if something needs to be done here. logger.debug("PN532Reader clean up.") - class Reader(object): def __init__(self): path = os.path.dirname(os.path.realpath(__file__)) @@ -157,6 +189,8 @@ class Reader(object): if device_name == 'MFRC522': self.reader = Mfrc522Reader() elif device_name == 'RDM6300': + #self.reader = Rdm6300Reader({'numberformat':'card_id_float'}) + #self.reader = Rdm6300Reader({'numberformat':'card_id_dec'}) self.reader = Rdm6300Reader() elif device_name == 'PN532': self.reader = Pn532Reader() From 3d7c7cf8205440942fbbec9814b447cf5bd0cdd9 Mon Sep 17 00:00:00 2001 From: arne123 <arne@pagelnet.de> Date: Sat, 20 Feb 2021 17:07:22 +0100 Subject: [PATCH 081/206] refactoring gpio-control to class --- .../gpio_control/GPIODevices/VolumeControl.py | 4 +- components/gpio_control/function_calls.py | 101 +++++---- components/gpio_control/gpio_control.py | 209 +++++++++--------- 3 files changed, 163 insertions(+), 151 deletions(-) diff --git a/components/gpio_control/GPIODevices/VolumeControl.py b/components/gpio_control/GPIODevices/VolumeControl.py index af40b0395..53f5be950 100644 --- a/components/gpio_control/GPIODevices/VolumeControl.py +++ b/components/gpio_control/GPIODevices/VolumeControl.py @@ -1,9 +1,9 @@ from GPIODevices import TwoButtonControl, RotaryEncoder -from gpio_control import logger, getFunctionCall +#from gpio_control import logger, getFunctionCall class VolumeControl: - def __new__(self, config): + def __new__(self, config,getFunctionCall,logger): if config.get('Type') == 'TwoButtonControl': logger.info('VolumeControl as TwoButtonControl') return TwoButtonControl( diff --git a/components/gpio_control/function_calls.py b/components/gpio_control/function_calls.py index b87f96b8b..22e4d3ba5 100644 --- a/components/gpio_control/function_calls.py +++ b/components/gpio_control/function_calls.py @@ -4,84 +4,87 @@ import os import pathlib -logger = logging.getLogger(__name__) +class phoniebox_function_calls: + def __init__(self): + self.logger = logging.getLogger(__name__) -playout_control_relative_path = "../../scripts/playout_controls.sh" -function_calls_absolute_path = str(pathlib.Path(__file__).parent.absolute()) -playout_control = os.path.abspath(os.path.join(function_calls_absolute_path, playout_control_relative_path)) + playout_control_relative_path = "../../scripts/playout_controls.sh" + function_calls_absolute_path = str(pathlib.Path(__file__).parent.absolute()) + self.playout_control = os.path.abspath(os.path.join(function_calls_absolute_path, playout_control_relative_path)) -def functionCallShutdown(*args): - function_call("{command} -c=shutdown".format(command=playout_control), shell=True) + def functionCallShutdown(self,*args): + function_call("{command} -c=shutdown".format(command=self.playout_control), shell=True) -def functionCallVolU(steps=None): - if steps is None: - function_call("{command} -c=volumeup".format(command=playout_control), shell=True) - else: - function_call("{command} -c=volumeup -v={steps}".format(steps=steps, - command=playout_control), - shell=True) + def functionCallVolU(self,steps=None): + if steps is None: + function_call("{command} -c=volumeup".format(command=self.playout_control), shell=True) + else: + function_call("{command} -c=volumeup -v={steps}".format(steps=steps, + command=self.playout_control), + shell=True) -def functionCallVolD(steps=None): - if steps is None: - function_call("{command} -c=volumedown".format(command=playout_control), shell=True) - else: - function_call("{command} -c=volumedown -v={steps}".format(steps=steps, - command=playout_control), - shell=True) + def functionCallVolD(self,steps=None): + if steps is None: + function_call("{command} -c=volumedown".format(command=self.playout_control), shell=True) + else: + function_call("{command} -c=volumedown -v={steps}".format(steps=steps, + command=self.playout_control), + shell=True) -def functionCallVol0(*args): - function_call("{command} -c=mute".format(command=playout_control), shell=True) + def functionCallVol0(self,*args): + function_call("{command} -c=mute".format(command=self.playout_control), shell=True) -def functionCallPlayerNext(*args): - function_call("{command} -c=playernext".format(command=playout_control), shell=True) + def functionCallPlayerNext(self,*args): + function_call("{command} -c=playernext".format(command=self.playout_control), shell=True) -def functionCallPlayerPrev(*args): - function_call("{command} -c=playerprev".format(command=playout_control), shell=True) + def functionCallPlayerPrev(self,*args): + function_call("{command} -c=playerprev".format(command=self.playout_control), shell=True) -def functionCallPlayerPauseForce(*args): - function_call("{command} -c=playerpauseforce".format(command=playout_control), shell=True) + def functionCallPlayerPauseForce(self,*args): + function_call("{command} -c=playerpauseforce".format(command=self.playout_control), shell=True) -def functionCallPlayerPause(*args): - function_call("{command} -c=playerpause".format(command=playout_control), shell=True) + def functionCallPlayerPause(self,*args): + function_call("{command} -c=playerpause".format(command=self.playout_control), shell=True) -def functionCallRecordStart(*args): - function_call("{command} -c=recordstart".format(command=playout_control), shell=True) + def functionCallRecordStart(self,*args): + function_call("{command} -c=recordstart".format(command=self.playout_control), shell=True) -def functionCallRecordStop(*args): - function_call("{command} -c=recordstop".format(command=playout_control), shell=True) + def functionCallRecordStop(self,*args): + function_call("{command} -c=recordstop".format(command=self.playout_control), shell=True) -def functionCallRecordPlayLatest(*args): - function_call("{command} -c=recordplaylatest".format(command=playout_control), shell=True) + def functionCallRecordPlayLatest(self,*args): + function_call("{command} -c=recordplaylatest".format(command=self.playout_control), shell=True) -def functionCallToggleWifi(*args): - function_call("{command} -c=togglewifi".format(command=playout_control), shell=True) + def functionCallToggleWifi(self,*args): + function_call("{command} -c=togglewifi".format(command=self.playout_control), shell=True) -def functionCallPlayerStop(*args): - function_call("{command} -c=playerstop".format(command=playout_control), - shell=True) + def functionCallPlayerStop(self,*args): + function_call("{command} -c=playerstop".format(command=self.playout_control), + shell=True) + + def functionCallPlayerSeekFwd(self,*args): + function_call("{command} -c=playerseek -v=+10".format(command=self.playout_control), shell=True) -def functionCallPlayerSeekFwd(*args): - function_call("{command} -c=playerseek -v=+10".format(command=playout_control), shell=True) + def functionCallPlayerSeekBack(self,*args): + function_call("{command} -c=playerseek -v=-10".format(command=self.playout_control), shell=True) -def functionCallPlayerSeekBack(*args): - function_call("{command} -c=playerseek -v=-10".format(command=playout_control), shell=True) + def getFunctionCall(self,functionName): + self.logger.error('Get FunctionCall: {} {}'.format(functionName, functionName in locals())) + getattr(sys.modules[__name__], str) + return locals().get(functionName, None) -def getFunctionCall(functionName): - logger.error('Get FunctionCall: {} {}'.format(functionName, functionName in locals())) - getattr(sys.modules[__name__], str) - return locals().get(functionName, None) diff --git a/components/gpio_control/gpio_control.py b/components/gpio_control/gpio_control.py index 3e6134495..8235f263d 100755 --- a/components/gpio_control/gpio_control.py +++ b/components/gpio_control/gpio_control.py @@ -6,115 +6,124 @@ from GPIODevices import * import function_calls from signal import pause - from RPi import GPIO - # from GPIODevices.VolumeControl import VolumeControl # from GPIODevices.led import LED, MPDStatusLED -GPIO.setmode(GPIO.BCM) - -logger = logging.getLogger(__name__) - - -def getFunctionCall(function_name): - try: - if function_name != 'None': - return getattr(function_calls, function_name) - except AttributeError: - logger.error('Could not find FunctionCall {function_name}'.format(function_name=function_name)) - return lambda *args: None - - -def generate_device(config, deviceName): - print(deviceName) - device_type = config.get('Type') - if deviceName.lower() == 'VolumeControl'.lower(): - return VolumeControl(config) - elif device_type == 'TwoButtonControl': - logger.info('adding TwoButtonControl') - return TwoButtonControl( - config.getint('Pin1'), - config.getint('Pin2'), - getFunctionCall(config.get('functionCall1')), - getFunctionCall(config.get('functionCall2')), - functionCallTwoBtns=getFunctionCall(config.get('functionCallTwoButtons')), - pull_up=config.getboolean('pull_up', fallback=True), - hold_repeat=config.getboolean('hold_repeat', False), - hold_time=config.getfloat('hold_time', fallback=0.3), - name=deviceName) - elif device_type in ('Button', 'SimpleButton'): - return SimpleButton(config.getint('Pin'), - action=getFunctionCall(config.get('functionCall')), - name=deviceName, - bouncetime=config.getint('bouncetime', fallback=500), - edge=config.get('edge', fallback='FALLING'), - hold_repeat=config.getboolean('hold_repeat', False), - hold_time=config.getfloat('hold_time', fallback=0.3), - pull_up_down=config.get('pull_up_down', fallback=GPIO.PUD_UP)) - elif device_type == 'LED': - return LED(config.getint('Pin'), - name=deviceName, - initial_value=config.getboolean('initial_value', fallback=True)) - elif device_type == 'MPDStatusLED': - return MPDStatusLED(config.getint('Pin'), - host=config.get('host', fallback='localhost'), - port=config.getint('port', fallback=6600), - name=deviceName - ) - elif device_type == 'RotaryEncoder': - return RotaryEncoder(config.getint('pinUp'), - config.getint('pinDown'), - getFunctionCall(config.get('functionCallUp')), - getFunctionCall(config.get('functionCallDown')), - config.getfloat('timeBase', fallback=0.1), +class gpio_control(): + + def __init__(self,function_calls): + self.devices = [] + self.function_calls = function_calls + + GPIO.setmode(GPIO.BCM) + + lf = '%(asctime)s %(message)s' + lp = '/home/pi/RPi-Jukebox-RFID/logs/gpio.log' + logging.basicConfig(filename=lp, level=logging.DEBUG,format=lf) + #logging.basicConfig(level=logging.INFO,format=lf) + self.logger = logging.getLogger(__name__) + self.logger.setLevel('INFO') + self.logger.info('GPIO Started') + + def getFunctionCall(self,function_name): + try: + if function_name != 'None': + return getattr(self.function_calls, function_name) + except AttributeError: + self.logger.error('Could not find FunctionCall {function_name}'.format(function_name=function_name)) + return lambda *args: None + + def generate_device(self,config, deviceName): + print(deviceName) + device_type = config.get('Type') + if deviceName.lower() == 'VolumeControl'.lower(): + return VolumeControl(config,self.getFunctionCall,logger) + elif device_type == 'TwoButtonControl': + self.logger.info('adding TwoButtonControl') + return TwoButtonControl( + config.getint('Pin1'), + config.getint('Pin2'), + self.getFunctionCall(config.get('functionCall1')), + self.getFunctionCall(config.get('functionCall2')), + functionCallTwoBtns=getFunctionCall(config.get('functionCallTwoButtons')), + pull_up=config.getboolean('pull_up', fallback=True), + hold_repeat=config.getboolean('hold_repeat', False), + hold_time=config.getfloat('hold_time', fallback=0.3), name=deviceName) - elif device_type == 'ShutdownButton': - return ShutdownButton(pin=config.getint('Pin'), - action=getFunctionCall(config.get('functionCall',fallback='functionCallShutdown')), - name=deviceName, - bouncetime=config.getint('bouncetime', fallback=500), - edge=config.get('edge', fallback='FALLING'), - hold_repeat=config.getboolean('hold_repeat', False), - hold_time=config.getfloat('hold_time', fallback=0.3), - pull_up_down=config.get('pull_up_down', fallback=GPIO.PUD_UP)) - logger.warning('cannot find {}'.format(deviceName)) - return None - - -def get_all_devices(config): - devices = [] - logger.info(config.sections()) - for section in config.sections(): - if config.getboolean(section, 'enabled', fallback=False): - logger.info('adding GPIO-Device, {}'.format(section)) - device = generate_device(config[section], section) - if device is not None: - devices.append(device) + elif device_type in ('Button', 'SimpleButton'): + return SimpleButton(config.getint('Pin'), + action=self.getFunctionCall(config.get('functionCall')), + name=deviceName, + bouncetime=config.getint('bouncetime', fallback=500), + edge=config.get('edge', fallback='FALLING'), + hold_repeat=config.getboolean('hold_repeat', False), + hold_time=config.getfloat('hold_time', fallback=0.3), + pull_up_down=config.get('pull_up_down', fallback=GPIO.PUD_UP)) + elif device_type == 'LED': + return LED(config.getint('Pin'), + name=deviceName, + initial_value=config.getboolean('initial_value', fallback=True)) + elif device_type == 'MPDStatusLED': + return MPDStatusLED(config.getint('Pin'), + host=config.get('host', fallback='localhost'), + port=config.getint('port', fallback=6600), + name=deviceName + ) + elif device_type == 'RotaryEncoder': + return RotaryEncoder(config.getint('pinUp'), + config.getint('pinDown'), + self.getFunctionCall(config.get('functionCallUp')), + self.getFunctionCall(config.get('functionCallDown')), + config.getfloat('timeBase', fallback=0.1), + name=deviceName) + elif device_type == 'ShutdownButton': + return ShutdownButton(pin=config.getint('Pin'), + action=self.getFunctionCall(config.get('functionCall',fallback='functionCallShutdown')), + name=deviceName, + bouncetime=config.getint('bouncetime', fallback=500), + edge=config.get('edge', fallback='FALLING'), + hold_repeat=config.getboolean('hold_repeat', False), + hold_time=config.getfloat('hold_time', fallback=0.3), + pull_up_down=config.get('pull_up_down', fallback=GPIO.PUD_UP)) + self.logger.warning('cannot find {}'.format(deviceName)) + return None + + def get_all_devices(self,config): + self.logger.info(config.sections()) + for section in config.sections(): + if config.getboolean(section, 'enabled', fallback=False): + self.logger.info('adding GPIO-Device, {}'.format(section)) + device = self.generate_device(config[section], section) + if device is not None: + self.devices.append(device) + else: + self.logger.warning('Could not add Device {} with {}'.format(section, config.items(section))) else: - logger.warning('Could not add Device {} with {}'.format(section, config.items(section))) - else: - logger.info('Device {} not enabled'.format(section)) - for dev in devices: - print(dev) - return devices - + self.logger.info('Device {} not enabled'.format(section)) + return self.devices + + def print_all_devices(self): + for dev in self.devices: + print(dev) + + def gpio_loop(self): + self.logger.info('Ready for taking actions') + try: + pause() + except KeyboardInterrupt: + pass + self.logger.info('Exiting GPIO Control') + if __name__ == "__main__": - - logging.basicConfig(level='INFO') - logger = logging.getLogger() - logger.setLevel('INFO') - config = configparser.ConfigParser(inline_comment_prefixes=";") config_path = os.path.expanduser('/home/pi/RPi-Jukebox-RFID/settings/gpio_settings.ini') config.read(config_path) - devices = get_all_devices(config) - print(devices) - logger.info('Ready for taking actions') - try: - pause() - except KeyboardInterrupt: - pass - logger.info('Exiting GPIO Control') + phoniebox_function_calls = function_calls.phoniebox_function_calls() + gpio_controler = gpio_control(phoniebox_function_calls) + + devices = gpio_controler.get_all_devices(config) + gpio_controler.print_all_devices() + gpio_controler.gpio_loop() \ No newline at end of file From 15885e704d913d4a75d61f9ef3a336c12e51a94f Mon Sep 17 00:00:00 2001 From: Schneelocke <75278644+Schneelocke@users.noreply.github.com> Date: Sun, 21 Feb 2021 22:53:14 +0100 Subject: [PATCH 082/206] Webplayer: Time Played Interpolation, Improvements (#1200) * add mission date of 2.2 release (#1160) * update to next version number * fixed date for 2.2 release * go back for commit to master * Set Own Repo * Revert "Set Own Repo" This reverts commit 6d504e5158f8ebff98fbf90c11b5410bd406b10d. * Interpolate played time to improve UX feeling (something is happening/playing) * Solved problems of parallel put and get request of player.php Co-authored-by: s-martin <s-martin@users.noreply.github.com> --- htdocs/inc.loadControls.php | 1 + htdocs/js/jukebox.js | 25 +++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/htdocs/inc.loadControls.php b/htdocs/inc.loadControls.php index 3eded1755..0abba0abc 100755 --- a/htdocs/inc.loadControls.php +++ b/htdocs/inc.loadControls.php @@ -95,6 +95,7 @@ function play() { } function pause() { + clearInterval(JUKEBOX.interval); executePlayerCommand('pause', () => { $('#play').css('display', 'inline-block'); $('#pause').css('display', 'none'); diff --git a/htdocs/js/jukebox.js b/htdocs/js/jukebox.js index 91d8eddcb..c516cb8ae 100755 --- a/htdocs/js/jukebox.js +++ b/htdocs/js/jukebox.js @@ -24,11 +24,29 @@ function init() { } function loadStatusRepeat() { + clearTimeout(JUKEBOX.timeout); + clearInterval(JUKEBOX.interval); loadStatus(() => { - setTimeout(loadStatusRepeat, 5000); + var counter = 0, + interval = setInterval(function () { + interpolateTime(); + if (++counter == 5) { + clearInterval(interval); + } + },1000) + JUKEBOX.interval = interval; + JUKEBOX.timeout = setTimeout(loadStatusRepeat, 5000); }); } +function interpolateTime() +{ + if (JUKEBOX.playerInfo.state == "play" && JUKEBOX.playerInfo.elapsed < JUKEBOX.playlistInfo.albumLength){ + ++JUKEBOX.playerInfo.elapsed; + } + notify(JUKEBOX.timeListener, JUKEBOX.playerInfo.time); +} + function loadStatus(completion) { $.ajax({ @@ -194,6 +212,7 @@ function playSingleFile(file) { function executePlayerCommand(command, completion, value) { hideApiError(); + clearTimeout(JUKEBOX.timeout); $.ajax({ url: 'api/player.php', method: 'PUT', @@ -204,8 +223,10 @@ function executePlayerCommand(command, completion, value) { completion(data); } }).error(error => { - $("#api-alert").html(`An error occorured: ${error.responseText}`); + $("#api-alert").html(`An error occured: ${error.responseText}`); showApiError(); + }).complete(data => { + loadStatusRepeat(); }); } From 604bffb04b55105b1727c772fdef97b19908be5a Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Sun, 21 Feb 2021 22:56:35 +0100 Subject: [PATCH 083/206] implementing stop on removal for RC522 (see #1097); implementation proposed by @Toqqi in https://github.com/MiczFlor/RPi-Jukebox-RFID/commit/786ecf4874db54c0fd6257a7aa8cf8fe611c0232: (#1122) Description from @Toqqi: I used the signal python library to detect when a RC522 RFID reader stops reading in a card ID for one second. This then triggers the playerpauseforce action in playout_controls.sh. I then configured the second swipe action to be "resume playback" to achieve the play/pause effect when moving an RFID card to/from the reader. --- scripts/daemon_rfid_reader.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/scripts/daemon_rfid_reader.py b/scripts/daemon_rfid_reader.py index 5bf13d43a..872f59986 100755 --- a/scripts/daemon_rfid_reader.py +++ b/scripts/daemon_rfid_reader.py @@ -5,6 +5,7 @@ import subprocess import time import re +import signal from Reader import Reader @@ -56,7 +57,27 @@ else: ids = "" + +# handler for RFID reading no cardid +def handler(signum, frame): + logger.info('No RFID Signal detected.') + try: + # force pause the player script + logger.info('Trigger Pause Force') + subprocess.call([dir_path + '/playout_controls.sh -c=playerpauseforce -v=0.1'], shell=True) + except OSError as e: + logger.info('Execution of Pause failed.') + + +# associate the handler to signal alarm +signal.signal(signal.SIGALRM, handler) + while True: + # slow down the card reading while loop + time.sleep(0.2) + # enable the signal alarm (if no card is present for 1 second) + signal.alarm(1) + # reading the card id # NOTE: it's been reported that KKMOON Reader might need the following line altered. # Instead of: @@ -66,6 +87,10 @@ # See here for (German ;) details: # https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/551 cardid = reader.reader.readCard() + + # disable the alarm after a successful read + signal.alarm(0) + try: # start the player script and pass on the cardid (but only if new card or otherwise # "same_id_delay" seconds have passed) From 157ca0ef059224cd73b6d7371266ef8363c7467f Mon Sep 17 00:00:00 2001 From: arne123 <arne@pagelnet.de> Date: Mon, 22 Feb 2021 10:00:10 +0100 Subject: [PATCH 084/206] - Fixed unecessary code line - improved comment --- scripts/Reader.py.experimental | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/scripts/Reader.py.experimental b/scripts/Reader.py.experimental index 05b2359ed..b6a812f90 100755 --- a/scripts/Reader.py.experimental +++ b/scripts/Reader.py.experimental @@ -125,7 +125,6 @@ class Rdm6300Reader: if read_byte != b'\x03': #could get stuck here, check len? check timeout by len == 0?? byte_card_id.extend(read_byte) else: - wait_for_start_byte = True break raw_card_id = byte_card_id.decode('ascii') @@ -189,8 +188,8 @@ class Reader(object): if device_name == 'MFRC522': self.reader = Mfrc522Reader() elif device_name == 'RDM6300': - #self.reader = Rdm6300Reader({'numberformat':'card_id_float'}) - #self.reader = Rdm6300Reader({'numberformat':'card_id_dec'}) + # The Rdm6300Reader supports 2 Additional Number Formats which can bee choosen by an optional parameter dictionary: + # {'numberformat':'card_id_float'} or {'numberformat':'card_id_dec'} self.reader = Rdm6300Reader() elif device_name == 'PN532': self.reader = Pn532Reader() From fd2f1d98634311dee14a673ccaaa5422cacd61e8 Mon Sep 17 00:00:00 2001 From: arne123 <arne@pagelnet.de> Date: Mon, 22 Feb 2021 10:13:50 +0100 Subject: [PATCH 085/206] fixed logging --- components/gpio_control/gpio_control.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/components/gpio_control/gpio_control.py b/components/gpio_control/gpio_control.py index 8235f263d..a6969a422 100755 --- a/components/gpio_control/gpio_control.py +++ b/components/gpio_control/gpio_control.py @@ -18,10 +18,7 @@ def __init__(self,function_calls): GPIO.setmode(GPIO.BCM) - lf = '%(asctime)s %(message)s' - lp = '/home/pi/RPi-Jukebox-RFID/logs/gpio.log' - logging.basicConfig(filename=lp, level=logging.DEBUG,format=lf) - #logging.basicConfig(level=logging.INFO,format=lf) + logging.basicConfig(level=logging.INFO) self.logger = logging.getLogger(__name__) self.logger.setLevel('INFO') self.logger.info('GPIO Started') From cd10bb704c44a5c4997806d3a47c77bf1c69178f Mon Sep 17 00:00:00 2001 From: damaev <61206882+damaev@users.noreply.github.com> Date: Wed, 24 Feb 2021 22:32:27 +0100 Subject: [PATCH 086/206] Update gpio_control.py (#1310) BugFix functionCallTwoBtns --- components/gpio_control/gpio_control.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/gpio_control/gpio_control.py b/components/gpio_control/gpio_control.py index a6969a422..e7a52383b 100755 --- a/components/gpio_control/gpio_control.py +++ b/components/gpio_control/gpio_control.py @@ -43,7 +43,7 @@ def generate_device(self,config, deviceName): config.getint('Pin2'), self.getFunctionCall(config.get('functionCall1')), self.getFunctionCall(config.get('functionCall2')), - functionCallTwoBtns=getFunctionCall(config.get('functionCallTwoButtons')), + functionCallTwoBtns=self.getFunctionCall(config.get('functionCallTwoButtons')), pull_up=config.getboolean('pull_up', fallback=True), hold_repeat=config.getboolean('hold_repeat', False), hold_time=config.getfloat('hold_time', fallback=0.3), @@ -123,4 +123,4 @@ def gpio_loop(self): devices = gpio_controler.get_all_devices(config) gpio_controler.print_all_devices() - gpio_controler.gpio_loop() \ No newline at end of file + gpio_controler.gpio_loop() From 418bd5ae8fb33ac401d35118422e7113a3d2d28f Mon Sep 17 00:00:00 2001 From: miohna <miohna@freenet.de> Date: Sat, 2 Jan 2021 21:43:59 +0100 Subject: [PATCH 087/206] Added read-for-card status LED GPIO control Adds a status LED GPIO control that lights up the LED if the phoniebox is ready (finished startup scripts, checked via systemctl). Type called `StartupScriptsStatusLED`. Comparison to MPDStatusLED: MPDStatusLED lights up the LED if MPD is started which is (on a RPi zero seconds) before the phoniebox is actually ready for its first card. Therefore, another status LED indicating whether startup completely finished appears useful. --- components/gpio_control/GPIODevices/led.py | 15 +++++++++++++++ components/gpio_control/gpio_control.py | 4 ++++ 2 files changed, 19 insertions(+) diff --git a/components/gpio_control/GPIODevices/led.py b/components/gpio_control/GPIODevices/led.py index d2d5dbab3..0013676c3 100644 --- a/components/gpio_control/GPIODevices/led.py +++ b/components/gpio_control/GPIODevices/led.py @@ -1,5 +1,6 @@ import logging import time +from os import system import mpd from RPi import GPIO @@ -54,3 +55,17 @@ def has_mpd_connection(self): return True except ConnectionError: return False + +class StartupScriptsStatusLED(LED): + logger = logging.getLogger("StartupScriptsStatusLED") + + def __init__(self, pin, name='StartupScriptsStatusLED'): + super(StartupScriptsStatusLED, self).__init__(pin, initial_value=False, name=name) + self.logger.info('Waiting for phoniebox-startup-scripts service to be active') + systemctlCmd = 'systemctl is-active --quiet phoniebox-startup-scripts.service' + while system(systemctlCmd) != 0: + self.logger.debug('phoniebox-startup-scripts service not yet active') + time.sleep(1) + self.logger.info('phoniebox-startup-scripts service active') + self.on() + diff --git a/components/gpio_control/gpio_control.py b/components/gpio_control/gpio_control.py index e7a52383b..3e4fd7b1c 100755 --- a/components/gpio_control/gpio_control.py +++ b/components/gpio_control/gpio_control.py @@ -67,6 +67,10 @@ def generate_device(self,config, deviceName): port=config.getint('port', fallback=6600), name=deviceName ) + elif device_type == 'StartupScriptsStatusLED': + return StartupScriptsStatusLED(config.getint('Pin'), + name=deviceName + ) elif device_type == 'RotaryEncoder': return RotaryEncoder(config.getint('pinUp'), config.getint('pinDown'), From 34546873fffd9331cfd4899f90ed728709ec8240 Mon Sep 17 00:00:00 2001 From: miohna <miohna@freenet.de> Date: Sun, 3 Jan 2021 14:04:00 +0100 Subject: [PATCH 088/206] Added example/test config for status LED Add an example config for the startup script status LED using GPIO 14 (UART TX). This combines a side effect of flashing once when RPi is powered on and staying one once startup script finished. Same config added to the gpio test config. --- .../example_configs/gpio_settings_status_led.ini | 7 +++++++ components/gpio_control/test/gpio_settings_test.ini | 7 +++++++ 2 files changed, 14 insertions(+) create mode 100644 components/gpio_control/example_configs/gpio_settings_status_led.ini diff --git a/components/gpio_control/example_configs/gpio_settings_status_led.ini b/components/gpio_control/example_configs/gpio_settings_status_led.ini new file mode 100644 index 000000000..da960aec0 --- /dev/null +++ b/components/gpio_control/example_configs/gpio_settings_status_led.ini @@ -0,0 +1,7 @@ +[DEFAULT] +enabled: True + +[StatusLED] +enable: True +Type: StartupScriptsStatusLED +Pin: 14 diff --git a/components/gpio_control/test/gpio_settings_test.ini b/components/gpio_control/test/gpio_settings_test.ini index a1ab63273..da5aeb98e 100644 --- a/components/gpio_control/test/gpio_settings_test.ini +++ b/components/gpio_control/test/gpio_settings_test.ini @@ -5,6 +5,7 @@ enabled: True ; RotaryEncoder ; TwoButtonControl ; SimpleButton = Button +; StartupScriptsStatusLED [VolumeControl] enabled: True Type: RotaryEncoder @@ -63,6 +64,7 @@ Pin: 19 pull_up: True hold_time: 0.3 hold_repeat: True + [NextSong] enabled: False Type: Button @@ -80,3 +82,8 @@ enabled: False Type: Button Pin: 21 pull_up: True + +[StatusLED] +enable: True +Type: StartupScriptsStatusLED +Pin: 14 From c1dfc20135e53a03ce5d4f09a7e61912572436e2 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Thu, 25 Feb 2021 23:14:51 +0100 Subject: [PATCH 089/206] Fix missing import (#1312) --- scripts/Reader.py.experimental | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/Reader.py.experimental b/scripts/Reader.py.experimental index b6a812f90..c7ad12f61 100755 --- a/scripts/Reader.py.experimental +++ b/scripts/Reader.py.experimental @@ -164,6 +164,7 @@ class Pn532Reader: def __init__(self): from py532lib.i2c import Pn532_i2c from py532lib.mifare import Mifare + from py532lib.mifare import MIFARE_WAIT_FOR_ENTRY pn532 = Pn532_i2c() self.device = Mifare() self.device.SAMconfigure() From 036fe9af79c312448a8770f703da28a106738ea5 Mon Sep 17 00:00:00 2001 From: miohna <miohna@freenet.de> Date: Fri, 18 Dec 2020 21:07:42 +0100 Subject: [PATCH 090/206] Added switchable audio iFaces Adds a feature to switch between two audio iFaces (e.g. speaker/headphone). Audio iFaces to swap are stored in files `settings/Audio_iFace_Name_[01]` and need to be set manually, if feature should be activated. The correlating volumes are stored in files `Audio_Volume_Level_[01]`. Currently active iFace "ID" (0 or 1) is stored in file `settings/Audio_iFace_Active` (default 0). Scenario: You have equipped your Pi with a sound card that provides a separate output (and volume control) for speaker and headphone, like the WM8960 Hi-Fi HAT. This feature enables you to switch between the two output. It can be triggered by RFID card or (not implemented) via GPIO (button or switched jack). Compare discussion in #786. Many room for extension of features: - setting audio iFaces via WebUI - display current audio iFace in WebUI + trigger for switch - trigger switch via GPIO (not needed in my case :-)) - generalisation for more than two audio iFaces (simple to implement if needed) - multi volume control in WebUI and via RFID (not sure if handy) --- scripts/inc.writeGlobalConfig.sh | 12 +++++++++ scripts/playout_controls.sh | 34 ++++++++++++++++++++++++++ scripts/rfid_trigger_play.sh | 4 +++ settings/rfid_trigger_play.conf.sample | 2 ++ 4 files changed, 52 insertions(+) diff --git a/scripts/inc.writeGlobalConfig.sh b/scripts/inc.writeGlobalConfig.sh index 85aa4c224..a903f3c98 100755 --- a/scripts/inc.writeGlobalConfig.sh +++ b/scripts/inc.writeGlobalConfig.sh @@ -119,6 +119,16 @@ fi # 2. then|or read value from file AUDIOIFACENAME=`cat $PATHDATA/../settings/Audio_iFace_Name` +############################################## +# Audio_iFace_Active +# 1. create a default if file does not exist +if [ ! -f $PATHDATA/../settings/Audio_iFace_Active ]; then + echo "0" > $PATHDATA/../settings/Audio_iFace_Active + chmod 777 $PATHDATA/../settings/Audio_iFace_Active +fi +# 2. then|or read value from file +AUDIOIFACEACTIVE=`cat $PATHDATA/../settings/Audio_iFace_Active` + ############################################## # Volume_Manager (mpd or amixer) # 1. create a default if file does not exist @@ -313,6 +323,7 @@ CMDSEEKBACK=`grep 'CMDSEEKBACK' $PATHDATA/../settings/rfid_trigger_play.conf|tai # SECONDSWIPEPAUSE # SECONDSWIPEPAUSECONTROLS # AUDIOIFACENAME +# AUDIOIFACEACTIVE # VOLUMEMANAGER # AUDIOVOLCHANGESTEP # AUDIOVOLMAXLIMIT @@ -348,6 +359,7 @@ echo "SECONDSWIPE=\"${SECONDSWIPE}\"" >> "${PATHDATA}/../settings/global.conf" echo "SECONDSWIPEPAUSE=\"${SECONDSWIPEPAUSE}\"" >> "${PATHDATA}/../settings/global.conf" echo "SECONDSWIPEPAUSECONTROLS=\"${SECONDSWIPEPAUSECONTROLS}\"" >> "${PATHDATA}/../settings/global.conf" echo "AUDIOIFACENAME=\"${AUDIOIFACENAME}\"" >> "${PATHDATA}/../settings/global.conf" +echo "AUDIOIFACEACTIVE=\"${AUDIOIFACEACTIVE}\"" >> "${PATHDATA}/../settings/global.conf" echo "VOLUMEMANAGER=\"${VOLUMEMANAGER}\"" >> "${PATHDATA}/../settings/global.conf" echo "AUDIOVOLCHANGESTEP=\"${AUDIOVOLCHANGESTEP}\"" >> "${PATHDATA}/../settings/global.conf" echo "AUDIOVOLMAXLIMIT=\"${AUDIOVOLMAXLIMIT}\"" >> "${PATHDATA}/../settings/global.conf" diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index 074e7cc06..871e44c1c 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -69,6 +69,7 @@ NOW=`date +%Y-%m-%d.%H:%M:%S` # recordplaylatest # readwifiipoverspeaker # bluetoothtoggle +# switchaudioiface # The absolute path to the folder which contains all the scripts. # Unless you are working with symlinks, leave the following line untouched. @@ -96,6 +97,9 @@ fi # it will be created or deleted by this script VOLFILE=${PATHDATA}/../settings/Audio_Volume_Level +# path to file storing the current audio iFace name +IFACEFILE=${PATHDATA}/../settings/Audio_iFace_Name + ############################################################# # Get args from command line (see Usage above) @@ -1027,6 +1031,36 @@ case $COMMAND in if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi $PATHDATA/../components/bluetooth-sink-switch/bt-sink-switch.py $VALUE ;; + switchaudioiface) + # will switch between primary/secondary audio iFace (e.g. speaker/headphones), if exist + dbg " ${COMMAND}" + if [ "${VOLUMEMANAGER}" == "amixer" ]; then + NEXTAUDIOIFACE=$(((${AUDIOIFACEACTIVE}+1) % 2)) + if [ -f ${IFACEFILE}_${NEXTAUDIOIFACE} ]; then + NEXTAUDIOIFACENAME=`<${IFACEFILE}_${NEXTAUDIOIFACE}` + if [ -f ${VOLFILE}_${NEXTAUDIOIFACE} ]; then + NEXTAUDIOIFACEVOL=`<${VOLFILE}_${NEXTAUDIOIFACE}` + else + NEXTAUDIOIFACEVOL=${AUDIOVOLMAXLIMIT} + fi + # store current volume + amixer sget \'${AUDIOIFACENAME}\' | grep -Po -m 1 '(?<=\[)[^]]*(?=%])' > ${VOLFILE}_${AUDIOIFACEACTIVE} + # unmute next audio iFace + amixer sset \'${NEXTAUDIOIFACENAME}\' ${NEXTAUDIOIFACEVOL}% + # mute current audio iFace + amixer sset \'${AUDIOIFACENAME}\' 0% + # store new active audio iFace + cp ${IFACEFILE}_${NEXTAUDIOIFACE} ${IFACEFILE} + echo "${NEXTAUDIOIFACE}" > ${PATHDATA}/../settings/Audio_iFace_Active + # create global config file because individual setting got changed (time consuming) + . ${PATHDATA}/inc.writeGlobalConfig.sh + else + dbg "Cannot switch audio iFace. ${IFACEFILE}_${NEXTAUDIOIFACE} does not exist." + fi + else + dbg "Command requires \"amixer\" as volume manager." + fi + ;; *) echo Unknown COMMAND $COMMAND VALUE $VALUE if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo "Unknown COMMAND ${COMMAND} VALUE ${VALUE}" >> ${PATHDATA}/../logs/debug.log; fi diff --git a/scripts/rfid_trigger_play.sh b/scripts/rfid_trigger_play.sh index e815d3eaa..d278f31c8 100755 --- a/scripts/rfid_trigger_play.sh +++ b/scripts/rfid_trigger_play.sh @@ -160,6 +160,10 @@ if [ "$CARDID" ]; then # decrease volume by x% set in Audio_Volume_Change_Step $PATHDATA/playout_controls.sh -c=volumedown ;; + $CMDSWITCHAUDIOIFACE) + # switch between primary/secondary audio iFaces + $PATHDATA/playout_controls.sh -c=switchaudioiface + ;; $CMDSTOP) # kill all running audio players $PATHDATA/playout_controls.sh -c=playerstop diff --git a/settings/rfid_trigger_play.conf.sample b/settings/rfid_trigger_play.conf.sample index 261398cef..d10e0f9b9 100755 --- a/settings/rfid_trigger_play.conf.sample +++ b/settings/rfid_trigger_play.conf.sample @@ -29,6 +29,8 @@ CMDVOLUP="%CMDVOLUP%" ### Volume down by one step CMDVOLDOWN="%CMDVOLDOWN%" +### Switch between primary/secondary audio iFace +CMDSWITCHAUDIOIFACE="%CMDSWITCHAUDIOIFACE%" ### Stop player CMDSTOP="%CMDSTOP%" ### Mute player From 575133791f9e89aca89a922a68d37588fc9d9365 Mon Sep 17 00:00:00 2001 From: miohna <miohna@freenet.de> Date: Sat, 27 Feb 2021 20:57:00 +0100 Subject: [PATCH 091/206] Drops MPDStatusLED in favour of general StatusLED For backward compatibility `gpio_control.generate_device` accepts both `device_type` "StatusLED" as well as "MPDStatusLED". To be reduced to only "StatusLED" at some point. --- components/gpio_control/GPIODevices/led.py | 35 +++---------------- .../gpio_settings_status_led.ini | 2 +- components/gpio_control/gpio_control.py | 13 ++----- .../gpio_control/test/gpio_settings_test.ini | 4 +-- 4 files changed, 9 insertions(+), 45 deletions(-) diff --git a/components/gpio_control/GPIODevices/led.py b/components/gpio_control/GPIODevices/led.py index 0013676c3..aff6dbc45 100644 --- a/components/gpio_control/GPIODevices/led.py +++ b/components/gpio_control/GPIODevices/led.py @@ -2,7 +2,6 @@ import time from os import system -import mpd from RPi import GPIO GPIO.setmode(GPIO.BCM) @@ -30,37 +29,11 @@ def status(self): return GPIO.input(self.pin) -class MPDStatusLED(LED): - logger = logging.getLogger("MPDStatusLED") +class StatusLED(LED): + logger = logging.getLogger("StatusLED") - def __init__(self, pin, host='localhost', port=6600, name='MPDStatusLED'): - super(MPDStatusLED, self).__init__(pin, initial_value=False, name=name) - self.mpc = mpd.MPDClient() - self.host = host - self.port = port - self.logger.info('Waiting for MPD Connection on {}:{}'.format( - self.host, self.port)) - while not self.has_mpd_connection(): - self.logger.debug('No MPD Connection yet established') - time.sleep(1) - self.logger.info('Connection to MPD server on host {}:{} established'.format(self.host, self.port)) - self.on() - - def has_mpd_connection(self): - self.mpc.disconnect() - try: - self.mpc.connect(self.host, self.port) - self.mpc.ping() - self.mpc.disconnect() - return True - except ConnectionError: - return False - -class StartupScriptsStatusLED(LED): - logger = logging.getLogger("StartupScriptsStatusLED") - - def __init__(self, pin, name='StartupScriptsStatusLED'): - super(StartupScriptsStatusLED, self).__init__(pin, initial_value=False, name=name) + def __init__(self, pin, name='StatusLED'): + super(StatusLED, self).__init__(pin, initial_value=False, name=name) self.logger.info('Waiting for phoniebox-startup-scripts service to be active') systemctlCmd = 'systemctl is-active --quiet phoniebox-startup-scripts.service' while system(systemctlCmd) != 0: diff --git a/components/gpio_control/example_configs/gpio_settings_status_led.ini b/components/gpio_control/example_configs/gpio_settings_status_led.ini index da960aec0..00b9d1d7f 100644 --- a/components/gpio_control/example_configs/gpio_settings_status_led.ini +++ b/components/gpio_control/example_configs/gpio_settings_status_led.ini @@ -3,5 +3,5 @@ enabled: True [StatusLED] enable: True -Type: StartupScriptsStatusLED +Type: StatusLED Pin: 14 diff --git a/components/gpio_control/gpio_control.py b/components/gpio_control/gpio_control.py index 3e4fd7b1c..f5595d55f 100755 --- a/components/gpio_control/gpio_control.py +++ b/components/gpio_control/gpio_control.py @@ -8,7 +8,6 @@ from signal import pause from RPi import GPIO # from GPIODevices.VolumeControl import VolumeControl -# from GPIODevices.led import LED, MPDStatusLED class gpio_control(): @@ -61,16 +60,8 @@ def generate_device(self,config, deviceName): return LED(config.getint('Pin'), name=deviceName, initial_value=config.getboolean('initial_value', fallback=True)) - elif device_type == 'MPDStatusLED': - return MPDStatusLED(config.getint('Pin'), - host=config.get('host', fallback='localhost'), - port=config.getint('port', fallback=6600), - name=deviceName - ) - elif device_type == 'StartupScriptsStatusLED': - return StartupScriptsStatusLED(config.getint('Pin'), - name=deviceName - ) + elif device_type in ('StatusLED', 'MPDStatusLED'): + return StatusLED(config.getint('Pin'), name=deviceName) elif device_type == 'RotaryEncoder': return RotaryEncoder(config.getint('pinUp'), config.getint('pinDown'), diff --git a/components/gpio_control/test/gpio_settings_test.ini b/components/gpio_control/test/gpio_settings_test.ini index da5aeb98e..b305446fe 100644 --- a/components/gpio_control/test/gpio_settings_test.ini +++ b/components/gpio_control/test/gpio_settings_test.ini @@ -5,7 +5,7 @@ enabled: True ; RotaryEncoder ; TwoButtonControl ; SimpleButton = Button -; StartupScriptsStatusLED +; StatusLED [VolumeControl] enabled: True Type: RotaryEncoder @@ -85,5 +85,5 @@ pull_up: True [StatusLED] enable: True -Type: StartupScriptsStatusLED +Type: StatusLED Pin: 14 From b5f4b01cada17385a5f60365fd79872d02642e96 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Sat, 27 Feb 2021 23:39:25 +0100 Subject: [PATCH 092/206] Fix unit test and remove Python 3.5 check (#1319) * Update test_gpio_control.py * Update test_gpio_control.py * Remove Python 3.5 in Actions --- .github/workflows/pythonpackage.yml | 2 +- components/gpio_control/test/test_gpio_control.py | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index 5e3184d9b..7e7eddd9d 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -9,7 +9,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: [3.5, 3.6, 3.7] + python-version: [3.6, 3.7, 3.8] steps: - uses: actions/checkout@v1 diff --git a/components/gpio_control/test/test_gpio_control.py b/components/gpio_control/test/test_gpio_control.py index 87a7c8714..ff78ca85d 100644 --- a/components/gpio_control/test/test_gpio_control.py +++ b/components/gpio_control/test/test_gpio_control.py @@ -1,8 +1,9 @@ import configparser import logging -from mock import patch, MagicMock -from components.gpio_control.gpio_control import get_all_devices +from mock import patch, MagicMock +from gpio_control import gpio_control +import function_calls # def test_functionCallTwoButtonsOnlyBtn2Pressed(btn1Mock, btn2Mock, functionCall1Mock, functionCall2Mock, # functionCallBothPressedMock): @@ -29,6 +30,10 @@ def testMain(): config = configparser.ConfigParser() config.read('./gpio_settings_test.ini') - devices = get_all_devices(config) - print(devices) + + phoniebox_function_calls = function_calls.phoniebox_function_calls() + gpio_controler = gpio_control(phoniebox_function_calls) + + devices = gpio_controler.get_all_devices(config) + gpio_controler.print_all_devices() pass From 9119d3cea67ba1e85fef377bbc4fe1f659d723e6 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Sat, 27 Feb 2021 23:54:06 +0100 Subject: [PATCH 093/206] Remove stretch See #1163 --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5f5767a92..aa562fdfc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -130,7 +130,7 @@ The original contributor will be notified of the revert. be resolved within one business day. ## Guidelines ## -* Currently Phoniebox runs on Raspian **Buster** and **Stretch**. Therefore all Python code should work with **Python 3.5**. +* Currently Phoniebox runs on Raspian **Buster** . Therefore all Python code should work with **Python 3.7**. * For GPIO all code should work with **RPi.GPIO**. gpiozero is currently not intended to use. ## Additional Resources From 0c5842d0e1d485323d75f8cf4885050cdaeeaff3 Mon Sep 17 00:00:00 2001 From: miohna <50060359+miohna@users.noreply.github.com> Date: Mon, 1 Mar 2021 22:09:08 +0100 Subject: [PATCH 094/206] (bugfix) stop on removal, incorporate switch (#1324) The merge of #1122 missed @Toqqi comment https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/1122#issuecomment-740609470 which provided an update (https://github.com/Toqqi/RPi-Jukebox-RFID/commit/4e1a6fc22a5afc6d31d97b406546fe26cefa184b) that incorporates the global switch, merged with #1130. Now, "stop on removal" is an option and no must. --- scripts/daemon_rfid_reader.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/scripts/daemon_rfid_reader.py b/scripts/daemon_rfid_reader.py index 872f59986..cc643f26d 100755 --- a/scripts/daemon_rfid_reader.py +++ b/scripts/daemon_rfid_reader.py @@ -36,6 +36,10 @@ previous_id = "" previous_time = time.time() +# get swipe or place configuration value +sop = open('../settings/Swipe_or_Place', 'r') +swipe_or_place = sop.read().strip() + # create array for control card ids cards = [] @@ -75,8 +79,10 @@ def handler(signum, frame): while True: # slow down the card reading while loop time.sleep(0.2) - # enable the signal alarm (if no card is present for 1 second) - signal.alarm(1) + + if swipe_or_place == "PLACENOTSWIPE": + # enable the signal alarm (if no card is present for 1 second) + signal.alarm(1) # reading the card id # NOTE: it's been reported that KKMOON Reader might need the following line altered. From 9651a6002de269d95d0f70948ec28498c869c3e5 Mon Sep 17 00:00:00 2001 From: DCH <derchan@users.noreply.github.com> Date: Sun, 7 Mar 2021 21:22:00 +0100 Subject: [PATCH 095/206] Bugfix #1320 of arne123/RPi-Jukebox-RFID/tree/gpio-control_to_class (#1323) * Bugfix of arne123/RPi-Jukebox-RFID/tree/gpio-control_to_class This update form @arne123 fixes #1320 . There was still a Bug in the Import of the class function. and here is my commit. * Bugfix #1328 i2c_lcd.py Removed string function to remove newline. Type error because trake_time contains binary. Therefore using subprocess.check_output setting to remove newline with universal_newlines This fixes issue #1328 --- .../controls/buttons_usb_encoder/buttons_usb_encoder.py | 6 ++++-- .../buttons_usb_encoder/map_buttons_usb_encoder.py | 2 +- components/displays/HD44780-i2c/i2c_lcd.py | 9 ++++----- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/components/controls/buttons_usb_encoder/buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/buttons_usb_encoder.py index 7bf293919..69ebfbc38 100644 --- a/components/controls/buttons_usb_encoder/buttons_usb_encoder.py +++ b/components/controls/buttons_usb_encoder/buttons_usb_encoder.py @@ -6,13 +6,15 @@ import logging from evdev import categorize, ecodes, KeyEvent -import components.gpio_control.function_calls from io_buttons_usb_encoder import button_map, current_device +from components.gpio_control.function_calls import phoniebox_function_calls + logger = logging.getLogger(__name__) try: button_map = button_map() + function_calls = phoniebox_function_calls() for event in current_device().read_loop(): if event.type == ecodes.EV_KEY: keyevent = categorize(event) @@ -23,7 +25,7 @@ try: function_name = button_map[button_string] try: - getattr(components.gpio_control.function_calls, function_name)() + getattr(function_calls, function_name)() except: logger.warning( "Function " + function_name + " not found in function_calls.py (mapped from button: " + button_string + ")") diff --git a/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py index fa4a22a5f..5eeb3e2a0 100644 --- a/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py +++ b/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py @@ -11,7 +11,7 @@ try: functions = list( filter(lambda function_name: function_name.startswith("functionCall"), - dir(components.gpio_control.function_calls))) + dir(components.gpio_control.function_calls.phoniebox_function_calls))) button_map = {} print("") diff --git a/components/displays/HD44780-i2c/i2c_lcd.py b/components/displays/HD44780-i2c/i2c_lcd.py index 1adbcd866..9cdd0aeed 100755 --- a/components/displays/HD44780-i2c/i2c_lcd.py +++ b/components/displays/HD44780-i2c/i2c_lcd.py @@ -333,7 +333,7 @@ def sec_to_min_and_sec(seconds): album = album.replace("\n", "").replace("ä", "\341").replace("ö", "\357").replace("ü", "\365").replace("ß", "\342").replace("Ä", "\341").replace("Ö", "\357").replace("Ü", "\365") # weitere codes siehe https://www.mikrocontroller.net/topic/293125 # except KeyError: # album = "" # - ## read in artist info + ## read in artist info try: # artist = current_song_infos['artist'] # artist = artist.replace("\n", "").replace("ä", "\341").replace("ö", "\357").replace("ü", "\365").replace("ß", "\342").replace("Ä", "\341").replace("Ö", "\357").replace("Ü", "\365") # weitere codes siehe https://www.mikrocontroller.net/topic/293125 # @@ -342,7 +342,7 @@ def sec_to_min_and_sec(seconds): artist = current_song_infos['name'] # artist = artist.replace("\n", "").replace("ä", "\341").replace("ö", "\357").replace("ü", "\365").replace("ß", "\342").replace("Ä", "\341").replace("Ö", "\357").replace("Ü", "\365") # weitere codes siehe https://www.mikrocontroller.net/topic/293125 # except KeyError: # - artist = "" # + artist = "" # if (client.mpd_version) >= "0.20": try: # elapsed = status['elapsed'].split(".")[0] # @@ -351,8 +351,7 @@ def sec_to_min_and_sec(seconds): except KeyError: # track_time = "" # else: # - track_time = subprocess.check_output('mpc | head -n2 | tail -n1 | sed "s/ \+/ /g" | cut -d" " -f3', shell=True) - track_time = track_time.replace("\n", "") # + track_time = subprocess.check_output('mpc | head -n2 | tail -n1 | sed "s/ \+/ /g" | cut -d" " -f3', universal_newlines=True, shell=True) ########################################################################################### ############# RESET GLOBAL COUNTER, IF TITLE CHANGED ############################ @@ -410,7 +409,7 @@ def sec_to_min_and_sec(seconds): if i_counter >= 65000: # i_counter = 1000 # <-- not 0, cause the display could be off # ###################################################################################### - + ####################### REMIND STUFF FOR NEXT CYCLE ################################# last_state = state # last_title = title # From 8d49dfa1e2463b71bed97a47f6190e98fc0b4bf1 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Sun, 7 Mar 2021 22:03:40 +0100 Subject: [PATCH 096/206] fix flake8 warnings (#1332) --- .../bluetooth-sink-switch/bt-sink-switch.py | 22 ++++---- .../buttons_usb_encoder.py | 4 +- .../map_buttons_usb_encoder.py | 6 +-- .../gpio_control/GPIODevices/VolumeControl.py | 4 +- .../GPIODevices/shutdown_button.py | 2 +- .../GPIODevices/two_button_control.py | 12 ++--- components/gpio_control/function_calls.py | 52 +++++++------------ components/gpio_control/gpio_control.py | 21 ++++---- .../gpio_control/test/test_gpio_control.py | 6 +-- scripts/Reader.py.experimental | 47 +++++++++-------- 10 files changed, 81 insertions(+), 95 deletions(-) diff --git a/components/bluetooth-sink-switch/bt-sink-switch.py b/components/bluetooth-sink-switch/bt-sink-switch.py index a6d1ae49b..9672a5364 100755 --- a/components/bluetooth-sink-switch/bt-sink-switch.py +++ b/components/bluetooth-sink-switch/bt-sink-switch.py @@ -51,9 +51,9 @@ def bt_check_mpc_err() -> None: def bt_switch(cmd, led_pin=None): """ Set/Toggle between regular speakers and headphone output. If no bluetooth device is connected, always defaults to mpc output 1 - + To be precise: toggle between mpc output 1 and mpc output 2. - + So, set up your /etc/mpd.conf correctly: first audio_output section should be speakers, second audio_output section should be headphones To set up bluetooth headphones, follow the wiki Short guide to connect bluetooth (without audio setup) @@ -67,30 +67,30 @@ def bt_switch(cmd, led_pin=None): scan off exit Next time headphones are switched on, they should connect automatically - + Requires sudo apt install bluetooth - + Attention The user to runs this script (precisly who runs bluetoothctl) needs proper access rights. Otherwise bluetoothctl will always return "no default controller found" The superuser and users of group "bluetooth" have these. You can check the policy here /etc/dbus-1/system.d/bluetooth.conf - Best to check first if the user which later runs this script can execute bluetoothctl and get meaningful results + Best to check first if the user which later runs this script can execute bluetoothctl and get meaningful results sudo -u www-data bluetoothctl show E.g. if you want to do bluetooth manipulation from the web interface, you will most likely need to add www-data to the group bluetooth if you want to test this script from the command line, you will most likely need to add user pi (or whoever you are) to the group bluetooth or run it as superuser sudo usermod -G bluetooth -a www-data Don't forget to reboot for group changes to take effect here - + LED support If LED number (GPIO number, BCM) is provided, a LED is switched to reflect output sink status off = speakers, on = headphones LED blinks if no bluetooth device is connected and bluetooth sink is requested, before script default to output 1 - - A note for developers: This script is not persistent and only gets called (from various sources) when the output sink is changed/toggled and exits. + + A note for developers: This script is not persistent and only gets called (from various sources) when the output sink is changed/toggled and exits. This is done to make is callable from button press (gpio button handler), rfid card number, web interface The LED state however should be persistent. With GPIOZero, the LED state gets reset at the end of the script. For that reason GPIO state is manipulated through shell commands - + Parameters ---------- :param cmd: string is "toggle" | "speakers" | "headphones" @@ -144,7 +144,7 @@ def bt_switch(cmd, led_pin=None): # With mpc enable only 2, output 1 gets disabled before output 2 gets enabled causing a stream output fail # This order avoids the issue proc = subprocess.run("mpc enable 2; sleep 0.1; mpc disable 1", shell=True, check=False, - stdout=subprocess.PIPE, stderr=subprocess.STDOUT); + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) logger.debug(proc.stdout) # Yet, in some cases, a stream error still occurs: check and recover bt_check_mpc_err() @@ -166,7 +166,7 @@ def bt_switch(cmd, led_pin=None): print("Switched audio sink to \"Output 1\"") # mpc only 1 always enables 1 first, avoiding any intermediate state with no valid output stream proc = subprocess.run("mpc enable only 1", shell=True, check=False, stdout=subprocess.PIPE, - stderr=subprocess.STDOUT); + stderr=subprocess.STDOUT) logger.debug(proc.stdout) # Yet, in some cases, a stream error still occurs: check and recover bt_check_mpc_err() diff --git a/components/controls/buttons_usb_encoder/buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/buttons_usb_encoder.py index 69ebfbc38..621d849ec 100644 --- a/components/controls/buttons_usb_encoder/buttons_usb_encoder.py +++ b/components/controls/buttons_usb_encoder/buttons_usb_encoder.py @@ -1,14 +1,12 @@ #!/usr/bin/env python3 import sys - -sys.path.append(".") - import logging from evdev import categorize, ecodes, KeyEvent from io_buttons_usb_encoder import button_map, current_device from components.gpio_control.function_calls import phoniebox_function_calls +sys.path.append(".") logger = logging.getLogger(__name__) diff --git a/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py index 5eeb3e2a0..f06bc3ec9 100644 --- a/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py +++ b/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py @@ -1,13 +1,13 @@ #!/usr/bin/env python3 import sys - -sys.path.append(".") - from evdev import categorize, ecodes, KeyEvent from io_buttons_usb_encoder import current_device, write_button_map import components.gpio_control.function_calls +sys.path.append(".") + + try: functions = list( filter(lambda function_name: function_name.startswith("functionCall"), diff --git a/components/gpio_control/GPIODevices/VolumeControl.py b/components/gpio_control/GPIODevices/VolumeControl.py index 53f5be950..47997a2b4 100644 --- a/components/gpio_control/GPIODevices/VolumeControl.py +++ b/components/gpio_control/GPIODevices/VolumeControl.py @@ -1,9 +1,9 @@ from GPIODevices import TwoButtonControl, RotaryEncoder -#from gpio_control import logger, getFunctionCall +# from gpio_control import logger, getFunctionCall class VolumeControl: - def __new__(self, config,getFunctionCall,logger): + def __new__(self, config, getFunctionCall, logger): if config.get('Type') == 'TwoButtonControl': logger.info('VolumeControl as TwoButtonControl') return TwoButtonControl( diff --git a/components/gpio_control/GPIODevices/shutdown_button.py b/components/gpio_control/GPIODevices/shutdown_button.py index 40129f325..5d814b092 100644 --- a/components/gpio_control/GPIODevices/shutdown_button.py +++ b/components/gpio_control/GPIODevices/shutdown_button.py @@ -10,7 +10,7 @@ class ShutdownButton(SimpleButton): def __init__(self, pin, action=lambda *args: None, name=None, bouncetime=500, edge=GPIO.FALLING, - hold_time=.1, led_pin=None, time_pressed=2, hold_repeat=False, pull_up_down=GPIO.PUD_UP,iteration_time=.2): + hold_time=.1, led_pin=None, time_pressed=2, hold_repeat=False, pull_up_down=GPIO.PUD_UP, iteration_time=.2): self.led_pin = led_pin self.time_pressed = time_pressed self.iteration_time = iteration_time diff --git a/components/gpio_control/GPIODevices/two_button_control.py b/components/gpio_control/GPIODevices/two_button_control.py index ef861e275..4ea22061d 100644 --- a/components/gpio_control/GPIODevices/two_button_control.py +++ b/components/gpio_control/GPIODevices/two_button_control.py @@ -11,17 +11,17 @@ def functionCallTwoButtons(btn1, btn2, functionCall1, functionCall2, functionCallBothPressed=None): def functionCallTwoButtons(*args): - btn1_pin=btn1.pin - btn2_pin=btn2.pin - pressed_button=None - if len(args) > 0 and args[0] in (btn1_pin,btn2_pin): + btn1_pin = btn1.pin + btn2_pin = btn2.pin + pressed_button = None + if len(args) > 0 and args[0] in (btn1_pin, btn2_pin): logger.debug('Remove pin argument by TwoButtonCallbackFunctionHandler - args before: {}'.format(args)) - pressed_button=args[0] + pressed_button = args[0] args = args[1:] logger.debug('args after: {}'.format(args)) btn1_pressed = btn1.is_pressed btn2_pressed = btn2.is_pressed - logger.info('Btn1 {}, Btn2 {}-args:{}'.format(btn1_pressed,btn2_pressed,args)) + logger.info('Btn1 {}, Btn2 {}-args:{}'.format(btn1_pressed, btn2_pressed, args)) if btn1_pressed and btn2_pressed: logger.debug("Both buttons was pressed") if functionCallBothPressed is not None: diff --git a/components/gpio_control/function_calls.py b/components/gpio_control/function_calls.py index 7ca83e98e..e1f1eb2c8 100644 --- a/components/gpio_control/function_calls.py +++ b/components/gpio_control/function_calls.py @@ -4,6 +4,7 @@ import os import pathlib + class phoniebox_function_calls: def __init__(self): self.logger = logging.getLogger(__name__) @@ -12,11 +13,10 @@ def __init__(self): function_calls_absolute_path = str(pathlib.Path(__file__).parent.absolute()) self.playout_control = os.path.abspath(os.path.join(function_calls_absolute_path, playout_control_relative_path)) - def functionCallShutdown(self,*args): + def functionCallShutdown(self, *args): function_call("{command} -c=shutdown".format(command=self.playout_control), shell=True) - - def functionCallVolU(self,steps=None): + def functionCallVolU(self, steps=None): if steps is None: function_call("{command} -c=volumeup".format(command=self.playout_control), shell=True) else: @@ -24,8 +24,7 @@ def functionCallVolU(self,steps=None): command=self.playout_control), shell=True) - - def functionCallVolD(self,steps=None): + def functionCallVolD(self, steps=None): if steps is None: function_call("{command} -c=volumedown".format(command=self.playout_control), shell=True) else: @@ -33,62 +32,47 @@ def functionCallVolD(self,steps=None): command=self.playout_control), shell=True) - - def functionCallVol0(self,*args): + def functionCallVol0(self, *args): function_call("{command} -c=mute".format(command=self.playout_control), shell=True) - - def functionCallPlayerNext(self,*args): + def functionCallPlayerNext(self, *args): function_call("{command} -c=playernext".format(command=self.playout_control), shell=True) - - def functionCallPlayerPrev(self,*args): + def functionCallPlayerPrev(self, *args): function_call("{command} -c=playerprev".format(command=self.playout_control), shell=True) - - def functionCallPlayerPauseForce(self,*args): + def functionCallPlayerPauseForce(self, *args): function_call("{command} -c=playerpauseforce".format(command=self.playout_control), shell=True) - - def functionCallPlayerPause(self,*args): + def functionCallPlayerPause(self, *args): function_call("{command} -c=playerpause".format(command=self.playout_control), shell=True) - - def functionCallRecordStart(self,*args): + def functionCallRecordStart(self, *args): function_call("{command} -c=recordstart".format(command=self.playout_control), shell=True) - - def functionCallRecordStop(self,*args): + def functionCallRecordStop(self, *args): function_call("{command} -c=recordstop".format(command=self.playout_control), shell=True) - - def functionCallRecordPlayLatest(self,*args): + def functionCallRecordPlayLatest(self, *args): function_call("{command} -c=recordplaylatest".format(command=self.playout_control), shell=True) - - def functionCallToggleWifi(self,*args): + def functionCallToggleWifi(self, *args): function_call("{command} -c=togglewifi".format(command=self.playout_control), shell=True) - - def functionCallPlayerStop(self,*args): + def functionCallPlayerStop(self, *args): function_call("{command} -c=playerstop".format(command=self.playout_control), shell=True) - - def functionCallPlayerSeekFwd(self,*args): + def functionCallPlayerSeekFwd(self, *args): function_call("{command} -c=playerseek -v=+10".format(command=self.playout_control), shell=True) - - def functionCallPlayerSeekBack(self,*args): + def functionCallPlayerSeekBack(self, *args): function_call("{command} -c=playerseek -v=-10".format(command=self.playout_control), shell=True) - - def functionCallBluetoothToggle(self,*args): + def functionCallBluetoothToggle(self, *args): function_call("{command} -c=bluetoothtoggle -v=toggle".format(command=self.playout_control), shell=True) - - def getFunctionCall(self,functionName): + def getFunctionCall(self, functionName): self.logger.error('Get FunctionCall: {} {}'.format(functionName, functionName in locals())) getattr(sys.modules[__name__], str) return locals().get(functionName, None) - diff --git a/components/gpio_control/gpio_control.py b/components/gpio_control/gpio_control.py index e7a52383b..92d2f8b99 100755 --- a/components/gpio_control/gpio_control.py +++ b/components/gpio_control/gpio_control.py @@ -10,20 +10,21 @@ # from GPIODevices.VolumeControl import VolumeControl # from GPIODevices.led import LED, MPDStatusLED + class gpio_control(): - def __init__(self,function_calls): + def __init__(self, function_calls): self.devices = [] self.function_calls = function_calls - + GPIO.setmode(GPIO.BCM) - + logging.basicConfig(level=logging.INFO) self.logger = logging.getLogger(__name__) self.logger.setLevel('INFO') self.logger.info('GPIO Started') - def getFunctionCall(self,function_name): + def getFunctionCall(self, function_name): try: if function_name != 'None': return getattr(self.function_calls, function_name) @@ -31,11 +32,11 @@ def getFunctionCall(self,function_name): self.logger.error('Could not find FunctionCall {function_name}'.format(function_name=function_name)) return lambda *args: None - def generate_device(self,config, deviceName): + def generate_device(self, config, deviceName): print(deviceName) device_type = config.get('Type') if deviceName.lower() == 'VolumeControl'.lower(): - return VolumeControl(config,self.getFunctionCall,logger) + return VolumeControl(config, self.getFunctionCall, logger) elif device_type == 'TwoButtonControl': self.logger.info('adding TwoButtonControl') return TwoButtonControl( @@ -76,7 +77,7 @@ def generate_device(self,config, deviceName): name=deviceName) elif device_type == 'ShutdownButton': return ShutdownButton(pin=config.getint('Pin'), - action=self.getFunctionCall(config.get('functionCall',fallback='functionCallShutdown')), + action=self.getFunctionCall(config.get('functionCall', fallback='functionCallShutdown')), name=deviceName, bouncetime=config.getint('bouncetime', fallback=500), edge=config.get('edge', fallback='FALLING'), @@ -86,7 +87,7 @@ def generate_device(self,config, deviceName): self.logger.warning('cannot find {}'.format(deviceName)) return None - def get_all_devices(self,config): + def get_all_devices(self, config): self.logger.info(config.sections()) for section in config.sections(): if config.getboolean(section, 'enabled', fallback=False): @@ -99,7 +100,7 @@ def get_all_devices(self,config): else: self.logger.info('Device {} not enabled'.format(section)) return self.devices - + def print_all_devices(self): for dev in self.devices: print(dev) @@ -111,7 +112,7 @@ def gpio_loop(self): except KeyboardInterrupt: pass self.logger.info('Exiting GPIO Control') - + if __name__ == "__main__": config = configparser.ConfigParser(inline_comment_prefixes=";") diff --git a/components/gpio_control/test/test_gpio_control.py b/components/gpio_control/test/test_gpio_control.py index ff78ca85d..aca6e8b3a 100644 --- a/components/gpio_control/test/test_gpio_control.py +++ b/components/gpio_control/test/test_gpio_control.py @@ -1,8 +1,8 @@ import configparser import logging -from mock import patch, MagicMock -from gpio_control import gpio_control +from mock import patch, MagicMock +from gpio_control import gpio_control import function_calls # def test_functionCallTwoButtonsOnlyBtn2Pressed(btn1Mock, btn2Mock, functionCall1Mock, functionCall2Mock, @@ -30,7 +30,7 @@ def testMain(): config = configparser.ConfigParser() config.read('./gpio_settings_test.ini') - + phoniebox_function_calls = function_calls.phoniebox_function_calls() gpio_controler = gpio_control(phoniebox_function_calls) diff --git a/scripts/Reader.py.experimental b/scripts/Reader.py.experimental index c7ad12f61..57e187edd 100755 --- a/scripts/Reader.py.experimental +++ b/scripts/Reader.py.experimental @@ -15,6 +15,7 @@ from evdev import InputDevice, categorize, ecodes, list_devices logger = logging.getLogger(__name__) + def get_devices(): devices = [InputDevice(fn) for fn in list_devices()] devices.append(NonUsbDevice('MFRC522')) @@ -73,8 +74,9 @@ class Mfrc522Reader(object): def cleanup(): GPIO.cleanup() + class Rdm6300Reader: - def __init__(self,param = None): + def __init__(self, param=None): import serial device = '/dev/ttyS0' baudrate = 9600 @@ -86,18 +88,18 @@ class Rdm6300Reader: except serial.SerialException as e: logger.error(e) exit(1) - + self.number_format = '' if param is not None: nf = param.get("numberformat") if nf is not None: self.number_format = nf - - def convert_to_weigand26_when_checksum_ok(self,raw_card_id): + + def convert_to_weigand26_when_checksum_ok(self, raw_card_id): weigand26 = [] xor = 0 - for i in range(0, len(raw_card_id)>>1): - val = int(raw_card_id[i*2:i*2+2],16) + for i in range(0, len(raw_card_id) >> 1): + val = int(raw_card_id[i * 2:i * 2 + 2], 16) if (i < 5): xor = xor ^ val weigand26.append(val) @@ -122,7 +124,7 @@ class Rdm6300Reader: if read_byte == b'\x02': wait_for_start_byte = False else: - if read_byte != b'\x03': #could get stuck here, check len? check timeout by len == 0?? + if read_byte != b'\x03': # could get stuck here, check len? check timeout by len == 0?? byte_card_id.extend(read_byte) else: break @@ -131,24 +133,24 @@ class Rdm6300Reader: byte_card_id.clear() self.rfid_serial.reset_input_buffer() - if len(raw_card_id) == 12 : + if len(raw_card_id) == 12: w26 = self.convert_to_weigand26_when_checksum_ok(raw_card_id) if (w26 is not None): - #print ("factory code is ignored" ,w26[0]) - - if self.number_format == 'card_id_dec': - #this will return a 10 Digit card ID e.g. 0006762840 - card_id = '{0:010d}'.format( (w26[1] << 24) + (w26[2] << 16) + (w26[3] << 8) + w26[4]) - elif self.number_format == 'card_id_float': - #this will return card ID as fraction e.g. 103,12632 - card_id='{0:d},{1:05d}'.format( ((w26[1] << 8) + w26[2]) , ((w26[3] << 8) + w26[4])) + # print ("factory code is ignored" ,w26[0]) + + if self.number_format == 'card_id_dec': + # this will return a 10 Digit card ID e.g. 0006762840 + card_id = '{0:010d}'.format((w26[1] << 24) + (w26[2] << 16) + (w26[3] << 8) + w26[4]) + elif self.number_format == 'card_id_float': + # this will return card ID as fraction e.g. 103,12632 + card_id = '{0:d},{1:05d}'.format(((w26[1] << 8) + w26[2]), ((w26[3] << 8) + w26[4])) else: - #this will return the raw (original) card ID e.g. 070067315809 + # this will return the raw (original) card ID e.g. 070067315809 card_id = raw_card_id - - if card_id != self.last_card_id: #does this still makes sense here? - self.last_card_id = card_id #Means 2nd swipe will not be possible with RDM6300 - return self.last_card_id #intentionaly? Good reason for this? + + if card_id != self.last_card_id: # does this still makes sense here? + self.last_card_id = card_id # Means 2nd swipe will not be possible with RDM6300 + return self.last_card_id # intentionaly? Good reason for this? except ValueError as ve: logger.error(ve) @@ -177,6 +179,7 @@ class Pn532Reader: # Not sure if something needs to be done here. logger.debug("PN532Reader clean up.") + class Reader(object): def __init__(self): path = os.path.dirname(os.path.realpath(__file__)) @@ -190,7 +193,7 @@ class Reader(object): self.reader = Mfrc522Reader() elif device_name == 'RDM6300': # The Rdm6300Reader supports 2 Additional Number Formats which can bee choosen by an optional parameter dictionary: - # {'numberformat':'card_id_float'} or {'numberformat':'card_id_dec'} + # {'numberformat':'card_id_float'} or {'numberformat':'card_id_dec'} self.reader = Rdm6300Reader() elif device_name == 'PN532': self.reader = Pn532Reader() From ca68a8e87957875a3b35237a3567abaebc2ddcfb Mon Sep 17 00:00:00 2001 From: Chris <75833833+ChisSoc@users.noreply.github.com> Date: Mon, 15 Mar 2021 00:31:25 +0100 Subject: [PATCH 097/206] Align folder naming scheme (#1340) --- components/bluetooth-sink-switch/README.md | 2 +- .../buttons-bluetooth-headphone}/README.md | 0 .../bt-buttons-register-device.py | 0 .../buttons-bluetooth-headphone}/bt-buttons.py | 0 .../buttons-bluetooth-headphone}/install-bt-buttons.sh | 0 misc/sampleconfigs/phoniebox-bt-buttons.service.sample | 4 ++-- 6 files changed, 3 insertions(+), 3 deletions(-) rename components/{control/bluetooth-buttons => controls/buttons-bluetooth-headphone}/README.md (100%) rename components/{control/bluetooth-buttons => controls/buttons-bluetooth-headphone}/bt-buttons-register-device.py (100%) rename components/{control/bluetooth-buttons => controls/buttons-bluetooth-headphone}/bt-buttons.py (100%) rename components/{control/bluetooth-buttons => controls/buttons-bluetooth-headphone}/install-bt-buttons.sh (100%) diff --git a/components/bluetooth-sink-switch/README.md b/components/bluetooth-sink-switch/README.md index 31f0fb81a..98a7ffa17 100644 --- a/components/bluetooth-sink-switch/README.md +++ b/components/bluetooth-sink-switch/README.md @@ -8,7 +8,7 @@ This component provides a mechanism to toggle between both audio sinks through a When a user powers on their Bluetooth headphones, they connect automatically to the Phoniebox. At the switch of the button (or card swipe, etc) the (already running) audio playback is transferred from the speakers to the headphones. This happens almost seamlessly. Parents feel an instant wave of relief at not having to listen to the 500th iteration of this month favourite song. The small user feels instantly proud at having working headphones much like the mom/dad always uses while doing home-office online meetings. If no Bluetooth headphones are connected, the audio sink toggle request defaults to speakers. An LED indicates the currently active audio sink. -If the feature [bluetooth-buttons](../control/bluetooth-buttons) is enabled the audio stream is automatically switched over to bluetooth on connect and back to speakers on disconnect. +If the feature [bluetooth-buttons](../controls/buttons-bluetooth-headphone) is enabled the audio stream is automatically switched over to bluetooth on connect and back to speakers on disconnect. If no bluetooth device is connected, the output defaults back to speakers. After boot-up the output is always speakers to make sure start-up sound are audiable and to avoid confusion. diff --git a/components/control/bluetooth-buttons/README.md b/components/controls/buttons-bluetooth-headphone/README.md similarity index 100% rename from components/control/bluetooth-buttons/README.md rename to components/controls/buttons-bluetooth-headphone/README.md diff --git a/components/control/bluetooth-buttons/bt-buttons-register-device.py b/components/controls/buttons-bluetooth-headphone/bt-buttons-register-device.py similarity index 100% rename from components/control/bluetooth-buttons/bt-buttons-register-device.py rename to components/controls/buttons-bluetooth-headphone/bt-buttons-register-device.py diff --git a/components/control/bluetooth-buttons/bt-buttons.py b/components/controls/buttons-bluetooth-headphone/bt-buttons.py similarity index 100% rename from components/control/bluetooth-buttons/bt-buttons.py rename to components/controls/buttons-bluetooth-headphone/bt-buttons.py diff --git a/components/control/bluetooth-buttons/install-bt-buttons.sh b/components/controls/buttons-bluetooth-headphone/install-bt-buttons.sh similarity index 100% rename from components/control/bluetooth-buttons/install-bt-buttons.sh rename to components/controls/buttons-bluetooth-headphone/install-bt-buttons.sh diff --git a/misc/sampleconfigs/phoniebox-bt-buttons.service.sample b/misc/sampleconfigs/phoniebox-bt-buttons.service.sample index f8c5116f0..3c8c9231d 100644 --- a/misc/sampleconfigs/phoniebox-bt-buttons.service.sample +++ b/misc/sampleconfigs/phoniebox-bt-buttons.service.sample @@ -6,8 +6,8 @@ After=mpd.service User=pi Group=pi Restart=always -WorkingDirectory=/home/pi/RPi-Jukebox-RFID/components/control/bluetooth-buttons -ExecStart=/home/pi/RPi-Jukebox-RFID/components/control/bluetooth-buttons/bt-buttons.py +WorkingDirectory=/home/pi/RPi-Jukebox-RFID/components/controls/buttons-bluetooth-headphone +ExecStart=/home/pi/RPi-Jukebox-RFID/components/controls/buttons-bluetooth-headphone/bt-buttons.py [Install] WantedBy=multi-user.target From ab755517c4b26df20e4f2ba5089f1c56046b93c2 Mon Sep 17 00:00:00 2001 From: Chris <75833833+ChisSoc@users.noreply.github.com> Date: Wed, 17 Mar 2021 23:29:35 +0100 Subject: [PATCH 098/206] Use gpio_settings.ini for LED configuration (#1342) --- components/bluetooth-sink-switch/README.md | 15 ++--- .../bluetooth-sink-switch/bt-sink-switch.py | 55 +++++++++++++++++-- .../install-bt-sink-switch.sh | 2 +- 3 files changed, 58 insertions(+), 14 deletions(-) diff --git a/components/bluetooth-sink-switch/README.md b/components/bluetooth-sink-switch/README.md index 98a7ffa17..532f40565 100644 --- a/components/bluetooth-sink-switch/README.md +++ b/components/bluetooth-sink-switch/README.md @@ -110,18 +110,19 @@ $ ./install-bt-sink-switch.sh **Status LED** -An optional status LED will be turned on if the audio sink is set to bluetooth. If a toggle command is issued, but no bluetooth device is connected, the LED will blink three times. Looks very neat, if you have a button with integrated LED. +An optional status LED will be turned on if the audio sink is set to bluetooth. If a toggle command is issued, but no bluetooth device is connected, the LED will blink three times. Looks very neat, if you have a button with integrated LED. Add these lines to your `RPi-Jukebox-RFID/settings/gpio_settings.ini`, to use GPIO 13 as LED signal. It is `led_pin` the BCM number of the GPIO pin (i.e. 'led_pin = 13' means GPIO13) and defaults to None. Create the file, if it does not exist. -Open `bt-sink-switch.py` and edit the following lines. (Default is `led_pin=None`) -~~~python -# Uses BCM GPIO numbering, i.e. 'led_pin = 6' means GPIO6 -# Set 'led_pin=None' to disable LED support (and no GPIO pin is blocked in this case) -led_pin = 6 +**Important note**: Correct capitalization of [BluetoothToggleLed] is important! + +~~~ +[BluetoothToggleLed] +enabled: True +led_pin: 13 ~~~ **GPIO control** -If you want to toggle from a GPIO button (e.g. on GPIO5), add these lines to your `gpio_settings.ini` +If you want to toggle from a GPIO button (e.g. on GPIO5), add these lines to your `RPi-Jukebox-RFID/settings/gpio_settings.ini`. Create it, if it does not exist. ~~~ [BluetoothToggle] diff --git a/components/bluetooth-sink-switch/bt-sink-switch.py b/components/bluetooth-sink-switch/bt-sink-switch.py index 9672a5364..89e58a4a9 100755 --- a/components/bluetooth-sink-switch/bt-sink-switch.py +++ b/components/bluetooth-sink-switch/bt-sink-switch.py @@ -2,7 +2,8 @@ """ Provides bt_switch (see below) as function and callable script -If called as script, configure led_pin according to your set-up +If called as script, the configuration of led_pin reflecting audio sink status is read from ../../settings/gpio_settings.ini' +See function get_led_pin_configuration for details. If no configuration file is found led_pin is None Usage: $ bt-sink-switch cmd [debug] @@ -14,11 +15,9 @@ import re import subprocess import logging +import os +import configparser -# If called as script, this variable will set GPIO number of the LED to reflect sink status -# Uses BCM GPIO numbering, i.e. 'led_pin = 6' means GPIO6 -# Set 'led_pin=None' to disable LED support (and no GPIO pin is blocked in this case) -led_pin = None # Create logger logger = logging.getLogger('bt-sink-switch.py') @@ -176,11 +175,55 @@ def bt_switch(cmd, led_pin=None): logger.debug(b'LED off: ' + proc.stdout) +def get_led_pin_config(cfg_file): + """Read the led pin for reflecting current sink status from cfg_file which is a Python configparser file + + cfg_file is relative to this script's location or an absolute path + + The file must contain the entry + + [BluetoothToggleLed] + enabled = True + led_pin = 6 + + where + - led_pin is the BCM number of the GPIO pin (i.e. 'led_pin = 6' means GPIO6) and defaults to None + - enabled can be used to temporarily disable the LED + + Note: Capitalization of [BluetoothToggleLed] is important!""" + + # Make sure to locate cfg_file relative to this script's location independent of working directory + if not os.path.isabs(cfg_file): + cfg_file = os.path.dirname(os.path.realpath(__file__)) + '/' + cfg_file + logger.debug(f"Reading config file: '{cfg_file}'") + cfg = configparser.ConfigParser() + cfg_file_success = cfg.read(cfg_file) + if not cfg_file_success: + logger.debug(f"Could not read '{cfg_file}'. Continue with default values (i.e. led off).") + + section_name = 'BluetoothToggleLed' + led_pin = None + if section_name in cfg: + if cfg[section_name].getboolean('enabled', fallback=False): + led_pin = cfg[section_name].getint('led_pin', fallback=None) + if not led_pin: + logger.warning(f"Could not find 'led_pin' or could not read integer value") + elif not 1 <= led_pin <= 27: + logger.warning(f"Ignoring out of range pin number: {led_pin}.") + led_pin = None + else: + logger.debug(f"No section {section_name} found. Defaulting to led_pin = None") + + logger.debug(f"Using LED pin = {led_pin}") + return led_pin + + if __name__ == "__main__": if len(sys.argv) == 3: logconsole.setLevel(logging.DEBUG) if 2 <= len(sys.argv) <= 3: - bt_switch(sys.argv[1], led_pin) + cfg_led_pin = get_led_pin_config('../../settings/gpio_settings.ini') + bt_switch(sys.argv[1], cfg_led_pin) else: bt_usage(sys.argv[0]) diff --git a/components/bluetooth-sink-switch/install-bt-sink-switch.sh b/components/bluetooth-sink-switch/install-bt-sink-switch.sh index e18f3b67c..f09df2263 100755 --- a/components/bluetooth-sink-switch/install-bt-sink-switch.sh +++ b/components/bluetooth-sink-switch/install-bt-sink-switch.sh @@ -49,4 +49,4 @@ chmod ugo+rw ${CONFFILE} sudo systemctl restart lighttpd.service # Final notes -echo -e "\n\n\nIMPORTANT NOTE:\nPlease modify ${FILE} around line 20 for\n led_pin=None\nto configure LED pin-out.\n Do nothing to leave it disabled." +echo -e "\n\n\nFINAL NOTE:\nPlease check README.md for configuration of optional LED and GPIO toggle button." From e7da4b0f3fb44b58f4131bada15981533d452606 Mon Sep 17 00:00:00 2001 From: jeripeierSBB <jeremias.peier@sbb.ch> Date: Mon, 22 Mar 2021 22:02:22 +0100 Subject: [PATCH 099/206] fix: move path append command back up (#1346) Script can only be executed if sys.path.append(".") is executed before imports. This bug (https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/1249#issuecomment-803221057) was introduced with change #1332. --- .github/CODEOWNERS | 3 +++ .../controls/buttons_usb_encoder/buttons_usb_encoder.py | 4 +++- .../controls/buttons_usb_encoder/map_buttons_usb_encoder.py | 6 +++--- 3 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 000000000..0c8ea40c2 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,3 @@ +/components/controls/buttons_usb_encoder/ @jeripeierSBB +/scripts/installscripts/buster-install-default.sh @jeripeierSBB +/scripts/installscripts/buster-install-default-with-autohotspot.sh @jeripeierSBB diff --git a/components/controls/buttons_usb_encoder/buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/buttons_usb_encoder.py index 621d849ec..3935395e8 100644 --- a/components/controls/buttons_usb_encoder/buttons_usb_encoder.py +++ b/components/controls/buttons_usb_encoder/buttons_usb_encoder.py @@ -1,12 +1,14 @@ #!/usr/bin/env python3 import sys + +sys.path.append(".") # This command should be before imports of components + import logging from evdev import categorize, ecodes, KeyEvent from io_buttons_usb_encoder import button_map, current_device from components.gpio_control.function_calls import phoniebox_function_calls -sys.path.append(".") logger = logging.getLogger(__name__) diff --git a/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py index f06bc3ec9..5dafca7eb 100644 --- a/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py +++ b/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py @@ -1,13 +1,13 @@ #!/usr/bin/env python3 import sys + +sys.path.append(".") # This command should be before imports of components + from evdev import categorize, ecodes, KeyEvent from io_buttons_usb_encoder import current_device, write_button_map import components.gpio_control.function_calls -sys.path.append(".") - - try: functions = list( filter(lambda function_name: function_name.startswith("functionCall"), From 50abcaf146dd4e308d0e11bec59df379bd3cc057 Mon Sep 17 00:00:00 2001 From: Chris <75833833+ChisSoc@users.noreply.github.com> Date: Mon, 22 Mar 2021 22:11:07 +0100 Subject: [PATCH 100/206] Fix for Issue 1347: fix regexp (#1354) --- components/bluetooth-sink-switch/bt-sink-switch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/bluetooth-sink-switch/bt-sink-switch.py b/components/bluetooth-sink-switch/bt-sink-switch.py index 89e58a4a9..a107703a7 100755 --- a/components/bluetooth-sink-switch/bt-sink-switch.py +++ b/components/bluetooth-sink-switch/bt-sink-switch.py @@ -125,7 +125,7 @@ def bt_switch(cmd, led_pin=None): isSpeakerOn_console = subprocess.run("mpc outputs", shell=True, check=False, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) logger.debug(isSpeakerOn_console.stdout) - isSpeakerOn = re.search(b"1.*enabled", isSpeakerOn_console.stdout) + isSpeakerOn = re.search(b"^Output 1.*enabled", isSpeakerOn_console.stdout) # Figure out if a bluetooth device is connected (any device will do). Assume here that only speakers/headsets will be connected # -> No need for user to adapt MAC address From ebf8aa5790ebea406827125881827aa11ec186f7 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Mon, 22 Mar 2021 22:21:30 +0100 Subject: [PATCH 101/206] Update README.md --- components/gpio_control/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/components/gpio_control/README.md b/components/gpio_control/README.md index 195447e63..6f8e91cbe 100644 --- a/components/gpio_control/README.md +++ b/components/gpio_control/README.md @@ -25,5 +25,7 @@ Up to now the following input devices are implemented: * **TwoButtonControl**: This Device uses two Buttons and implements a third action if both buttons are pressed together. + +Each section needs to be activat by setting `enabled: True`. Many example files are located in `~/RPi-Jukebox-RFID/components/gpio_control/example_configs/`. From 9ad3fafa968dbba3a13a6932e11b58626f7c7854 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Mon, 22 Mar 2021 22:21:53 +0100 Subject: [PATCH 102/206] Update README.md --- components/gpio_control/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/gpio_control/README.md b/components/gpio_control/README.md index 6f8e91cbe..58751ec36 100644 --- a/components/gpio_control/README.md +++ b/components/gpio_control/README.md @@ -26,6 +26,6 @@ Up to now the following input devices are implemented: * **TwoButtonControl**: This Device uses two Buttons and implements a third action if both buttons are pressed together. -Each section needs to be activat by setting `enabled: True`. +Each section needs to be activated by setting `enabled: True`. Many example files are located in `~/RPi-Jukebox-RFID/components/gpio_control/example_configs/`. From b242c8de5065b98c4731a240bf9075fb7ee997b3 Mon Sep 17 00:00:00 2001 From: Varac <varac@users.noreply.github.com> Date: Tue, 23 Mar 2021 21:30:16 +0100 Subject: [PATCH 103/206] Ignore settings/PhonieboxInstall.conf (#1360) --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 61fd2b9b6..04d9c5d32 100755 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,7 @@ settings/version htdocs/config.php scripts/deviceName.txt scripts/gpio-buttons.py +settings/PhonieboxInstall.conf shared/* playlists/* From d850d0052885a6d2e37846a0a9b6dd176d56de20 Mon Sep 17 00:00:00 2001 From: "debianguru@gmx.de" <debianguru@gmx.de> Date: Wed, 24 Mar 2021 22:21:18 +0100 Subject: [PATCH 104/206] organizeFiles: I added a small script for conveniently organizing audio folders, linking them to RFID cards, finding audio folders that are currently not bound to any RFID card, and fixing broken links. --- scripts/organizeFiles.py | 142 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100755 scripts/organizeFiles.py diff --git a/scripts/organizeFiles.py b/scripts/organizeFiles.py new file mode 100755 index 000000000..4c9e6a24d --- /dev/null +++ b/scripts/organizeFiles.py @@ -0,0 +1,142 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + + +import sys +import os + + +musicConf = """CURRENTFILENAME="filename" +ELAPSED="0" +PLAYSTATUS="Stopped" +RESUME="OFF" +SHUFFLE="OFF" +LOOP="OFF" +SINGLE="OFF" +""" + +audiobookConf = """CURRENTFILENAME="filename" +ELAPSED="0" +PLAYSTATUS="Stopped" +RESUME="ON" +SHUFFLE="OFF" +LOOP="OFF" +SINGLE="OFF" +""" + + +def readShortcuts(shortcutsDir): + result = {} + for f in os.listdir(shortcutsDir): + absf = os.path.join(shortcutsDir, f) + if os.path.isfile(absf): + val = [] + with open(absf, "r") as fobj: + for line in fobj: + if len(line.strip()) != 0: + val.append(line.rstrip()) + result[f] = val + return result + + +def readFolders(audioDir, relpath=None, isFirst=True): + result = {} + relpath = "" if relpath is None else relpath + hasAudioFiles = False + for f in os.listdir(audioDir): + absf = os.path.join(audioDir, f) + if os.path.isfile(absf): + if not isFirst: + hasAudioFiles = True + elif os.path.isdir(absf): + childResult = readFolders(audioDir=absf, relpath=os.path.join(relpath, f), isFirst=False) + for k, v in childResult.items(): + assert(k not in result) + result[k] = v + if hasAudioFiles: + result[relpath] = os.path.exists(os.path.join(audioDir, "folder.conf")) + return result + + +def _deleteBrokenSymlink(shortcutsDir, cardid, d): + i = input("\ndelete broken symlink [" + cardid + " --> " + str(d) + "]? [y/N]") + if i == "y": + print("deleting symlink.") + os.remove(os.path.join(shortcutsDir, cardid)) + else: + print("keeping broken symlink.") + + +def fixBrokenShortcuts(shortcutsDir, shortcuts, audioFolders): + for cardid, dirs in shortcuts.items(): + if len(dirs) == 0 and cardid != "placeholder": + _deleteBrokenSymlink(shortcutsDir=shortcutsDir, cardid=cardid, d=None) + for d in dirs: + if d not in audioFolders and d != cardid: + _deleteBrokenSymlink(shortcutsDir=shortcutsDir, cardid=cardid, d=d) + +def _writeFolderConf(audioDir, d, content): + with open(os.path.join(audioDir, d, "folder.conf"), "w") as f: + f.write(content) + + +def _askFolderType(audioDir, d): + i = input("\ntype of " + d + " ? [m]usic/[a]udiobook/[I]gnore: ") + if i == "m": + _writeFolderConf(audioDir=audioDir, d=d, content=musicConf) + elif i == "a": + _writeFolderConf(audioDir=audioDir, d=d, content=audiobookConf) + else: + print("ignoring folder.") + + +def linkLooseFolders(shortcutsDir, audioDir, shortcuts, audioFolders): + allShortcutsDirs = [] + print("\n\n=== linking loose folders") + for cardid, dirs in shortcuts.items(): + allShortcutsDirs.extend(dirs) + for d, hasFolderConf in audioFolders.items(): + if d not in allShortcutsDirs: + cardid = input("\ncardid for [" + d + "]: ") + if len(cardid) == 0: + print("ok, ignoring this folder.") + else: + doit = True + if cardid in shortcuts: + doit = False + yn = input("WARNING: cardid already assigned to " + str(shortcuts[cardid]) + ". Override? [y/N] ") + if yn == "y": + doit = True + + if doit: + if not hasFolderConf: + _askFolderType(audioDir=audioDir, d=d) + with open(os.path.join(shortcutsDir, cardid), "w") as f: + f.write(d) + else: + print("skipping.") + print("done.") + + +def fixFoldersWithoutFolderConf(audioDir, audioFolders): + print("\n\n=== Fixing folders with missing folder.conf ...") + for d, hasFolderConf in audioFolders.items(): + if not hasFolderConf: + _askFolderType(audioDir=audioDir, d=d) + print("=== done.") + + +if __name__ == "__main__": + baseDir = "/home/pi/RPi-Jukebox-RFID/shared" + shortcutsDir = os.path.join(baseDir, "shortcuts") + audioDir = os.path.join(baseDir, "audiofolders") + + shortcuts = readShortcuts(shortcutsDir=shortcutsDir) + audioFolders = readFolders(audioDir=audioDir) + + linkLooseFolders(shortcutsDir=shortcutsDir, audioDir=audioDir, shortcuts=shortcuts, audioFolders=audioFolders) + fixBrokenShortcuts(shortcutsDir=shortcutsDir, shortcuts=shortcuts, audioFolders=audioFolders) + + audioFolders2 = readFolders(audioDir=audioDir) + fixFoldersWithoutFolderConf(audioDir=audioDir, audioFolders=audioFolders2) + From 44e11a800914d72c6ada565526e5d37320bb7192 Mon Sep 17 00:00:00 2001 From: "debianguru@gmx.de" <debianguru@gmx.de> Date: Fri, 26 Mar 2021 17:07:46 +0100 Subject: [PATCH 105/206] organizeFiles script: advanced features regarding linking folders to RFID cards --- scripts/organizeFiles.py | 103 ++++++++++++++++++++++++++++++--------- 1 file changed, 80 insertions(+), 23 deletions(-) diff --git a/scripts/organizeFiles.py b/scripts/organizeFiles.py index 4c9e6a24d..b904cd6e2 100755 --- a/scripts/organizeFiles.py +++ b/scripts/organizeFiles.py @@ -90,31 +90,60 @@ def _askFolderType(audioDir, d): print("ignoring folder.") -def linkLooseFolders(shortcutsDir, audioDir, shortcuts, audioFolders): +def linkLooseFolders(shortcutsDir, audioDir, shortcuts, audioFolders, latestRFIDFile): allShortcutsDirs = [] + looseFolders = {} + print("\n\n=== linking loose folders") for cardid, dirs in shortcuts.items(): allShortcutsDirs.extend(dirs) - for d, hasFolderConf in audioFolders.items(): - if d not in allShortcutsDirs: - cardid = input("\ncardid for [" + d + "]: ") + lc2 = 0 + for d2, hasFolderConf2 in sorted(audioFolders.items()): + if d2 not in allShortcutsDirs: + looseFolders[lc2] = d2 + lc2 = lc2 + 1 + + while len(looseFolders) != 0: + print("\n== loose folders:") + for lc, d in looseFolders.items(): + print(str(lc) + ": " + d) + selectedOption = input("\nplease select folder: ") + if len(selectedOption.strip()) == 0: + print("cancel.") + break + if not selectedOption.isnumeric(): + print("invalid input.") + continue + selectedOptionInt = int(selectedOption) + if selectedOptionInt < 0 or selectedOptionInt not in looseFolders: + print("invalid input.") + continue + + with open(latestRFIDFile, "r") as rf: + latestRFID = rf.read().strip() + + d = looseFolders[selectedOptionInt] + cardid = input("\ncardid for \"" + d + "\" [" + latestRFID + "] (enter \"c\" to cancel): ") + if cardid == "c": + print("ok, ignoring this folder.") + else: if len(cardid) == 0: - print("ok, ignoring this folder.") + cardid = latestRFID + doit = True + if cardid in shortcuts: + doit = False + yn = input("WARNING: cardid already assigned to " + str(shortcuts[cardid]) + ". Override? [y/N] ") + if yn == "y": + doit = True + + if doit: + if not audioFolders[d]: + _askFolderType(audioDir=audioDir, d=d) + with open(os.path.join(shortcutsDir, cardid), "w") as f: + f.write(d) + looseFolders.pop(selectedOptionInt, None) else: - doit = True - if cardid in shortcuts: - doit = False - yn = input("WARNING: cardid already assigned to " + str(shortcuts[cardid]) + ". Override? [y/N] ") - if yn == "y": - doit = True - - if doit: - if not hasFolderConf: - _askFolderType(audioDir=audioDir, d=d) - with open(os.path.join(shortcutsDir, cardid), "w") as f: - f.write(d) - else: - print("skipping.") + print("skipping.") print("done.") @@ -126,17 +155,45 @@ def fixFoldersWithoutFolderConf(audioDir, audioFolders): print("=== done.") +def findDuplicateShortcuts(shortcuts): + print("\n\n=== Checking folders with multiple shortcuts ...") + linkedFolders = {} + for cardid, dirs in shortcuts.items(): + for d in dirs: + if d not in linkedFolders: + linkedFolders[d] = [] + linkedFolders[d].append(cardid) + for d, cardids in linkedFolders.items(): + if len(cardids) > 1: + print("WARNING: multiple shortcuts for folder [" + d + "]: " + str(cardids)) + print("=== done.") + + if __name__ == "__main__": - baseDir = "/home/pi/RPi-Jukebox-RFID/shared" - shortcutsDir = os.path.join(baseDir, "shortcuts") - audioDir = os.path.join(baseDir, "audiofolders") + baseDir = "/home/pi/RPi-Jukebox-RFID" + latestRFIDFile = os.path.join(baseDir, "settings", "Latest_RFID") + shortcutsDir = os.path.join(baseDir, "shared", "shortcuts") + audioDir = os.path.join(baseDir, "shared", "audiofolders") shortcuts = readShortcuts(shortcutsDir=shortcutsDir) audioFolders = readFolders(audioDir=audioDir) - linkLooseFolders(shortcutsDir=shortcutsDir, audioDir=audioDir, shortcuts=shortcuts, audioFolders=audioFolders) + print("===== shortcuts =====") + shortcutslist = [] + for cardid, thefolders in sorted(shortcuts.items()): + for f in thefolders: + shortcutslist.append([cardid, f]) + for e in sorted(shortcutslist, key=lambda x: x[1]): + print("\"" + e[1] + "\";\t\"" + e[0] + "\"") + print("==================================") + + linkLooseFolders(shortcutsDir=shortcutsDir, audioDir=audioDir, shortcuts=shortcuts, audioFolders=audioFolders, latestRFIDFile=latestRFIDFile) fixBrokenShortcuts(shortcutsDir=shortcutsDir, shortcuts=shortcuts, audioFolders=audioFolders) + shortcuts2 = readShortcuts(shortcutsDir=shortcutsDir) + findDuplicateShortcuts(shortcuts) + audioFolders2 = readFolders(audioDir=audioDir) fixFoldersWithoutFolderConf(audioDir=audioDir, audioFolders=audioFolders2) + From 2ffef3ce8f6dd990516c98772935a5ae0227d381 Mon Sep 17 00:00:00 2001 From: "debianguru@gmx.de" <debianguru@gmx.de> Date: Sat, 27 Mar 2021 20:15:43 +0100 Subject: [PATCH 106/206] cli-player.py: script to play audio folders from command line --- scripts/cli-player.py | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100755 scripts/cli-player.py diff --git a/scripts/cli-player.py b/scripts/cli-player.py new file mode 100755 index 000000000..98ee66d01 --- /dev/null +++ b/scripts/cli-player.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + + +import os +import subprocess +from organizeFiles import readFolders + + +if __name__ == "__main__": + baseDir = "/home/pi/RPi-Jukebox-RFID" + shortcutsDir = os.path.join(baseDir, "shared", "shortcuts") + audioDir = os.path.join(baseDir, "shared", "audiofolders") + scriptsDir = os.path.join(baseDir, "scripts") + + print("=== audio folders:") + audioFolders = {} + folders = readFolders(audioDir=audioDir) + lc2 = 0 + for d2, hasFolderConf2 in sorted(folders.items()): + print(str(lc2) + ": " + d2) + audioFolders[lc2] = d2 + lc2 = lc2 + 1 + + while True: + i = input("select folder: ") + if len(i.strip()) == 0: + break + if not i.isnumeric(): + print("not a number.") + continue + inum = int(i) + if inum not in audioFolders: + print("invalid option") + continue + selectedFolder = audioFolders[inum] + print(" playing " + selectedFolder) + subprocess.check_output([scriptsDir + '/rfid_trigger_play.sh', '--dir=' + selectedFolder], shell=False) + + print("bye.") + From e76c3949db467745e45ae2df7c5e2dfedf2e9c78 Mon Sep 17 00:00:00 2001 From: "debianguru@gmx.de" <debianguru@gmx.de> Date: Sat, 27 Mar 2021 23:03:57 +0100 Subject: [PATCH 107/206] organizeFiles.py: small fix --- scripts/organizeFiles.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/organizeFiles.py b/scripts/organizeFiles.py index b904cd6e2..c7e454e59 100755 --- a/scripts/organizeFiles.py +++ b/scripts/organizeFiles.py @@ -191,7 +191,7 @@ def findDuplicateShortcuts(shortcuts): fixBrokenShortcuts(shortcutsDir=shortcutsDir, shortcuts=shortcuts, audioFolders=audioFolders) shortcuts2 = readShortcuts(shortcutsDir=shortcutsDir) - findDuplicateShortcuts(shortcuts) + findDuplicateShortcuts(shortcuts=shortcuts2) audioFolders2 = readFolders(audioDir=audioDir) fixFoldersWithoutFolderConf(audioDir=audioDir, audioFolders=audioFolders2) From 609142e3a2665253a73853f1fea66209751ce0f1 Mon Sep 17 00:00:00 2001 From: "debianguru@gmx.de" <debianguru@gmx.de> Date: Sun, 28 Mar 2021 22:52:03 +0200 Subject: [PATCH 108/206] minor --- scripts/cli-player.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/cli-player.py b/scripts/cli-player.py index 98ee66d01..28f5f45dc 100755 --- a/scripts/cli-player.py +++ b/scripts/cli-player.py @@ -24,7 +24,7 @@ while True: i = input("select folder: ") - if len(i.strip()) == 0: + if i == "quit" or i == "exit": break if not i.isnumeric(): print("not a number.") From befa48b32ed47fdbf97fa7a18e89b96faf392adc Mon Sep 17 00:00:00 2001 From: T0bi79 <tobiashoppe79@web.de> Date: Tue, 30 Mar 2021 23:50:45 +0200 Subject: [PATCH 109/206] Extended commands (e.g. for special Cards) to play random (surprise!) cards/folders or tracks. --- scripts/playout_controls.sh | 33 ++++++++++++++++++++++++++ scripts/rfid_trigger_play.sh | 12 ++++++++++ settings/rfid_trigger_play.conf.sample | 6 +++++ 3 files changed, 51 insertions(+) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index 57b93e396..58b6ffede 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -955,6 +955,39 @@ case $COMMAND in rfkill unblock wifi fi ;; + randomcard) + #activate a random card + NUM_CARDS=$(find $AUDIO_FOLDERS_PATH/../shortcuts/ -maxdepth 1 -name '[0-9]*' | wc -l) + dbg "NUM_CARDS: $NUM_CARDS" + if (($NUM_CARDS>0)) + then + RANDOMCARDID=$(ls -d $AUDIO_FOLDERS_PATH/../shortcuts/[0-9]* | shuf -n 1 | xargs basename) + dbg "playing random card $RANDOMCARDID" + ${PATHDATA}/rfid_trigger_play.sh --cardid=$RANDOMCARDID + fi + ;; + randomfolder) + #play a random folder + NUM_FOLDERS=$(find $AUDIO_FOLDERS_PATH -mindepth 1 -maxdepth 1 -type d -printf '1' | wc -c) + dbg "NUM_FOLDERS: $NUM_FOLDERS" + if (($NUM_FOLDERS>0)) + then + RANDOMFOLDER=$(ls -d $AUDIO_FOLDERS_PATH/*/ | shuf -n 1 | xargs -d '\n' basename) + dbg "playing random folder \"$RANDOMFOLDER\"" + ${PATHDATA}/rfid_trigger_play.sh --dir="$RANDOMFOLDER" + fi + ;; + randomtrack) + #jump to a random track from the current playlist (without activating shuffle, i.e. maintaining track order) + NUM_TRACKS=$(echo -e "status\nclose" | nc -w 1 localhost 6600 | grep -o -P '(?<=playlistlength: ).*') + dbg "NUM_TRACKS: $NUM_TRACKS" + if(($NUM_TRACKS > 0)) + then + RANDOMTRACK=$(((RANDOM%${NUM_TRACKS})+1)) + dbg "playing random track $RANDOMTRACK" + mpc play ${RANDOMTRACK} + fi + ;; recordstart) #mkdir $AUDIOFOLDERSPATH/Recordings #kill the potential current playback diff --git a/scripts/rfid_trigger_play.sh b/scripts/rfid_trigger_play.sh index 5e62645bb..85b344b44 100755 --- a/scripts/rfid_trigger_play.sh +++ b/scripts/rfid_trigger_play.sh @@ -184,6 +184,18 @@ if [ "$CARDID" ]; then sudo $PATHDATA/playout_controls.sh -c=playerprev #/usr/bin/sudo /home/pi/RPi-Jukebox-RFID/scripts/playout_controls.sh -c=playerprev ;; + $CMDRANDCARD) + # activate a random card + $PATHDATA/playout_controls.sh -c=randomcard + ;; + $CMDRANDFOLD) + # play a random folder + $PATHDATA/playout_controls.sh -c=randomfolder + ;; + $CMDRANDTRACK) + # jump to a random track in playlist (no shuffle mode required) + $PATHDATA/playout_controls.sh -c=randomtrack + ;; $CMDREWIND) # play the first track in playlist sudo $PATHDATA/playout_controls.sh -c=playerrewind diff --git a/settings/rfid_trigger_play.conf.sample b/settings/rfid_trigger_play.conf.sample index b061c8a44..c1f91d77d 100755 --- a/settings/rfid_trigger_play.conf.sample +++ b/settings/rfid_trigger_play.conf.sample @@ -37,6 +37,12 @@ CMDMUTE="%CMDMUTE%" CMDNEXT="%CMDNEXT%" ### Skip previous track CMDPREV="%CMDPREV%" +### Activate random card +CMDRANDCARD="%CMDRANDCARD%" +### Play random folder +CMDRANDFOLD="%CMDRANDFOLD%" +### Jump to random track +CMDRANDTRACK="%CMDRANDTRACK%" ### Restart the playlist CMDREWIND="%CMDREWIND%" ### Seek ahead 15 sec. From 2e0d5c05749c3fb60b1d7c94d8538077398c0a0e Mon Sep 17 00:00:00 2001 From: "Tobias L. Maier" <me@tobiasmaier.info> Date: Mon, 5 Apr 2021 07:43:30 +0200 Subject: [PATCH 110/206] Fix spelling error in en-UK (#1367) --- htdocs/lang/lang-en-UK.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/lang/lang-en-UK.php b/htdocs/lang/lang-en-UK.php index 21c40e3cf..a3579ade8 100755 --- a/htdocs/lang/lang-en-UK.php +++ b/htdocs/lang/lang-en-UK.php @@ -241,7 +241,7 @@ $lang['settingsShowCoverOFF'] = "Don't show cover"; $lang['settingsMessageLangfileNewItems'] = "There are new language items in the original <em>lang-en-UK.php</em> file. Your language file has been updated and now contains these (in English). You might want to update your language file and commit your changes to the Phoniebox code :)"; $lang['settingsWlanSendNav'] = "Mail Wlan IP"; -$lang['settingsWlanSendInfo'] = "Send Wlan IP over email on boot? (useful if you hook your Phoniebox into a new Wlan networt with dynamic IP)"; +$lang['settingsWlanSendInfo'] = "Send Wlan IP over email on boot? (useful if you hook your Phoniebox into a new Wlan network with dynamic IP)"; $lang['settingsWlanSendQuest'] = "Send Wlan IP?"; $lang['settingsWlanSendEmail'] = "email addr."; $lang['settingsWlanSendON'] = "Yes, send email."; @@ -250,7 +250,7 @@ $lang['settingsVolumeManager'] = "Select volume manager"; $lang['settingsWlanReadNav'] = "Read Wlan IP"; -$lang['settingsWlanReadInfo'] = "Read IP address of wlan (wifi) each time after booting? (useful if you hook your Phoniebox into a new wlan networt with dynamic IP)"; +$lang['settingsWlanReadInfo'] = "Read IP address of wlan (wifi) each time after booting? (useful if you hook your Phoniebox into a new wlan network with dynamic IP)"; $lang['settingsWlanReadQuest'] = "Read wlan IP?"; $lang['settingsWlanReadON'] = "Yes, read wlan IP."; $lang['settingsWlanReadOFF'] = "No, do not read wlan IP."; From 2781c09815417b9db952fe53859c4612854ab27d Mon Sep 17 00:00:00 2001 From: "debianguru@gmx.de" <debianguru@gmx.de> Date: Mon, 5 Apr 2021 19:11:31 +0200 Subject: [PATCH 111/206] added documentation as requested. --- scripts/cli-player.py | 6 ++-- scripts/organizeFiles.py | 61 ++++++++++++++++++++++++++++------------ 2 files changed, 47 insertions(+), 20 deletions(-) diff --git a/scripts/cli-player.py b/scripts/cli-player.py index 28f5f45dc..56252a1d6 100755 --- a/scripts/cli-player.py +++ b/scripts/cli-player.py @@ -23,11 +23,13 @@ lc2 = lc2 + 1 while True: - i = input("select folder: ") + i = input("select folder / enter mpc command: ") if i == "quit" or i == "exit": break if not i.isnumeric(): - print("not a number.") + if len(i.strip()) != 0: + print("mpc " + i) + subprocess.call(["mpc"] + i.split(" ")) continue inum = int(i) if inum not in audioFolders: diff --git a/scripts/organizeFiles.py b/scripts/organizeFiles.py index c7e454e59..90e559c5c 100755 --- a/scripts/organizeFiles.py +++ b/scripts/organizeFiles.py @@ -4,6 +4,7 @@ import sys import os +import argparse musicConf = """CURRENTFILENAME="filename" @@ -175,25 +176,49 @@ def findDuplicateShortcuts(shortcuts): shortcutsDir = os.path.join(baseDir, "shared", "shortcuts") audioDir = os.path.join(baseDir, "shared", "audiofolders") + parser = argparse.ArgumentParser() + parser.add_argument("--baseDir", help="directory containing the phoniebox code; defaults to " + baseDir) + parser.add_argument("--latestRFIDFile", help="file storing the latest RFID card id; defaults to " + latestRFIDFile) + parser.add_argument("--shortcutsDir", help="directory containing the RFID card id shortcuts; defaults to " + shortcutsDir) + parser.add_argument("--audioDir", help="directory containing the audio files; defaults to " + audioDir) + + parser.add_argument("--printShortcuts", help="print list of available shortcuts", action="store_true") + parser.add_argument("--linkLooseFolders", help="iterate through list of folders that are currently unbound to any card id and ask user whether to link them", action="store_true") + parser.add_argument("--fixBrokenShortcuts", help="find and delete dangling shortcuts ", action="store_true") + parser.add_argument("--findDuplicateShortcuts", help="find and delete duplicate shortcuts ", action="store_true") + parser.add_argument("--fixFoldersWithoutFolderConf", help="ask user whether folders without a folder.conf file should be either treated as a music album or an audio book", action="store_true") + args = parser.parse_args() + + if args.baseDir: + baseDir = args.baseDir + if args.latestRFIDFile: + latestRFIDFile = args.latestRFIDFile + if args.shortcutsDir: + shortcutsDir = args.shortcutsDir + if args.audioDir: + audioDir = args.audioDir + shortcuts = readShortcuts(shortcutsDir=shortcutsDir) audioFolders = readFolders(audioDir=audioDir) - print("===== shortcuts =====") - shortcutslist = [] - for cardid, thefolders in sorted(shortcuts.items()): - for f in thefolders: - shortcutslist.append([cardid, f]) - for e in sorted(shortcutslist, key=lambda x: x[1]): - print("\"" + e[1] + "\";\t\"" + e[0] + "\"") - print("==================================") - - linkLooseFolders(shortcutsDir=shortcutsDir, audioDir=audioDir, shortcuts=shortcuts, audioFolders=audioFolders, latestRFIDFile=latestRFIDFile) - fixBrokenShortcuts(shortcutsDir=shortcutsDir, shortcuts=shortcuts, audioFolders=audioFolders) - - shortcuts2 = readShortcuts(shortcutsDir=shortcutsDir) - findDuplicateShortcuts(shortcuts=shortcuts2) - - audioFolders2 = readFolders(audioDir=audioDir) - fixFoldersWithoutFolderConf(audioDir=audioDir, audioFolders=audioFolders2) - + if args.printShortcuts: + print("===== shortcuts =====") + shortcutslist = [] + for cardid, thefolders in sorted(shortcuts.items()): + for f in thefolders: + shortcutslist.append([cardid, f]) + for e in sorted(shortcutslist, key=lambda x: x[1]): + print("\"" + e[1] + "\";\t\"" + e[0] + "\"") + print("==================================") + + if args.linkLooseFolders: + linkLooseFolders(shortcutsDir=shortcutsDir, audioDir=audioDir, shortcuts=shortcuts, audioFolders=audioFolders, latestRFIDFile=latestRFIDFile) + if args.fixBrokenShortcuts: + fixBrokenShortcuts(shortcutsDir=shortcutsDir, shortcuts=shortcuts, audioFolders=audioFolders) + if args.findDuplicateShortcuts: + shortcuts2 = readShortcuts(shortcutsDir=shortcutsDir) + findDuplicateShortcuts(shortcuts=shortcuts2) + if args.fixFoldersWithoutFolderConf: + audioFolders2 = readFolders(audioDir=audioDir) + fixFoldersWithoutFolderConf(audioDir=audioDir, audioFolders=audioFolders2) From 4f854de739e5b8949fee2cc45cf588cc0bc14bc9 Mon Sep 17 00:00:00 2001 From: Kiriakos Antoniadis <Groovylein@users.noreply.github.com> Date: Wed, 7 Apr 2021 21:08:17 +0200 Subject: [PATCH 112/206] Delete SPOTIFY-INTEGRATION.md (#1366) * Delete SPOTIFY-INTEGRATION.md #1238 * Updated Links to Spotify FAQ --- README.md | 2 +- docs/INSTALL-COMPLETE-GUIDE.md | 4 +- docs/SPOTIFY-INTEGRATION.md | 420 --------------------------------- docs/UPGRADE.md | 2 +- 4 files changed, 4 insertions(+), 424 deletions(-) delete mode 100644 docs/SPOTIFY-INTEGRATION.md diff --git a/README.md b/README.md index 62d9797e9..57f3a8f63 100755 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ The [2.2](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/4?closed=1) rel [One line install script](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch#one-line-install-command) for Raspbian `buster` available. -* **MUST READ for users of [Phoniebox +Spotify Edition](docs/SPOTIFY-INTEGRATION.md)** +* **MUST READ for users of [Phoniebox +Spotify Edition](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Spotify-FAQ)** * This install script combines the two versions *Classic* and *+ Spotify*. * *Phoniebox Classic* supports local audio, web radio, podcasts, YouTube (download and convert), GPIO and/or RFID diff --git a/docs/INSTALL-COMPLETE-GUIDE.md b/docs/INSTALL-COMPLETE-GUIDE.md index 026680f47..876801d4f 100644 --- a/docs/INSTALL-COMPLETE-GUIDE.md +++ b/docs/INSTALL-COMPLETE-GUIDE.md @@ -75,7 +75,7 @@ Before you can install the Phoniebox software, you need to prepare your Raspberr ## Install Phoniebox software -If you want to install the **Spotify+ version**, [read this first](https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/develop/docs/SPOTIFY-INTEGRATION.md). +If you want to install the **Spotify+ version**, [read this first](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Spotify-FAQ). 1. While shut down, disconnect mouse, keyboard and HDMI 1. Connect RFID Reader @@ -162,4 +162,4 @@ cd; rm buster-install-*; wget https://raw.githubusercontent.com/MiczFlor/RPi-Juk 1. Verify Spotify (optional) 1. Click `Spotify+` in the menu 1. Mopidy opens, a second web player which was also installed - 1. You should be able to search and play Spotify content here \ No newline at end of file + 1. You should be able to search and play Spotify content here diff --git a/docs/SPOTIFY-INTEGRATION.md b/docs/SPOTIFY-INTEGRATION.md deleted file mode 100644 index 3b5419281..000000000 --- a/docs/SPOTIFY-INTEGRATION.md +++ /dev/null @@ -1,420 +0,0 @@ - -# Spotify support for Phoniebox (this guide is for all who want to manually update to +Spotify Edition) - -**MUST READ** - -If you want to integrate Spotify: - -* You **must have** a Spotify Premium subscription. Phoniebox will not work with Spotify Free, just Spotify Premium. -* You need a non-Facebook Spotify username and password. - * If you created your account through Facebook you'll need to create a "device password" to be able to use Phoniebox. Go to http://www.spotify.com/account/set-device-password/, login with your Facebook account, and follow the instructions. However, sometimes that process can fail for users with Facebook logins, in which case you can create an app-specific password on Facebook by going to facebook.com > Settings > Security > App passwords > Generate app passwords, and generate one to use with Phoniebox. -* MP3 (local music) handling has completely changed for the +Spotify Edition. The tracks need to be indexed by Mopidy & Mopidy-Spotify (this is the part of Phoniebox, which gives you spotify support) and the created M3U files do have another structure than normal M3U files. - * You have to scan you library once (if you hadn't yet) and everytime you upload new local tracks to your Phoniebox. - * You can scan local files under "Folders & Files" (Top Navigation). - * For the future we try to integrate an automation for that. - -## Bug reports and testers - -**Testers needed for the Spotify integration** Please read [more in this thread](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/18#issuecomment-430140524). - -If you open an issue on github, please provide as much informations as you can. What is you Edition (Classic or +Spotify)? Which version so you have? What is the problem and what did you try to solve this? And so on.. - -** END of MUST READ :) ** - -## About this document - -You best start will be to start a FRESH INSTALLATION, please read [more here](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch#one-line-install-command). - -The one-line-install should detect an existing installation and ask you if you want to keep the content. That should work, no guarantee :) a backup won't hurt anyone. - -The below documentation might be out of date. The one-line-install script will be more up to date. But the below still exists, because it has more content about how the integration works - and that might help you to understand a problem if and when it occurs. Please add, edit and comment to this document while testing the code. - -## Installing Buster on your Pi - -1. Install Buster on SD Card. -2. Remove card and insert again. - -Setting up the Phoniebox via a SSH connection saves the need for a monitor and a mouse. The following worked on Raspian Buster. - -* Flash your SD card with the Raspian image -* Eject the card and insert it again. This should get the boot partition mounted. -* In the boot partition, create a new empty file called ssh. This will enable the SSH server later. -* Create another file in the same place called wpa_supplicant.conf. Set the file content according to the following example: -~~~ -ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev -network={ - ssid="YOUR_NETWORK_NAME" - psk="YOUR_PASSWORD" - key_mgmt=WPA-PSK -} -~~~ -Note: This works for WPA-secured wifi networks, which should be the vast majority. - -* Save the file -* Unmount and eject the card, insert it into the Raspy, boot. -* Find out the IP address of the raspberry. Most Wifi routers have a user interface that lists all devices in the network with the IP address they got assigned. -* Connect via ssh with username pi and password raspberry. -* Jump back to the top of this document to walk through the other steps of the installation. - -## If you have a USB Sound Card: Correct the Sort Order - -~~~ -cat /proc/asound/modules -~~~ -You get: -~~~ -0 snd_bcm2835 -1 snd_usb_audio -~~~ -Change sort order: -~~~ -sudo nano /etc/modprobe.d/alsa-base.conf -~~~ -If file is empty, add the following lines: -~~~ -options snd_usb_audio index=0 -options snd_bcm2835 index=1 -options snd slots=snd-usb-audio,snd-bcm2835 -~~~ -After reboot you get: -~~~ -cat /proc/asound/modules - -0 snd_usb_audio -1 snd_bcm2835 -~~~ -## If you need Root-User, get your system prepared -~~~ -sudo passwd root -sudo nano /etc/ssh/sshd_config -~~~ -Search for PermitRootLogin and change - -~~~ -#PermitRootLogin prohibit-password -~~~ -to -~~~ -PermitRootLogin yes -~~~ - -## Install MOPIDY -Pin major version of Mopidy to 3 -~~~ -echo -e "Package: mopidy\nPin: version 3.*\nPin-Priority: 1001" | sudo tee /etc/apt/preferences.d/mopidy -~~~ -Add the archive’s GPG key: -~~~ -wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add - -~~~ -Add the APT repo to your package sources: -~~~ -sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/buster.list -~~~ -Install Mopidy and all dependencies: -~~~ -sudo apt-get update -sudo apt-get upgrade -sudo apt-get --yes --allow-downgrades --allow-remove-essential --allow-change-held-packages install mopidy mopidy-mpd mopidy-local mopidy-spotify -~~~ -Finally, you need to set a couple of config values, and then you’re ready to run Mopidy. Alternatively you may want to have Mopidy run as a system service, automatically starting at boot. - -To install one of the listed packages, e.g. mopidy-spotify, simply run the following: -~~~ -sudo apt-get --yes --allow-downgrades --allow-remove-essential --allow-change-held-packages install libspotify12 python3-cffi python3-ply python3-pycparser python3-spotify -~~~ - -## Mopidy as service... - -On modern systems using systemd you can enable the Mopidy service by running: -~~~ -sudo systemctl enable mopidy -~~~ -This will make Mopidy start when the system boots. - -## Install MOPIDY-IRIS Web Interface -~~~ -sudo python3 -m pip install Mopidy-Iris -~~~ - -Set the rights -~~~ -sudo nano /etc/sudoers -~~~ -Add this line to the end -~~~ -mopidy ALL=NOPASSWD: /usr/local/lib/python2.7/dist-packages/mopidy_iris/system.sh -~~~ - -You have to reboot now. -~~~ -sudo reboot -~~~ - -## Configure Mopidy... -~~~ -sudo nano /etc/mopidy/mopidy.conf -~~~ -This file should look like this (you first have to get client-id and client-secret here: https://www.mopidy.com/authenticate/ ) -This must be done manually. Put your username, password, client_id, client_secret into the spotify section. -The audio section has to be tested, because i don't know if "output = alsasink" works for everyone. "mixer_volume" is the start volume of phoniebox! attention: if you leave this blank, volume will be 100% after reboot!! -~~~ -[core] -cache_dir = /var/cache/mopidy -config_dir = /etc/mopidy -data_dir = /var/lib/mopidy - -[logging] -config_file = /etc/mopidy/logging.conf -debug_file = /var/log/mopidy/mopidy-debug.log - -[local] -enabled = true -media_dir = /home/pi/RPi-Jukebox-RFID/shared/audiofolders -excluded_file_extensions = - .conf - .jpg - .txt - placeholder - -[file] -#enabled = true -metadata_timeout = 1 - -[m3u] -playlists_dir = /home/pi/RPi-Jukebox-RFID/playlists -default_encoding = UTF-8 -default_extension = .m3u - -[audio] -output = alsasink -mixer_volume = 30 - -[mpd] -hostname = 0.0.0.0 - -[http] -hostname = 0.0.0.0 - -[iris] -country = DE -locale = de_DE - -[spotify] -enabled = true -username = %spotify_username% -password = %spotify_password% -client_id = %spotify_client_id% -client_secret = %spotify_client_secret% -#bitrate = 160 -#volume_normalization = true -#private_session = false -#timeout = 10 -#allow_cache = true -#allow_network = true -#allow_playlists = true -#search_album_count = 20 -#search_artist_count = 10 -#search_track_count = 50 -#toplist_countries = - -~~~ -Then edit this file: -~~~ -sudo nano ~/.config/mopidy/mopidy.conf -~~~ -Like this: -~~~ -# For further information about options in this file see: -# http://docs.mopidy.com/ -# -# The initial commented out values reflect the defaults as of: -# Mopidy 2.2.0 -# Mopidy-File 2.2.0 -# Mopidy-HTTP 2.2.0 -# Mopidy-Iris 3.27.1 -# Mopidy-Local 2.2.0 -# Mopidy-Local-Images 1.0.0 -# Mopidy-M3U 2.2.0 -# Mopidy-MPD 2.2.0 -# Mopidy-SoftwareMixer 2.2.0 -# Mopidy-Spotify 3.1.0 -# Mopidy-Stream 2.2.0 -# -# Available options and defaults might have changed since then, -# run `mopidy config` to see the current effective config and -# `mopidy --version` to check the current version. - -[core] -cache_dir = $XDG_CACHE_DIR/mopidy -config_dir = $XDG_CONFIG_DIR/mopidy -data_dir = $XDG_DATA_DIR/mopidy -max_tracklist_length = 10000 -restore_state = false - -[logging] -#color = true -#console_format = %(levelname)-8s %(message)s -#debug_format = %(levelname)-8s %(asctime)s [%(process)d:%(threadName)s] %(name)s\n %(message)s -#debug_file = mopidy.log -#config_file = - -[audio] -#mixer = software -mixer_volume = 30 -output = alsasink -#buffer_time = - -[proxy] -#scheme = -#hostname = -#port = -#username = -#password = - -[local-images] -#enabled = true -#library = json -#base_uri = /images/ -#image_dir = -#album_art_files = -# *.jpg -# *.jpeg -# *.png - -[iris] -#enabled = true -country = DE -locale = de_DE -#spotify_authorization_url = https://jamesbarnsley.co.nz/iris/auth_spotify.php -#lastfm_authorization_url = https://jamesbarnsley.co.nz/iris/auth_lastfm.php -#genius_authorization_url = https://jamesbarnsley.co.nz/iris/auth_genius.php -#snapcast_enabled = false -#snapcast_host = localhost -#snapcast_port = 1705 - -[mpd] -#enabled = true -hostname = 0.0.0.0 -#port = 6600 -#password = -#max_connections = 20 -#connection_timeout = 60 -#zeroconf = Mopidy MPD server on $hostname -#command_blacklist = -# listall -# listallinfo -#default_playlist_scheme = m3u - -[http] -#enabled = true -hostname = 0.0.0.0 -#port = 6680 -#static_dir = -#zeroconf = Mopidy HTTP server on $hostname -#allowed_origins = - -[stream] -#enabled = true -#protocols = -# http -# https -# mms -# rtmp -# rtmps -# rtsp -#metadata_blacklist = -#timeout = 5000 - -[m3u] -#enabled = true -#base_dir = $XDG_MUSIC_DIR -default_encoding = UTF-8 -default_extension = .m3u -playlists_dir = /home/pi/RPi-Jukebox-RFID/playlists - -[softwaremixer] -#enabled = true - -[file] -#enabled = true -#media_dirs = -# $XDG_MUSIC_DIR|Music -# ~/|Home -#excluded_file_extensions = -# .jpg -# .jpeg -#show_dotfiles = false -#follow_symlinks = false -metadata_timeout = 1 - -[local] -enabled = true -#library = json -media_dir = /home/pi/RPi-Jukebox-RFID/shared/audiofolders -#scan_timeout = 1000 -#scan_flush_threshold = 100 -#scan_follow_symlinks = false -excluded_file_extensions = -# .directory -# .html -# .jpeg - .jpg -# .log -# .nfo -# .png - .txt - .conf - placeholder - -[spotify] -enabled = true -username = %spotify_username% -password = %spotify_password% -client_id = %spotify_client_id% -client_secret = %spotify_client_secret% -#bitrate = 160 -#volume_normalization = true -#private_session = false -#timeout = 10 -#allow_cache = true -#allow_network = true -#allow_playlists = true -#search_album_count = 20 -#search_artist_count = 10 -#search_track_count = 50 -#toplist_countries = -~~~ - -## Install Phoniebox (if not done yet) - if you want to UPGRADE to spotify only, skip this step -~~~ -cd; rm stretch-install-*; wget https://raw.githubusercontent.com/MiczFlor/RPi-Jukebox-RFID/master/scripts/installscripts/stretch-install-spotify.sh; chmod +x stretch-install-spotify.sh; ./stretch-install-spotify.sh -~~~ -## Change Playlists_Folders_Path to: -~~~ -/home/pi/RPi-Jukebox-RFID/playlists -~~~ -## You have to disable MPD because we use mopidy instead and MPD is included there. - -If you don't disable MPD here, mopidy will not run!!! -~~~ -sudo systemctl disable mpd -~~~ -## Charset problems in display? -If you have problems with UTF-8 and ANSI, try to start raspi-config and change localisation to UTF-8. -I don't know if it works, for me it does after several tries. - -## How to use Spotify? - -When you right-click an album, a track or a playlist in MOPIDY IRIS or Spotify Client (share button), you get a Spotify URI. -This Spotify URI must be used when registering a card with the following syntax: -~~~ -Tracks: spotify:track:###################### -Albums: spotify:album:###################### -Playlists: spotify:user:username:playlist:###################### -(e.g. spotify:user:spotify:playlist:37i9dQZF1DWUVpAXiEPK8P or -spotify:user:tomorrowlandofficial:playlist:0yS25E7g9xQZ1Dst5SqUZn) - -Podcast: spotify:show:###################### (This has not been tested yet!) -~~~ -The information will be stored in a spotify.txt in an audiofolder. diff --git a/docs/UPGRADE.md b/docs/UPGRADE.md index 1ba535af2..69d00aa90 100755 --- a/docs/UPGRADE.md +++ b/docs/UPGRADE.md @@ -106,7 +106,7 @@ sudo reboot # Upgrade from Version 1.1.1 to 1.1.7 -Not much has changed in the core of this version. There is the new feature: Integrating **Spotify** to your Phoniebox. Currently this is *only* a [HOWTO document](docs/SPOTIFY-INTEGRATION.md) which needs improvement and your input. I invite everybody to use our [spotify thread](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/18) to post improvements regarding this feature. You might also want to [improve the documentation on *Spotify integration*](docs/SPOTIFY-INTEGRATION.md) and create pull requests so I can merge this with the core. +Not much has changed in the core of this version. There is the new feature: Integrating **Spotify** to your Phoniebox. Currently this is *only* a [HOWTO document](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Spotify-FAQ) which needs improvement and your input. I invite everybody to use our [spotify thread](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/18) to post improvements regarding this feature. You might also want to [improve the documentation on *Spotify integration*](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Spotify-FAQ) and create pull requests so I can merge this with the core. Upgrading is therefore fairly simple. The following will overwrite any local changes to your code but NOT to your configruation files and systemd services, GPIO and the like. Only core code: From f7ccfcdc764a4f5de1202fea723b82894cfd7e27 Mon Sep 17 00:00:00 2001 From: Michael Weinrich <micxer@users.noreply.github.com> Date: Wed, 7 Apr 2021 22:19:06 +0200 Subject: [PATCH 113/206] Fix typos (#1370) --- components/gpio_control/GPIODevices/simple_button.py | 2 +- components/gpio_control/GPIODevices/two_button_control.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/components/gpio_control/GPIODevices/simple_button.py b/components/gpio_control/GPIODevices/simple_button.py index 2e2c8202f..f2e43c87d 100644 --- a/components/gpio_control/GPIODevices/simple_button.py +++ b/components/gpio_control/GPIODevices/simple_button.py @@ -82,7 +82,7 @@ def callbackFunctionHandler(self, *args): if self.hold_repeat: return self.holdAndRepeatHandler(*args) - logger.info('{}: executre callback'.format(self.name)) + logger.info('{}: execute callback'.format(self.name)) return self.when_pressed(*args) @property diff --git a/components/gpio_control/GPIODevices/two_button_control.py b/components/gpio_control/GPIODevices/two_button_control.py index 4ea22061d..702b6a79d 100644 --- a/components/gpio_control/GPIODevices/two_button_control.py +++ b/components/gpio_control/GPIODevices/two_button_control.py @@ -71,7 +71,7 @@ def __init__(self, self.btn1 = SimpleButton( pin=bcmPin1, action=lambda *args: None, - name=name + 'Btn2', + name=name + 'Btn1', bouncetime=500, edge=GPIO.FALLING, hold_time=hold_time, From 6df3839ba4a8e4ad09a0ce10d608923b0da287f1 Mon Sep 17 00:00:00 2001 From: bart1 <1662852+bart1@users.noreply.github.com> Date: Sat, 17 Apr 2021 15:40:31 +0200 Subject: [PATCH 114/206] Update README.md (#1375) Due to sloppy reading and not realizing where this documentation was located it took me a while to figure out what this folder was referring to. I thought I would clarify. --- components/gpio_control/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/gpio_control/README.md b/components/gpio_control/README.md index 58751ec36..5851b9baa 100644 --- a/components/gpio_control/README.md +++ b/components/gpio_control/README.md @@ -5,7 +5,7 @@ It uses to a configuration file to configure the active devices. ## How to create and run the service? * The service can be activated during installation with the installscript. -* If the service was not activated during installation, you can alternatively use `sudo install.sh` in this folder. +* If the service was not activated during installation, you can alternatively use `sudo install.sh` in this folder (`components/gpio_control`). ## How to edit configuration files? The configuration file is located here: `~/RPi-Jukebox-RFID/settings/gpio_settings.ini` From aba87670ac88b74f235798ad88d1b0602d68650d Mon Sep 17 00:00:00 2001 From: Micz Flor <micz.flor@web.de> Date: Wed, 21 Apr 2021 11:28:39 +0200 Subject: [PATCH 115/206] move helper scripts --- scripts/{ => helperscripts}/cli-player.py | 0 scripts/{ => helperscripts}/organizeFiles.py | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename scripts/{ => helperscripts}/cli-player.py (100%) rename scripts/{ => helperscripts}/organizeFiles.py (100%) diff --git a/scripts/cli-player.py b/scripts/helperscripts/cli-player.py similarity index 100% rename from scripts/cli-player.py rename to scripts/helperscripts/cli-player.py diff --git a/scripts/organizeFiles.py b/scripts/helperscripts/organizeFiles.py similarity index 100% rename from scripts/organizeFiles.py rename to scripts/helperscripts/organizeFiles.py From 8cd0abc562a6e81cb6e94ec4a53aabdbbf000fe3 Mon Sep 17 00:00:00 2001 From: Micz Flor <micz.flor@web.de> Date: Wed, 21 Apr 2021 11:46:36 +0200 Subject: [PATCH 116/206] README for helper scripts --- scripts/helperscripts/README.md | 70 +++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 scripts/helperscripts/README.md diff --git a/scripts/helperscripts/README.md b/scripts/helperscripts/README.md new file mode 100644 index 000000000..be4914a6e --- /dev/null +++ b/scripts/helperscripts/README.md @@ -0,0 +1,70 @@ +# helper scripts + +## Analytics_AfterInstallScript.sh + +Checks the system and all conf files to give some feedback in the case of problems. +Might be outdated... + +## AssignIDs4Shortcuts.php + +This script is used by the web app. +This script is called from the command line. +It reads a CSV file and creates shortcuts for audiofolders from the file. +It also creates a modified version of the file rfid_trigger_play.sh which controls the playout. +As a source it uses rfid_trigger_play.sh.sample + +## CreateCsvFromShortcuts.php + +This script is used by the web app. +This script is called from the command line. +It will read all shortcut files and create a CSV file with matching pairs +of RFID and audio folder name. +The created CSV file starts with the line +"id","value" + +## CreatePodcastsKidsDeutsch.sh + +Creates sample folders with files and streams +inside the $AUDIOFOLDERSPATH directory + +## CreateSampleAudiofoldersStreams.sh + +Creates sample folders with files and streams +inside the $AUDIOFOLDERSPATH directory + +## DeleteAllConfig.sh + +This script will delete all config files +including mpd.conf and the like. + +## DeleteSampleAudiofoldersStreams.sh + +Deletes sample folders with files and streams +inside the $AUDIOFOLDERSPATH directory + +## autohotspot + +Changed to autohotspot service + +## cli-player.py + +Command line player to play folders on the Phoniebox. + +A command line replacement some functionality of the phoniebox-web-ui, which challenges the raspberry pi zero. +Using this small script significantly reduces resource usage on the system. + +## cli_ReadWifiIp.php + +Reads out the IP of the Phoniebox in English language on boot. + +## organizeFiles.py + +A small script for conveniently organizing audio folders, +linking them to RFID cards, finding audio folders that are currently +not bound to any RFID card, and fixing broken links. + +A command line replacement some functionality of the phoniebox-web-ui, which challenges the raspberry pi zero. +Using this small script significantly reduces resource usage on the system. + + + From b3df5c95914fecad212e3f6191fe54af087d0135 Mon Sep 17 00:00:00 2001 From: damaev <61206882+damaev@users.noreply.github.com> Date: Thu, 29 Apr 2021 23:03:09 +0200 Subject: [PATCH 117/206] Update phoniebox-rfid-reader.service.stretch-default.sample (#1388) * Update phoniebox-rfid-reader.service.stretch-default.sample reducing cpu-load * Update phoniebox-rfid-reader.service.stretch-default.sample --- .../phoniebox-rfid-reader.service.stretch-default.sample | 1 + 1 file changed, 1 insertion(+) diff --git a/misc/sampleconfigs/phoniebox-rfid-reader.service.stretch-default.sample b/misc/sampleconfigs/phoniebox-rfid-reader.service.stretch-default.sample index 80dee4a60..745544634 100755 --- a/misc/sampleconfigs/phoniebox-rfid-reader.service.stretch-default.sample +++ b/misc/sampleconfigs/phoniebox-rfid-reader.service.stretch-default.sample @@ -8,6 +8,7 @@ Group=pi Restart=always WorkingDirectory=/home/pi/RPi-Jukebox-RFID ExecStart=/home/pi/RPi-Jukebox-RFID/scripts/daemon_rfid_reader.py +Nice=15 [Install] WantedBy=multi-user.target From 2a4bca056c6fdfb781cc85acc1f69ca6b3fd871c Mon Sep 17 00:00:00 2001 From: Patrick Beer <patrick.beer@gmail.com> Date: Fri, 30 Apr 2021 00:29:30 +0200 Subject: [PATCH 118/206] Update documentation (#1386) * Add headless install to complete installation guide as an option * Reorganize structure * Fix anchor link * Correcting a few more issues * Remove instructions to install Phoniebox with Desktop --- docs/INSTALL-COMPLETE-GUIDE.md | 181 ++++++++++++++++++++------------- 1 file changed, 110 insertions(+), 71 deletions(-) diff --git a/docs/INSTALL-COMPLETE-GUIDE.md b/docs/INSTALL-COMPLETE-GUIDE.md index 876801d4f..c7dd7c829 100644 --- a/docs/INSTALL-COMPLETE-GUIDE.md +++ b/docs/INSTALL-COMPLETE-GUIDE.md @@ -1,14 +1,26 @@ # How to set up a Phoniebox from scratch -## What you need +1. [What you need](#1-what-you-need) +1. [Install Raspberry Pi OS](#2-install-raspberry-pi-os) +1. [Initial Boot](#3-initial-boot) +1. [Prepare hardware](#4-prepare-hardware) +1. [Audio](#5-audio) + * [a) On-board headphone](#5a-on-board-headphone) + * [b) USB sound card](#5b-usb-sound-card) +1. [Install Phoniebox software](#6-install-phoniebox-software) +1. [Verify Phoniebox setup](#7-verify-phoniebox-setup) + +--- + +## 1. What you need All parts marked with a star (*) are optional but improve the overall experience. All linked components are examples but have proven to work together. You are free to choose different equipment. 1. [Micro SD Card](https://amzn.to/3do7KJr) (e.g. 32 GB) 1. Raspberry Pi - * [Model 4 B](https://amzn.to/2M0xtfJ) - * [Model 3 B+](https://amzn.to/2NGL7Fa) - * (Model 1, 2, 3 and Zero are possible, but they are slow...) + * [Model 3 B+](https://amzn.to/2NGL7Fa) - recommended + * [Model 4 B](https://amzn.to/2M0xtfJ) - could be a little overhead + * (Model 1, 2, 3 and Zero are possible, but they are slower...) 1. [USB RFID Reader](https://amzn.to/3s47Iun) 1. [RFID Chips](https://amzn.to/3k78F2j) or [RFID Cards](https://amzn.to/3dplljG) 1. [Speakers with 3.5mm jack](https://amzn.to/3dnhmnV) @@ -21,94 +33,114 @@ Alternatively you can use an external sound card, but sometimes that doesn't see * [USB Sound Card](https://amzn.to/3djaKqC) * - [Alternative](https://amzn.to/3u8guth) -You'll need a few other things for a one time set up only. - -1. Second computer (Linux, Mac or Windows) -1. USB Mouse and USB Keyboard -1. Micro SD Card Reader -1. Screen with HDMI connection - -Alternative: -* If you are able to connect your Raspberry Pi via a wired network interface (LAN), you can set it up via terminal (SSH) only. -* It's also possible to set up a Pi with [WiFi and ssh](https://raspberrypi.stackexchange.com/questions/10251/prepare-sd-card-for-wifi-on-headless-pi/57023#57023). +--- -## Install Raspberry Pi OS on a Micro SD card +## 2. Install Raspberry Pi OS Before you can install the Phoniebox software, you need to prepare your Raspberry Pi and install 1. Connect your Micro SD card (through a card reader) to your computer 1. [Download](https://www.raspberrypi.org/software/) the [Raspberry Pi Imager](https://www.raspberrypi.org/blog/raspberry-pi-imager-imaging-utility/) and open it -1. Select **Raspberry Pi OS** as the operating system (Recommended) -1. Select your Micro SD card (card will be formatted) +1. Select **Raspberry Pi OS** as the operating system +1. Select your Micro SD card (your card will be formatted) 1. Click `Write` -1. Wait for the imaging process to be finished (it'll take a few minutes) and eject your SD card +1. Wait for the imaging process to be finished (it'll take a few minutes) -## Initial boot - Set up Wifi connection +--- -1. Connect a USB mouse, a keyboard and a screen through HDMI -1. Insert the Micro SD card +## 3. Initial Boot + +You will need a terminal, like PuTTY for Windows or the Terminal for Mac to proceed with the next steps. + +1. Open a terminal of your choice +1. Insert your card again if it has been ejected automatically +1. Navigate to your SC card e.g., `cd /Volumes/boot` for Mac or `D:` for Windows +1. Enable SSH by adding a simple file + ``` + $ touch ssh + ``` +1. Set up your Wifi connection + * Mac + ``` + $ nano wpa_supplicant.conf + ``` + * Windows + ``` + D:\> notepad wpa_supplicant.conf + ``` +1. Insert the following content, update your country, Wifi credentials and save the file. + ``` + country=DE + ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev + update_config=1 + + network={ + ssid="network-name" + psk="network-password" + } + ``` +1. Eject your SD card and insert it into your Raspberry Pi 1. Start your Raspberry Pi by attaching a power supply -1. Walk through the "Welcome to Raspberry Pi" wizard (the content of this wizard might have changed after this tutorial was created!) - 1. Set your locale - 1. Change your password - 1. Proceed with with screen settings - 1. Select your Wifi Network (You are being asked in the Phoniebox install routine whether you want to set up your Wifi again, we will skip this step then) - 1. Software Update (optional, recommended, takes a while) - 1. Reboot -1. Let's enable a few more settings - 1. Launch `Raspberry Pi Configuration` from the `Preferences` menu - 1. A window opens with the `System` tab selected - 1. Select `To CLI` for `Boot` option - 1. Select `Login as user 'pi'` for `Auto login` option - 1. Select `Wait for network` for `Network at Boot` option (optional, required for Spotify+ version) - 1. Navigate to the `Interfaces` tab - 1. Select `Enabled` next to `SSH` - 1. Click `OK` -1. Set up a static IP (optional, recommended) - 1. Right click on the Wifi sympbol in the upper right corner of your application bar and choose `Wifi & Wired Network Settings` - 1. Configure `interface` and `wlan0` - 1. Check `Disabled IPv6` unless you want to provide a static IPv6 address - 1. Fill out `IPv4` and `Router` (Gateway) options (keep `DNS Servers` and `DNS Search` empty) - 1. Click `Apply` and `Close` -1. Optional: If you like, you can **turn off Bluetooth** to reduce energy consumption (unless you want to use any Bluetooth devices with your Phoniebox) -1. Shutdown your Raspberry Pi (`Application > Logout > Shutdown`) - -## Install Phoniebox software +1. Login into your Raspberry Pi, username is `pi` and password is `raspberry`. If `raspberrypi.local` does not work, find out your Raspberry Pi's IP address from your router. + ``` + $ ssh pi@raspberrypi.local + ``` +1. Update the Pi's software. This may take a bit + ``` + $ sudo apt update && sudo apt full-upgrade + ``` +1. Reboot with `sudo reboot` +1. Login again with SSH and open the Raspberry Pi config + ``` + $ sudo raspi-config + ``` +1. Update the following settings + ``` + 1 System Options + S5 Boot / Auto Login -> B2 Console Autologin + S6 Network at Boot -> Yes + ``` +1. Close the settings panel with `<Finish>` +1. Shutdown your Raspberry Pi with `sudo shutdown` -If you want to install the **Spotify+ version**, [read this first](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Spotify-FAQ). +--- + +## 4. Prepare hardware -1. While shut down, disconnect mouse, keyboard and HDMI -1. Connect RFID Reader -1. Conntect USB Sound Card, plug in the 3.5" speakers with the Ground Loop Isolator in between. If you have chosen the example speakers from above, you can power them either through the Raspberry Pi or through an external power source. +1. Connect the RFID Reader +1. Conntect USB Sound Card if available +1. Plug in the 3.5" speakers with the Ground Loop Isolator in between. If you have chosen the example speakers from above, you can power them either through the Raspberry Pi or through an external power source. 1. Boot your Raspberry Pi -1. Open a terminal in your second computer and login via SSH using the `pi` user and your static IP address. If you see a question about authentication and fingerprint, type `yes` and hit `enter` +1. Open a terminal in your second computer and login via SSH using the `pi` user and default password `raspberry`. If you see a question about authentication and fingerprint, type `yes` and hit `enter` ``` - ssh pi@192.168.1.123 + ssh pi@raspberrypi.local ``` -### Using on-board headphone-jack for audio - -Note: Installing with an external monitor (HDMI) can create a problem if you use the mini-jack audio out. The problem is that if you plug in a HDMI monitor an additional sound output is added and the index changes. This bothering behavior was introduced, when Raspberry Pi separated headphones jack and HDMI into two different devices in May 2020. +--- -See: [Troubleshooting: headphone audio unavailable after unplugging HDMI](https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions/1300) +## 5. Audio -If this problem occurs, follow the steps in the next section (configure USB sound card). +### 5a. On-board headphone -### Configure USB sound card (if you are using one) +Installing with an external monitor (HDMI) can create a problem if you use the mini-jack audio out. The problem is that if you plug in a HDMI monitor an additional sound output is added and the index changes. This bothering behavior was introduced, when Raspberry Pi separated headphones jack and HDMI into two different devices in May 2020. +Also see [Troubleshooting: headphone audio unavailable after unplugging HDMI](https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions/1300) +### 5b. USB sound card -1. Configure your **USB sound card**. Check if your sound card has been detected +1. Open the Raspberry Pi config + ``` + $ sudo raspi-config ``` - cat /proc/asound/modules - - // returns - 0 snd_bcm2835 - 1 snd_usb_audio +1. Update the following settings ``` -1. To update the sound card priority order, edit the following file + 1 System Options + S2 Audio -> 1 USB Audio ``` - sudo nano /etc/modprobe.d/alsa-base.conf +1. Close the settings panel with `<Finish>` +1. Make your soundcard the primary sound device. To update the sound card priority order, edit the following file: + ``` + $ sudo nano /usr/share/alsa/alsa.conf ``` 1. Find the following variables and change their value from `0` to `1` ``` @@ -126,7 +158,11 @@ If this problem occurs, follow the steps in the next section (configure USB soun speaker-test -c2 ``` -### Phoniebox Install Script +--- + +## 6. Install Phoniebox software + +If you want to install the **Spotify+ version**, [read this first](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Spotify-FAQ). Run the following command in your SSH terminal and follow the instructions @@ -136,7 +172,7 @@ cd; rm buster-install-*; wget https://raw.githubusercontent.com/MiczFlor/RPi-Juk 1. `Yes` to `Continue interactive installation` 1. `No` to the `Wifi Setting step` - it's already set! -1. `Master` to `CONFIGURE AUDIO INTERFACE (iFace)` +1. `Speaker` to `CONFIGURE AUDIO INTERFACE (iFace)` 1. Setup Spotify (optional) 1. You need to generate your personal Spotify client ID and secret 1. Visit the [Mopidy Spotify Authentication Page](https://mopidy.com/ext/spotify/#authentication) @@ -148,14 +184,17 @@ cd; rm buster-install-*; wget https://raw.githubusercontent.com/MiczFlor/RPi-Juk 1. `Yes` to `FOLDER CONTAINING AUDIO FILES` 1. Optional: In this scenario, we do not install GPIO buttons, so feel free to choose `No` 1. `Yes` to `Do you want to start the installation?` +1. ... Wait a bit for the installation to happen ... 1. `Yes` to `Have you connected your RFID reader?` 1. `1` to select `1. USB-Reader` 1. Choose the `#` that resonates with your RFID reader, in our case `HXGCoLtd Keyboard` 1. `Yes` to `Would you like to reboot now?` -## Verify Phoniebox installation +--- + +## 7. Verify Phoniebox setup -1. Open a browser in your computer and navigate to your static IP: `http://192.168.1.123` +1. Open a browser in your computer and navigate to your Raspberry Pi: `http://raspberrypi.local` 1. You should see the Phoniebox UI 1. In your navigation, choose `Card ID` 1. Swipe one card near your RFID reader. If `Last used Chip ID` is automatically updated (you might hear a beep) and shows a number, your reader works From 6bc441236a341f9d96238084c131f0c864df7aa6 Mon Sep 17 00:00:00 2001 From: T0bi79 <51325380+T0bi79@users.noreply.github.com> Date: Thu, 6 May 2021 22:57:39 +0200 Subject: [PATCH 119/206] Clean-up and partial repair of the GPIO component (#1397) * Edit GPIO sanmple configs: Removed misleading attribute hold_time for all ("Simple-")Buttons that do not have hold_repeat configured at all (today, hold_time will be ignored if hold_repeat is unset). I kept the hold_time where hold_repeat was explicitely set to False so it could be re-enabled when needed. * Fixed ShutdownButton: shutdown_button.py needs additional config parameters time_pressed, iteration_time and led_pin which gpio_control.py did not read and pass (has been added). Instead, it read hold_repeat and hold_time which is not used by ShutdownButton (has been removed). * Deprecated config options replaced: Button and ShutdownButton do not evaluate pull_up any more, instead they use pull_up_down today. * Tested and repaired shutdown_button class: - fixed import of SimpleButton (as in shutdown_button.py and two_button_control.py) since it threw an error under python 3. - removed input params hold_repeat and hold_time since they are not used by any instance of ShutdownButton. - configure LED GPIO port on init (LED flah function threw an error since GPIO was still uninitalized) - renamed "status" to "cancelled" for better understanding - enforce final LED switch off if action was cancelled early (might have stayed on if button was released during flashing) --- .../GPIODevices/shutdown_button.py | 27 ++++++++++------- .../gpio_setting_rotary_vol_prevnext.ini | 1 - .../example_configs/gpio_settings.ini | 30 +++++++------------ .../gpio_settings_rotary_and_led.ini | 3 +- .../example_configs/gpio_settings_test.ini | 17 ++++++----- components/gpio_control/gpio_control.py | 5 ++-- .../gpio_control/test/gpio_settings_test.ini | 4 ++- 7 files changed, 45 insertions(+), 42 deletions(-) diff --git a/components/gpio_control/GPIODevices/shutdown_button.py b/components/gpio_control/GPIODevices/shutdown_button.py index 5d814b092..d9ef7218a 100644 --- a/components/gpio_control/GPIODevices/shutdown_button.py +++ b/components/gpio_control/GPIODevices/shutdown_button.py @@ -2,7 +2,10 @@ import time from RPi import GPIO import logging -from .simple_button import SimpleButton +try: + from simple_button import SimpleButton +except ImportError: + from .simple_button import SimpleButton logger = logging.getLogger(__name__) @@ -10,12 +13,14 @@ class ShutdownButton(SimpleButton): def __init__(self, pin, action=lambda *args: None, name=None, bouncetime=500, edge=GPIO.FALLING, - hold_time=.1, led_pin=None, time_pressed=2, hold_repeat=False, pull_up_down=GPIO.PUD_UP, iteration_time=.2): + led_pin=None, time_pressed=2, pull_up_down=GPIO.PUD_UP, iteration_time=.2): self.led_pin = led_pin self.time_pressed = time_pressed self.iteration_time = iteration_time + if self.led_pin is not None: + GPIO.setup(self.led_pin, GPIO.OUT) super(ShutdownButton, self).__init__(pin=pin, action=action, name=name, bouncetime=bouncetime, edge=edge, - hold_time=hold_time, hold_repeat=hold_repeat, pull_up_down=pull_up_down, + pull_up_down=pull_up_down ) pass @@ -30,7 +35,7 @@ def set_led(self, status): logger.debug('cannot set LED to {}: no LED pin defined'.format(status)) def callbackFunctionHandler(self, *args): - status = False + cancelled = False n_checks = math.ceil(self.time_pressed / self.iteration_time) logger.debug('ShutdownButton pressed, ensuring long press for {} seconds, checking each {}s: {}'.format( self.time_pressed, self.iteration_time, n_checks @@ -38,18 +43,20 @@ def callbackFunctionHandler(self, *args): for x in range(n_checks): self.set_led(x & 1) time.sleep(.2) - status = not self.is_pressed - if status: + cancelled = not self.is_pressed + if cancelled: break - self.set_led(status) - if not status: + if not cancelled: # trippel off period to indicate command accepted time.sleep(.6) self.set_led(GPIO.HIGH) # leave it on for the moment, it will be off when the system is down self.when_pressed(*args) + else: + # switch off LED if pressing was cancelled early (during flashing) + self.set_led(GPIO.LOW) def __repr__(self): - return '<ShutdownButton-{}(pin {},hold_repeat={},hold_time={})>'.format( - self.name, self.pin, self.hold_repeat, self.hold_time + return '<ShutdownButton-{}(pin {},time_pressed={},iteration_time={},led_pin={})>'.format( + self.name, self.pin, self.time_pressed, self.iteration_time, self.led_pin ) diff --git a/components/gpio_control/example_configs/gpio_setting_rotary_vol_prevnext.ini b/components/gpio_control/example_configs/gpio_setting_rotary_vol_prevnext.ini index b17d48f9d..efc2f057b 100755 --- a/components/gpio_control/example_configs/gpio_setting_rotary_vol_prevnext.ini +++ b/components/gpio_control/example_configs/gpio_setting_rotary_vol_prevnext.ini @@ -22,7 +22,6 @@ functionCallUp: functionCallPlayerNext enabled: True Type: Button Pin: 17 -hold_time: 1 pull_up_down: pull_down edge: raising functionCall: functionCallShutdown diff --git a/components/gpio_control/example_configs/gpio_settings.ini b/components/gpio_control/example_configs/gpio_settings.ini index cc226084e..c7e50485b 100755 --- a/components/gpio_control/example_configs/gpio_settings.ini +++ b/components/gpio_control/example_configs/gpio_settings.ini @@ -29,31 +29,28 @@ hold_repeat: False enabled: True Type: Button Pin: 27 -pull_up: True -hold_time: 0.3 +pull_up_down: pull_up functionCall: functionCallPlayerPause [Shutdown] enabled: False Type: Button Pin: 3 -pull_up: True -hold_time: 2 +pull_up_down: pull_up functionCall: functionCallShutdown [Volume0] enabled: False Type: Button Pin: 17 -pull_up: True -hold_time: 0.3 +pull_up_down: pull_up functionCall: functionCallVol0 [VolumeUp] enabled: False Type: Button Pin: 16 -pull_up: True +pull_up_down: pull_up hold_time: 0.3 hold_repeat: True functionCall: functionCallVolU @@ -62,7 +59,7 @@ functionCall: functionCallVolU enabled: False Type: Button Pin: 19 -pull_up: True +pull_up_down: pull_up hold_time: 0.3 hold_repeat: True functionCall: functionCallVolD @@ -71,45 +68,40 @@ functionCall: functionCallVolD enabled: False Type: Button Pin: 26 -pull_up: True -hold_time: 0.3 +pull_up_down: pull_up functionCall: functionCallPlayerNext [PrevSong] enabled: False Type: Button Pin: 20 -pull_up: True -hold_time: 0.3 +pull_up_down: pull_up functionCall: functionCallPlayerPrev [FastForward] enabled: false Type: Button Pin: 7 -pull_up: True -hold_time: 0.3 +pull_up_down: pull_up functionCall: functionCallPlayerSeekFwd [Rewind] enabled: false Type: Button Pin: 8 -pull_up: True -hold_time: 0.3 +pull_up_down: pull_up functionCall: functionCallPlayerSeekBack [Halt] enabled: False Type: Button Pin: 25 -pull_up: True -hold_time: 0.3 +pull_up_down: pull_up functionCall: functionCallPlayerPauseForce [RFIDDevice] enable: True Type: Button Pin: 21 -pull_up: True +pull_up_down: pull_up functionCall: functionCallPlayerStop diff --git a/components/gpio_control/example_configs/gpio_settings_rotary_and_led.ini b/components/gpio_control/example_configs/gpio_settings_rotary_and_led.ini index 206fc4b0d..3e89195c8 100644 --- a/components/gpio_control/example_configs/gpio_settings_rotary_and_led.ini +++ b/components/gpio_control/example_configs/gpio_settings_rotary_and_led.ini @@ -36,7 +36,6 @@ hold_repeat: False enabled: False Type: Button Pin: 3 -hold_time: 2 functionCall: functionCallShutdown @@ -44,7 +43,7 @@ functionCall: functionCallShutdown enable: True Type: Button Pin: 27 -pull_up: True +pull_up_down: pull_up functionCall: functionCallPlayerPause [StatusLED] diff --git a/components/gpio_control/example_configs/gpio_settings_test.ini b/components/gpio_control/example_configs/gpio_settings_test.ini index a1ab63273..8d9c9adfc 100644 --- a/components/gpio_control/example_configs/gpio_settings_test.ini +++ b/components/gpio_control/example_configs/gpio_settings_test.ini @@ -37,21 +37,23 @@ hold_repeat: False enabled: True Type: ShutdownButton Pin: 3 -hold_time: 2 +time_pressed: 2 +iteration_time: 0.2 +; led_pin: <GPIO no. of attached LED>, if LED used functionCall: functionCallShutdown [Volume0] enabled: False Type: Button Pin: 13 -pull_up: True +pull_up_down: pull_up functionCall: functionCallVol0 [VolumeUp] enabled: False Type: Button Pin: 16 -pull_up: True +pull_up_down: pull_up hold_time: 0.3 hold_repeat: True functionCall: functionCallVolU @@ -60,23 +62,24 @@ functionCall: functionCallVolU enabled: False Type: Button Pin: 19 -pull_up: True +pull_up_down: pull_up hold_time: 0.3 hold_repeat: True + [NextSong] enabled: False Type: Button Pin: 26 -pull_up: True +pull_up_down: pull_up [PrevSong] enabled: False Type: Button Pin: 20 -pull_up: True +pull_up_down: pull_up [Halt] enabled: False Type: Button Pin: 21 -pull_up: True +pull_up_down: pull_up diff --git a/components/gpio_control/gpio_control.py b/components/gpio_control/gpio_control.py index 3966d84f7..ddd8634bf 100755 --- a/components/gpio_control/gpio_control.py +++ b/components/gpio_control/gpio_control.py @@ -76,8 +76,9 @@ def generate_device(self, config, deviceName): name=deviceName, bouncetime=config.getint('bouncetime', fallback=500), edge=config.get('edge', fallback='FALLING'), - hold_repeat=config.getboolean('hold_repeat', False), - hold_time=config.getfloat('hold_time', fallback=0.3), + time_pressed=config.getfloat('time_pressed', fallback=2.0), + iteration_time=config.getfloat('iteration_time', fallback=0.2), + led_pin=config.getint('led_pin', fallback=None), pull_up_down=config.get('pull_up_down', fallback=GPIO.PUD_UP)) self.logger.warning('cannot find {}'.format(deviceName)) return None diff --git a/components/gpio_control/test/gpio_settings_test.ini b/components/gpio_control/test/gpio_settings_test.ini index b305446fe..a2795f057 100644 --- a/components/gpio_control/test/gpio_settings_test.ini +++ b/components/gpio_control/test/gpio_settings_test.ini @@ -38,7 +38,9 @@ hold_repeat: False enabled: True Type: ShutdownButton Pin: 3 -hold_time: 2 +time_pressed: 2 +iteration_time: 0.2 +; led_pin: <GPIO no. of attached LED>, if LED used functionCall: functionCallShutdown [Volume0] From 5eba635ce166316c91d436acecb8c904fb4c87dd Mon Sep 17 00:00:00 2001 From: Chris <75833833+ChisSoc@users.noreply.github.com> Date: Thu, 13 May 2021 21:56:38 +0200 Subject: [PATCH 120/206] Create future1.md --- .github/ISSUE_TEMPLATE/future1.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/future1.md diff --git a/.github/ISSUE_TEMPLATE/future1.md b/.github/ISSUE_TEMPLATE/future1.md new file mode 100644 index 000000000..12c7bea41 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/future1.md @@ -0,0 +1,8 @@ +--- +name: Future1 Development Issue +about: Use this template when your are actively developing on the Future +title: "ISSUE SUMMARY on Future1" +labels: future1, bug, needs triage +--- + +## Issue in Future1 Branch From c40c7103998f1e470f8f94a4ee34635da0da8d08 Mon Sep 17 00:00:00 2001 From: ChisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Sat, 15 May 2021 07:15:00 +0200 Subject: [PATCH 121/206] Workflows for Future3 --- .github/ISSUE_TEMPLATE/future1.md | 8 ---- .github/ISSUE_TEMPLATE/future3.md | 8 ++++ .github/workflows/dockerimage.yml | 5 ++- .github/workflows/pythonpackage.yml | 5 ++- .github/workflows/pythonpackage_future3.yml | 46 +++++++++++++++++++++ 5 files changed, 62 insertions(+), 10 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/future1.md create mode 100644 .github/ISSUE_TEMPLATE/future3.md create mode 100644 .github/workflows/pythonpackage_future3.yml diff --git a/.github/ISSUE_TEMPLATE/future1.md b/.github/ISSUE_TEMPLATE/future1.md deleted file mode 100644 index 12c7bea41..000000000 --- a/.github/ISSUE_TEMPLATE/future1.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: Future1 Development Issue -about: Use this template when your are actively developing on the Future -title: "ISSUE SUMMARY on Future1" -labels: future1, bug, needs triage ---- - -## Issue in Future1 Branch diff --git a/.github/ISSUE_TEMPLATE/future3.md b/.github/ISSUE_TEMPLATE/future3.md new file mode 100644 index 000000000..a2a2d7c32 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/future3.md @@ -0,0 +1,8 @@ +--- +name: Future3 Development Issue +about: For developing issues on Future3 (Version 3 pre-development) +title: "ISSUE SUMMARY on Future3" +labels: future3, bug, needs triage +--- + +## Issue in Future3 diff --git a/.github/workflows/dockerimage.yml b/.github/workflows/dockerimage.yml index 5e29d663c..20b0a4ba3 100644 --- a/.github/workflows/dockerimage.yml +++ b/.github/workflows/dockerimage.yml @@ -1,6 +1,9 @@ name: Test Install Scripts on Docker -on: [push] +on: + push: + branches-ignore: + - 'future3/**' jobs: diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index 7e7eddd9d..262748e99 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -1,6 +1,9 @@ name: Python Checks and Tests -on: [push] +on: + push: + branches-ignore: + - 'future3/**' jobs: build: diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml new file mode 100644 index 000000000..1af689ba3 --- /dev/null +++ b/.github/workflows/pythonpackage_future3.yml @@ -0,0 +1,46 @@ +name: Python Checks and Tests + +on: + push: + branches: + - 'future3/**' + paths: + - '**.py' + - '**.py.*' + pull_request: + branches: + - 'future3/**' + paths: + - '**.py' + - '**.py.*' + +jobs: + build: + + runs-on: ubuntu-latest + strategy: + max-parallel: 4 + matrix: + python-version: [3.6, 3.7, 3.8] + + steps: + - uses: actions/checkout@v1 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v1 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get -y libasound2-dev + python -m pip install --upgrade pip + pip install wheel + pip install spidev + pip install -r src/jukebox/requirements.txt + - name: Lint with flake8 + run: | + pip install flake8 + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics --filename=*.py,*.py.* + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics --filename=*.py,*.py.* From 88931b18970804c05fb1205b3e7e29c0253d1a51 Mon Sep 17 00:00:00 2001 From: T0bi79 <51325380+T0bi79@users.noreply.github.com> Date: Sat, 15 May 2021 07:57:34 +0200 Subject: [PATCH 122/206] Bringing back prior (and new) button long-press actions (+extended documentation) (#1406) * Added an optional countermeasure against button bouncing effects (can be switched on via the config); Enhanced verbosity of Button status on console output. * Updated ShutdownButton: - Optimized control logic (iteration_time was formerly forced to 200ms ignoring the config value) - Renamed time_pressed to hold_time to match the corresponding name in SimpleButton base class - Pass-through of antibounce feature - Enhanced verbosity of ShutdownButton status on console output. * Introduced support for different modes on button hold: Changed hold_repeat flag (True/False) to hold_mode (textual). "hold_repeat = True" is "hold_mode = Repeat" now. Added new hold_mode "Postpone" (as possible in earlier PhonieBox versions) * Added new hold_mode "SecondFunc" for a different action after hold_time (as possible in earlier PhonieBox versions) * Added new hold_mode "SecondFuncRepeated" for repeated executions of a different action after hold_time * Updated TwoButtonControl: - Pass-through of all relevant SimpleButton base parameters - Enhanced verbosity of TwoButtonControl status on console output - Updated VolumeControl.py (though this file is completely superfluous / redundant IMHO) * Added more detailed GPIO component documentation to README.MD Fixed several typos and issues in several ini files * Added more functions that can be called by GPIO controls like buttons. Extended documentation, e.g. more example configurations. * Added auto-conversion of old/deprecated syntax within gpiocontrol.ini entries. Removed special (and redundant) handling for controls if (and only if) the corresponding config sections is named "VolumeControl" * Added the __init__.py I just forgot... --- .../gpio_control/GPIODevices/VolumeControl.py | 27 -- .../gpio_control/GPIODevices/__init__.py | 1 - .../GPIODevices/shutdown_button.py | 40 +-- .../gpio_control/GPIODevices/simple_button.py | 123 ++++++--- .../GPIODevices/two_button_control.py | 51 ++-- components/gpio_control/README.md | 249 +++++++++++++++++- .../gpio_control/config_compatibility.py | 87 ++++++ .../gpio_setting_rotary_vol_prevnext.ini | 2 +- .../example_configs/gpio_settings.ini | 36 ++- .../gpio_settings_rotary_and_led.ini | 12 +- .../gpio_settings_status_led.ini | 2 +- .../example_configs/gpio_settings_test.ini | 10 +- components/gpio_control/function_calls.py | 15 ++ components/gpio_control/gpio_control.py | 40 +-- .../gpio_control/test/gpio_settings_test.ini | 27 +- .../gpio_control/test/test_SimpleButton.py | 2 +- .../test/test_TwoButtonControl.py | 10 +- 17 files changed, 558 insertions(+), 176 deletions(-) delete mode 100644 components/gpio_control/GPIODevices/VolumeControl.py create mode 100644 components/gpio_control/config_compatibility.py diff --git a/components/gpio_control/GPIODevices/VolumeControl.py b/components/gpio_control/GPIODevices/VolumeControl.py deleted file mode 100644 index 47997a2b4..000000000 --- a/components/gpio_control/GPIODevices/VolumeControl.py +++ /dev/null @@ -1,27 +0,0 @@ -from GPIODevices import TwoButtonControl, RotaryEncoder -# from gpio_control import logger, getFunctionCall - - -class VolumeControl: - def __new__(self, config, getFunctionCall, logger): - if config.get('Type') == 'TwoButtonControl': - logger.info('VolumeControl as TwoButtonControl') - return TwoButtonControl( - config.getint('pinUp'), - config.getint('pinDown'), - getFunctionCall(config.get('functionCallUp')), - getFunctionCall(config.get('functionCallDown')), - functionCallTwoBtns=getFunctionCall(config.get('functionCallTwoButtons')), - pull_up=config.getboolean('pull_up', fallback=True), - hold_repeat=config.getboolean('hold_repeat', fallback=True), - hold_time=config.getfloat('hold_time', fallback=0.3), - name='VolumeControl' - ) - elif config.get('Type') == 'RotaryEncoder': - return RotaryEncoder( - config.getint('pinUp'), - config.getint('pinDown'), - getFunctionCall(config.get('functionCallUp')), - getFunctionCall(config.get('functionCallDown')), - config.getfloat('timeBase', fallback=0.1), - name='RotaryVolumeControl') diff --git a/components/gpio_control/GPIODevices/__init__.py b/components/gpio_control/GPIODevices/__init__.py index 445ac80c7..5eaad3009 100644 --- a/components/gpio_control/GPIODevices/__init__.py +++ b/components/gpio_control/GPIODevices/__init__.py @@ -3,5 +3,4 @@ from .shutdown_button import ShutdownButton from .simple_button import SimpleButton from .two_button_control import TwoButtonControl -from .VolumeControl import VolumeControl from .led import * diff --git a/components/gpio_control/GPIODevices/shutdown_button.py b/components/gpio_control/GPIODevices/shutdown_button.py index d9ef7218a..30ba26b6f 100644 --- a/components/gpio_control/GPIODevices/shutdown_button.py +++ b/components/gpio_control/GPIODevices/shutdown_button.py @@ -1,25 +1,24 @@ -import math import time from RPi import GPIO import logging try: - from simple_button import SimpleButton + from simple_button import SimpleButton, print_edge_key, print_pull_up_down except ImportError: - from .simple_button import SimpleButton + from .simple_button import SimpleButton, print_edge_key, print_pull_up_down logger = logging.getLogger(__name__) class ShutdownButton(SimpleButton): - def __init__(self, pin, action=lambda *args: None, name=None, bouncetime=500, edge=GPIO.FALLING, - led_pin=None, time_pressed=2, pull_up_down=GPIO.PUD_UP, iteration_time=.2): + def __init__(self, pin, action=lambda *args: None, name=None, bouncetime=500, antibouncehack=False, edge='falling', + led_pin=None, hold_time=3.0, pull_up_down='pull_up', iteration_time=.2): self.led_pin = led_pin - self.time_pressed = time_pressed self.iteration_time = iteration_time if self.led_pin is not None: GPIO.setup(self.led_pin, GPIO.OUT) - super(ShutdownButton, self).__init__(pin=pin, action=action, name=name, bouncetime=bouncetime, edge=edge, + super(ShutdownButton, self).__init__(pin=pin, action=action, name=name, bouncetime=bouncetime, + antibouncehack=antibouncehack, edge=edge, hold_time=hold_time, pull_up_down=pull_up_down ) pass @@ -35,21 +34,22 @@ def set_led(self, status): logger.debug('cannot set LED to {}: no LED pin defined'.format(status)) def callbackFunctionHandler(self, *args): - cancelled = False - n_checks = math.ceil(self.time_pressed / self.iteration_time) - logger.debug('ShutdownButton pressed, ensuring long press for {} seconds, checking each {}s: {}'.format( - self.time_pressed, self.iteration_time, n_checks + logger.debug('ShutdownButton pressed, ensuring long press for {} seconds, checking each {}s'.format( + self.hold_time, self.iteration_time )) - for x in range(n_checks): - self.set_led(x & 1) - time.sleep(.2) - cancelled = not self.is_pressed - if cancelled: + t_passed = 0 + led_state = True + while t_passed < self.hold_time: + self.set_led(led_state) + time.sleep(self.iteration_time) + t_passed += self.iteration_time + led_state = not led_state + if not self.is_pressed: break - if not cancelled: + if t_passed >= self.hold_time: # trippel off period to indicate command accepted - time.sleep(.6) self.set_led(GPIO.HIGH) + time.sleep(.6) # leave it on for the moment, it will be off when the system is down self.when_pressed(*args) else: @@ -57,6 +57,6 @@ def callbackFunctionHandler(self, *args): self.set_led(GPIO.LOW) def __repr__(self): - return '<ShutdownButton-{}(pin {},time_pressed={},iteration_time={},led_pin={})>'.format( - self.name, self.pin, self.time_pressed, self.iteration_time, self.led_pin + return '<ShutdownButton-{}(pin={},hold_time={},iteration_time={},led_pin={},edge={},bouncetime={},antibouncehack={},pull_up_down={})>'.format( + self.name, self.pin, self.hold_time, self.iteration_time, self.led_pin, print_edge_key(self.edge), self.bouncetime,self.antibouncehack, print_pull_up_down(self.pull_up_down) ) diff --git a/components/gpio_control/GPIODevices/simple_button.py b/components/gpio_control/GPIODevices/simple_button.py index f2e43c87d..69b6e3407 100644 --- a/components/gpio_control/GPIODevices/simple_button.py +++ b/components/gpio_control/GPIODevices/simple_button.py @@ -6,34 +6,44 @@ logger = logging.getLogger(__name__) +map_edge_parse = {'falling':GPIO.FALLING, 'rising':GPIO.RISING, 'both':GPIO.BOTH} +map_pull_parse = {'pull_up':GPIO.PUD_UP, 'pull_down':GPIO.PUD_DOWN, 'pull_off':GPIO.PUD_OFF} +map_edge_print = {GPIO.FALLING: 'falling', GPIO.RISING: 'rising', GPIO.BOTH: 'both'} +map_pull_print = {GPIO.PUD_UP:'pull_up', GPIO.PUD_DOWN: 'pull_down', GPIO.PUD_OFF: 'pull_off'} def parse_edge_key(edge): if edge in [GPIO.FALLING, GPIO.RISING, GPIO.BOTH]: - edge - elif edge.lower() == 'falling': - edge = GPIO.FALLING - elif edge.lower() == 'raising': - edge = GPIO.RISING - elif edge.lower() == 'both': - edge = GPIO.BOTH - else: + return edge + try: + result = map_edge_parse[edge.lower()] + except KeyError: + result = edge raise KeyError('Unknown Edge type {edge}'.format(edge=edge)) - return edge - + return result def parse_pull_up_down(pull_up_down): if pull_up_down in [GPIO.PUD_UP, GPIO.PUD_DOWN, GPIO.PUD_OFF]: - pull_up_down - elif pull_up_down.lower() == 'pull_up': - pull_up_down = GPIO.PUD_UP - elif pull_up_down.lower() == 'pull_down': - pull_up_down = GPIO.PUD_DOWN - elif pull_up_down.lower() == 'pull_off': - pull_up_down = GPIO.PUD_OFF - else: + return pull_up_down + try: + result = map_pull_parse[pull_up_down] + except KeyError: + result = pull_up_down raise KeyError('Unknown Pull Up/Down type {pull_up_down}'.format(pull_up_down=pull_up_down)) - return pull_up_down - + return result + +def print_edge_key(edge): + try: + result = map_edge_print[edge] + except KeyError: + result = edge + return result + +def print_pull_up_down(pull_up_down): + try: + result = map_pull_print[pull_up_down] + except KeyError: + result = pull_up_down + return result # This function takes a holding time (fractional seconds), a channel, a GPIO state and an action reference (function). # It checks if the GPIO is in the state since the function was called. If the state @@ -43,6 +53,7 @@ def checkGpioStaysInState(holdingTime, gpioChannel, gpioHoldingState): startTime = time.perf_counter() # Continously check if time is not over while True: + time.sleep(0.1) currentState = GPIO.input(gpioChannel) if holdingTime < (time.perf_counter() - startTime): break @@ -57,19 +68,21 @@ def checkGpioStaysInState(holdingTime, gpioChannel, gpioHoldingState): class SimpleButton: - def __init__(self, pin, action=lambda *args: None, name=None, bouncetime=500, edge=GPIO.FALLING, - hold_time=.1, hold_repeat=False, pull_up_down=GPIO.PUD_UP): + def __init__(self, pin, action=lambda *args: None, action2=lambda *args: None, name=None, + bouncetime=500, antibouncehack=False, edge='falling', hold_time=.3, hold_mode=None, pull_up_down='pull_up'): self.edge = parse_edge_key(edge) self.hold_time = hold_time - self.hold_repeat = hold_repeat + self.hold_mode = hold_mode self.pull_up = True self.pull_up_down = parse_pull_up_down(pull_up_down) self.pin = pin self.name = name self.bouncetime = bouncetime + self.antibouncehack = antibouncehack GPIO.setup(self.pin, GPIO.IN, pull_up_down=self.pull_up_down) self._action = action + self._action2 = action2 GPIO.add_event_detect(self.pin, edge=self.edge, callback=self.callbackFunctionHandler, bouncetime=self.bouncetime) self.callback_with_pin_argument = False @@ -80,37 +93,71 @@ def callbackFunctionHandler(self, *args): args = args[1:] logger.debug('args after: {}'.format(args)) - if self.hold_repeat: - return self.holdAndRepeatHandler(*args) - logger.info('{}: execute callback'.format(self.name)) - return self.when_pressed(*args) + if self.antibouncehack: + time.sleep(0.1) + inval = GPIO.input(self.pin) + if inval != GPIO.LOW: + return None + + if self.hold_mode in ('Repeat', 'Postpone', 'SecondFunc', 'SecondFuncRepeat'): + return self.longPressHandler(*args) + else: + logger.info('{}: execute callback'.format(self.name)) + return self.when_pressed(*args) @property def when_pressed(self): logger.info('{}: action'.format(self.name)) return self._action + @property + def when_held(self): + logger.info('{}: action2'.format(self.name)) + return self._action2 + @when_pressed.setter def when_pressed(self, func): logger.info('{}: set when_pressed') self._action = func GPIO.remove_event_detect(self.pin) - self._action = func logger.info('add new action') GPIO.add_event_detect(self.pin, edge=self.edge, callback=self.callbackFunctionHandler, bouncetime=self.bouncetime) def set_callbackFunction(self, callbackFunction): self.when_pressed = callbackFunction - def holdAndRepeatHandler(self, *args): - logger.info('{}: holdAndRepeatHandler'.format(self.name)) - # Rise volume as requested - self.when_pressed(*args) - # Detect holding of button - while checkGpioStaysInState(self.hold_time, self.pin, GPIO.LOW): + def longPressHandler(self, *args): + logger.info('{}: longPressHandler, mode: {}'.format(self.name, self.hold_mode)) + # instant action (except Postpone mode) + if self.hold_mode != "Postpone": self.when_pressed(*args) - + + # action(s) after hold_time + if self.hold_mode == "Repeat": + # Repeated call of main action (multiple times if button is held long enough) + while checkGpioStaysInState(self.hold_time, self.pin, GPIO.LOW): + self.when_pressed(*args) + + elif self.hold_mode == "Postpone": + # Postponed call of main action (once) + if checkGpioStaysInState(self.hold_time, self.pin, GPIO.LOW): + self.when_pressed(*args) + while checkGpioStaysInState(self.hold_time, self.pin, GPIO.LOW): + pass + + elif self.hold_mode == "SecondFunc": + # Call of secondary action (once) + if checkGpioStaysInState(self.hold_time, self.pin, GPIO.LOW): + self.when_held(*args) + while checkGpioStaysInState(self.hold_time, self.pin, GPIO.LOW): + pass + + elif self.hold_mode == "SecondFuncRepeat": + # Repeated call of secondary action (multiple times if button is held long enough) + while checkGpioStaysInState(self.hold_time, self.pin, GPIO.LOW): + self.when_held(*args) + def __del__(self): logger.debug('remove event detection') GPIO.remove_event_detect(self.pin) @@ -122,8 +169,8 @@ def is_pressed(self): return GPIO.input(self.pin) def __repr__(self): - return '<SimpleButton-{}(pin {},hold_repeat={},hold_time={})>'.format( - self.name, self.pin, self.hold_repeat, self.hold_time + return '<SimpleButton-{}(pin={},edge={},hold_mode={},hold_time={},bouncetime={},antibouncehack={},pull_up_down={})>'.format( + self.name, self.pin, print_edge_key(self.edge), self.hold_mode, self.hold_time, self.bouncetime,self.antibouncehack,print_pull_up_down(self.pull_up_down) ) @@ -131,5 +178,5 @@ def __repr__(self): print('please enter pin no to test') pin = int(input()) func = lambda *args: print('FunctionCall with {}'.format(args)) - btn = SimpleButton(pin=pin, action=func, hold_repeat=True) + btn = SimpleButton(pin=pin, action=func, hold_mode='Repeat') pause() diff --git a/components/gpio_control/GPIODevices/two_button_control.py b/components/gpio_control/GPIODevices/two_button_control.py index 702b6a79d..d4ceb0a11 100644 --- a/components/gpio_control/GPIODevices/two_button_control.py +++ b/components/gpio_control/GPIODevices/two_button_control.py @@ -1,7 +1,7 @@ try: - from simple_button import SimpleButton + from simple_button import SimpleButton, print_edge_key, print_pull_up_down except ImportError: - from .simple_button import SimpleButton + from .simple_button import SimpleButton, print_edge_key, print_pull_up_down from RPi import GPIO import logging logger = logging.getLogger(__name__) @@ -59,32 +59,43 @@ def __init__(self, functionCallBtn1, functionCallBtn2, functionCallTwoBtns=None, - pull_up=True, - hold_repeat=True, + pull_up_down='pull_up', + hold_mode=None, hold_time=0.3, + bouncetime=500, + antibouncehack=False, + edge='falling', name='TwoButtonControl'): + self.bcmPin1 = bcmPin1 + self.bcmPin2 = bcmPin2 self.functionCallBtn1 = functionCallBtn1 self.functionCallBtn2 = functionCallBtn2 self.functionCallTwoBtns = functionCallTwoBtns - self.bcmPin1 = bcmPin1 - self.bcmPin2 = bcmPin2 + self.pull_up_down=pull_up_down + self.hold_mode=hold_mode + self.hold_time=hold_time + self.bouncetime=bouncetime + self.antibouncehack=antibouncehack + self.edge=edge self.btn1 = SimpleButton( pin=bcmPin1, - action=lambda *args: None, name=name + 'Btn1', - bouncetime=500, - edge=GPIO.FALLING, + bouncetime=bouncetime, + antibouncehack=antibouncehack, + edge=edge, hold_time=hold_time, - hold_repeat=hold_repeat) + hold_mode=hold_mode, + pull_up_down=pull_up_down) self.btn1.callback_with_pin_argument = True self.btn2 = SimpleButton(pin=bcmPin2, - action=lambda *args: None, - hold_time=hold_time, - hold_repeat=hold_repeat, name=name + 'Btn2', - bouncetime=500, - edge=GPIO.FALLING) + bouncetime=bouncetime, + antibouncehack=antibouncehack, + edge=edge, + hold_time=hold_time, + hold_mode=hold_mode, + pull_up_down=pull_up_down) self.btn2.callback_with_pin_argument = True generatedTwoButtonFunctionCall = functionCallTwoButtons(self.btn1, self.btn2, @@ -100,11 +111,11 @@ def __init__(self, def __repr__(self): two_btns_action = self.functionCallTwoBtns is not None - return '<TwoBtnControl-{name}({bcmPin1}, {bcmPin2},two_buttons_action={two_btns_action})>'.format( - name=self.name, - bcmPin1=self.bcmPin1, - bcmPin2=self.bcmPin2, - two_btns_action=two_btns_action + return '<TwoBtnControl-{}({}, {},two_buttons_action={},hold_mode={},hold_time={},edge={},bouncetime={},antibouncehack={},pull_up_down={})>'.format( + self.name, self.bcmPin1, self.bcmPin2, two_btns_action, + self.hold_mode, self.hold_time, print_edge_key(self.edge), + self.bouncetime, self.antibouncehack, + print_pull_up_down(self.pull_up_down) ) diff --git a/components/gpio_control/README.md b/components/gpio_control/README.md index 5851b9baa..9e4477cbe 100644 --- a/components/gpio_control/README.md +++ b/components/gpio_control/README.md @@ -15,17 +15,252 @@ In the following the different devices are described. Each device can have actions which correspond to function calls. Up to now the following input devices are implemented: * **Button**: - A simple button which has a hold and repeat functionality as well as a delayed action. - It can be configured using the keywords: Pin (**use GPIO number here**), hold_time, functionCall + A simple button with optional long-press actions like hold and repeat functionality or delayed action. + Its main parameters are: `Pin` (use GPIO number here) and `functionCall`. For additional options, see [extended documentation below](#doc_button). + +* **ShutdownButton**: + A specialized implementation for a shutdown button with integrated (but optional) LED support. It initializes a shutdown if the button is pressed more than `time_pressed` seconds and a (optional) LED on GPIO `led_pin` is flashing until that time is reached. For additional information, see [extended documentation below](#doc_sdbutton). * **RotaryEncoder**: - Control of a rotary encoder, for example KY040, see also in - [Wiki](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Audio-RotaryKnobVolume) - it can be configured using pinA (**use GPIO number here**), pinB (**use GPIO number here**), functionCallIncr, functionCallDecr, timeBase=0.1 + Control of a rotary encoder, for example KY040, see also in [Wiki](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Audio-RotaryKnobVolume). + It can be configured using `pinUp` and `PiNDown` (use GPIO numbers here), `functionCallUp`, `functionCallDown`, and `timeBase` see [extended documentation below](#doc_rotary). * **TwoButtonControl**: - This Device uses two Buttons and implements a third action if both buttons are pressed together. - + This Device uses two Buttons and implements a third action if both buttons are pressed together. See [extended documentation below](#doc_twobutton). + +* **StatusLED**: + A LED which will light up once the Phoniebox has fully booted up and is ready to be used. For additional information, see [extended documentation below](#doc_sled). + Each section needs to be activated by setting `enabled: True`. Many example files are located in `~/RPi-Jukebox-RFID/components/gpio_control/example_configs/`. + +# Extended documentation +This section provides some extended documentation and guideline. Especially some exemplary configurations are introduced showing how these controls can be set up in the configuration file `~/RPi-Jukebox-RFID/settings/gpio_settings.ini`. + +## Button<a name="doc_button"></a> +At the most basic level, a button can be created using an `ini` entry like this: +``` +[PlayPause] +enabled: True +Type: Button +Pin: 27 +functionCall: functionCallPlayerPause +``` +* **enabled**: This needs to be `True` for the button to work. +* **Pin**: GPIO number +* **functionCall**: The function that you want to be called on a button press. See [function documentation below](#doc_funcs). + +However, a button has more parameters than these. In the following comprehensive list you can also find the default values which are used automatically if you leave out these settings: +* **hold_mode**: Specifies what shall happen if the button is held pressed for longer than `hold_time`: + * `None` (Default): Nothing special will happen. + * `Repeat`: The configured `functionCall` is repeated after each `hold_time` interval. + * `Postpone`: The function will not be called before `hold_time`, i.e. the button needs to be pressed this long to activate the function + * `SecondFunc`: Holding the button for at least `hold_time` will additionally execute the function `functionCall2`. + * `SecondFuncRepeat`: Like SecondFunc, but `functionCall2` is repeated after each `hold_time` interval. + + In every `hold_mode` except `Postpone`, the main action `functionCall` gets executed instantly. + + Holding the button even longer than `hold_time` will cause no further action unless you are in the `Repeat` or `SecondFuncRepeat` mode. + +* **hold_time**: Reference time for this buttons `hold_mode` feature in seconds. Default is `0.3`. This setting is ignored if `hold_mode` is unset or `None` +* **functionCall2**: Secondary function; default is `None`. This setting is ignored unless `hold_mode` is set to `SecondFunc` or `SecondFuncRepeat`. +* **pull_up_down**: Configures the internal Pull up/down resistors. Valid settings: + * `pull_up` (Default). Internal pull-up resistors are activated. Use this if you attached a button to `GND` to the GPIO pin without any external pull-up resistor. + * `pull_down`. Use this if you need the internal pull-down resistor activated. + * `pull_off`. Use this to deactivate internal pull-up/pulldown resistors. This is useful if your wiring includes your own (external) pull up / down resistors. +* **edge**: Configures the events in which the GPIO library shall trigger the callback function. Valid settings: + * `falling` (Default). Triggers if the GPIO voltage goes down. + * `rising`. Trigegrs only if the GPIO voltage goes up. + * `both`. Triggers in both cases. +* **bouncetime**: This is a setting of the GPIO library to limit bouncing effects during button usage. Default is `500` ms. +* **antibouncehack**: Despite the integrated bounce reduction of the GPIO library some users may notice false triggers of their buttons (e.g. unrequested / double actions when releasing the button. If you encounter such problems, try setting this setting to `True` to activate an additional countermeasure. + +Note: If you prefer, you may also use `Type: SimpleButton` instead of `Type: Button` - this makes no difference. + +## ShutdownButton<a name="doc_sdbutton"></a> +An extended ShutdownButton can be created using an `ini` entry like these: +``` +[Shutdown_without_LED] +enabled: True +Type: ShutdownButton +Pin: 3 + +[Shutdown_with_LED] +enabled: True +Type: ShutdownButton +Pin: 3 +led_pin: 17 +``` +* **enabled**: This needs to be `True` for the extended shutdown button to work. +* **Pin**: GPIO number of the button +* **led_pin**: GPIO number of the LED (Default is `None`). Note that you should not attach LEDs to GPIO ports without a matching resistor in line. + +Again, there are more parameters than these. In the following comprehensive list you can also find the default values which are used automatically if you leave out these settings: +* **hold_time**: This parameter controls how many seconds (default: `3.0`) the button has to be hold until shutdown will be initiated. +* **iteration_time**: This parameter determines the flashing speed of the LED indicator. Default value is `0.2` seconds. +* **functionCall**: While the default action is `functionCallShutdown`, you might use this button type even with other functions than system shutdown (again, see [function documentation below](#doc_funcs) for a list of available functions). + +Furthermore, the following settings can be used as described for the [regular buttons](#doc_button): **pull_up_down**, **edge**, **bouncetime**, **antibouncehack** + +Note that using a ShutdownButton without a LED can also be implemented with a normal button like this: + +``` +[Shutdown] +enabled: True +Type: Button +Pin: 3 +hold_mode: Postpone +hold_time: 3.0 +functionCall: functionCallShutdown +``` + +## TwoButtonControl<a name="doc_twobutton"></a> +A TwoButtonControl can be created using an `ini` entry like this: + +``` +[PrevNextStop] +enabled: True +Type: TwoButtonControl +Pin1: 24 +Pin2: 25 +functionCall1: functionCallPlayerNext +functionCall2: functionCallPlayerPrev +functionCallTwoButtons: functionCallPlayerStop +``` +In this example, you can navigate to the previous or, respectively next track by pushing the respective button. If you push both buttons simultaneously, the player stops. + +It is possible to combine the TwoButtonControl with the Repeat mode, e.g. to increment the volume further while the button keeps getting held: +``` +[VolumeControl] +enabled: True +Type: TwoButtonControl +Pin1: 5 +Pin2: 6 +hold_mode: Repeat +hold_time: 0.3 +functionCall1: functionCallVolU +functionCall2: functionCallVolD +functionCallTwoButtons: functionCallVol0 +``` +In this example, the volume will be in-/decreased step-wise using intervals of 0.3 seconds while the respective button is held. If both buttons are pushed simultaneously, the player is muted (volume 0). In this example, Pin1 is used for increasing the volume, while Pin2 decreases it. + +Furthermore, the following settings can be used as described for the [regular buttons](#doc_button): **pull_up_down**, **edge**, **bouncetime**, **antibouncehack** + + +## RotaryEncoder<a name="doc_rotary"></a> +A RotaryEncoder can be created using an `ini` entry like this: +``` +[VolumeControl] +enabled: True +Type: RotaryEncoder +Pin1: 7 +Pin2: 8 +timeBase: 0.02 +functionCall1: functionCallVolU +functionCall2: functionCallVolD +``` + +Pin1 and FunctionCall1 correspond to rotary direction "up", while Pin2 and FunctionCall2 correspond to "down". +Note that the old configuration entries PinUp/PinDown and functionCallUp/functionCallDown are deprecated and might stop working in future. + +## StatusLED<a name="doc_sled"></a> +A StatusLED can be created using an `ini` entry like this: +``` +[StatusLED] +enabled: True +Type: StatusLED +Pin: 14 +``` +* **Pin**: GPIO number of the LED (mandatory option). Note that you should not attach LEDs to GPIO ports without a matching resistor in line. + +Note: If you prefer, you may also use `Type: MPDStatusLED` instead of `Type: StatusLED` - this makes no difference. + +## Further examples +By tapping the potential of the features presented above, you can create buttons like this: + +### Play random tracks or folders +If you have buttons to navigate to the next/previous track it might be a good idea to define that holding these buttons for a certain time (e.g. 2 seconds) will activate a random (surpise!) track or even folder/card. This might look like this + +``` +[NextOrRand] +enabled: True +Type: Button +Pin: 24 +pull_up_down: pull_up +hold_time: 2.0 +hold_mode: SecondFunc +functionCall: functionCallPlayerNext +functionCall2: functionCallPlayerRandomTrack + +[PrevOrRand] +enabled: True +Type: Button +Pin: 25 +pull_up_down: pull_up +hold_time: 2.0 +hold_mode: SecondFunc +functionCall: functionCallPlayerPrev +functionCall2: functionCallPlayerRandomFolder +``` + +### Short and long jumps +If you are using two buttons to jump backwards or forwards within the current track, you can use the repeated hold action to allow larger jumps: +``` +[SkipForward] +enabled: True +Type: Button +Pin: 24 +pull_up_down: pull_up +hold_time: 5.0 +hold_mode: SecondFuncRepeat +functionCall: functionCallPlayerSeekFwd +functionCall2: functionCallPlayerSeekFarFwd +``` +In this example, a short press initiates a short jump forward by 10 seconds (functionCallPlayerSeekFwd) while holding the button will cause further, longer jumps. In this case it will cause a jump of 1 minute forward (functionCallPlayerSeekFarFwd) every 5 seconds. If you wish, you can adjust these values in `components/gpio_control/function_calls.py`. +For jumping backwards, this can be done equivalently (see [function list below](#doc_funcs)). + + +## Functions<a name="doc_funcs"></a> +The available functions are defined/implemented in `components/gpio_control/function_calls.py`: +* **functionCallShutdown**: System shutdown +* **functionCallVolU**: Volume up +* **functionCallVolD**: Volume down +* **functionCallVol0**: Mute +* **functionCallPlayerNext**: Next track +* **functionCallPlayerPrev**: Previous track +* **functionCallPlayerPauseForce**: Pause (forced) +* **functionCallPlayerPause**: Pause +* **functionCallRecordStart**: Start recording +* **functionCallRecordStop**: Stop recording +* **functionCallRecordPlayLatest**: Play latest recording +* **functionCallToggleWifi**: Toggle WIFI +* **functionCallPlayerStop**: Stop Player +* **functionCallPlayerSeekFwd**: Seek 10 seconds forward +* **functionCallPlayerSeekBack**: Seek 10 seconds backward +* **functionCallPlayerSeekFarFwd**: Seek 1 minute forward +* **functionCallPlayerSeekFarBack**: Seek 1 minute backward +* **functionCallPlayerRandomTrack**: Jumps to random track (within current playlist) +* **functionCallPlayerRandomCard**: Activate a random card +* **functionCallPlayerRandomFolder**: Play a random folder + +## Troubleshooting<a name="doc_trouble"></a> +If you encounter bouncing effects with your buttons like unrequested/double actions after releasing a button, you can try to set `antibouncehack` to True: + +``` +[NextSong] +enabled: True +Type: Button +Pin: 26 +functionCall: functionCallPlayerNext +antibouncehack: True +``` + +Instead of adding this to each button, you can also define it as default for all elements, by inserting the statement into the `Default` section which can be found at the beginning of the `~/RPi-Jukebox-RFID/settings/gpio_settings.ini` file: + + +``` +[DEFAULT] +enabled: True +antibouncehack: True +``` diff --git a/components/gpio_control/config_compatibility.py b/components/gpio_control/config_compatibility.py new file mode 100644 index 000000000..62922c299 --- /dev/null +++ b/components/gpio_control/config_compatibility.py @@ -0,0 +1,87 @@ +#!/usr/bin/env python3 +import configparser +import os +from shutil import copyfile + +def Ini_CheckAndUpgrade(config): + has_changed = False + for section in config.sections(): + # enable: True --> enabled: True + # enable: False --> enabled: False + if config.has_option(section, 'enable'): + v = config.getboolean(section, 'enable', fallback=False) + config.remove_option(section, 'enable') + has_changed = True + if not config.has_option(section, 'enabled'): + config.set(section, 'enabled', 'True' if v else 'False') + # pull_up: True --> pull_up_down: pull_up + # pull_up: False --> pull_up_down: pull_off + if config.has_option(section, 'pull_up'): + v = config.getboolean(section, 'pull_up', fallback=True) + config.remove_option(section, 'pull_up') + has_changed = True + if not config.has_option(section, 'pull_up_down'): + config.set(section, 'pull_up_down', 'pull_up' if v else 'pull_off') + # hold_repeat: True --> hold_mode: Repeat + # hold_repeat: False --> hold_mode: None + if config.has_option(section, 'hold_repeat'): + v = config.getboolean(section, 'hold_repeat', fallback=False) + config.remove_option(section, 'hold_repeat') + has_changed = True + if not config.has_option(section, 'hold_mode'): + config.set(section, 'hold_mode', 'Repeat' if v else 'None') + # time_pressed <float> --> hold_time <float> + if config.has_option(section, 'time_pressed'): + v = config.getfloat(section, 'time_pressed') + config.remove_option(section, 'time_pressed') + has_changed = True + if not config.has_option(section, 'hold_time'): + config.set(section, 'hold_time', str(v)) + #PinUp: <int> --> Pin1 <int> + #PinDown: <int> --> Pin2 <int> + if config.has_option(section, 'PinUp'): + v = config.getint(section, 'PinUp') + config.remove_option(section, 'PinUp') + has_changed = True + if not config.has_option(section, 'Pin1'): + config.set(section, 'Pin1', str(v)) + if config.has_option(section, 'PinDown'): + v = config.getint(section, 'PinDown') + config.remove_option(section, 'PinDown') + has_changed = True + if not config.has_option(section, 'Pin2'): + config.set(section, 'Pin2', str(v)) + # functionCallUp <String> --> functionCall1 <String> + # functionCallDown <String> --> functionCall2 <String> + if config.has_option(section, 'functionCallUp'): + v = config.get(section, 'functionCallUp') + config.remove_option(section, 'functionCallUp') + has_changed = True + if not config.has_option(section, 'functionCall1'): + config.set(section, 'functionCall1', v) + if config.has_option(section, 'functionCallDown'): + v = config.get(section, 'functionCallDown') + config.remove_option(section, 'functionCallDown') + has_changed = True + if not config.has_option(section, 'functionCall2'): + config.set(section, 'functionCall2', v) + + return has_changed + + +def ConfigCompatibilityChecks(config, config_path): + # Check for deprecated settings in gpio_settings.ini + if not Ini_CheckAndUpgrade(config): + return + + # If we reach here, gpio_settings.ini needed some patching... + + # Try creating a backup of the previous ini file + backup_path = config_path+'.bak' + if os.path.isfile(backup_path): + return + copyfile(config_path, backup_path) + + # Save fixed gpio_settings.ini + with open(config_path, 'w') as inifile: + config.write(inifile) diff --git a/components/gpio_control/example_configs/gpio_setting_rotary_vol_prevnext.ini b/components/gpio_control/example_configs/gpio_setting_rotary_vol_prevnext.ini index efc2f057b..31d2df340 100755 --- a/components/gpio_control/example_configs/gpio_setting_rotary_vol_prevnext.ini +++ b/components/gpio_control/example_configs/gpio_setting_rotary_vol_prevnext.ini @@ -27,7 +27,7 @@ edge: raising functionCall: functionCallShutdown [PlayPause] -enable: True +enabled: True Type: Button Pin: 25 pull_up_down: pull_up diff --git a/components/gpio_control/example_configs/gpio_settings.ini b/components/gpio_control/example_configs/gpio_settings.ini index c7e50485b..b05004c7a 100755 --- a/components/gpio_control/example_configs/gpio_settings.ini +++ b/components/gpio_control/example_configs/gpio_settings.ini @@ -1,16 +1,18 @@ [DEFAULT] enabled: True +antibouncehack: False + [VolumeControl] enabled: True Type: TwoButtonControl ;or RotaryEncoder -PinUp: 5 -PinDown: 6 -pull_up: True +Pin1: 5 +Pin2: 6 +pull_up_down: pull_up hold_time: 0.3 -hold_repeat: True +hold_mode: Repeat timeBase: 0.1 ;only for RotaryEncoder -functionCallDown: functionCallVolD -functionCallUp: functionCallVolU +functionCall1: functionCallVolU +functionCall2: functionCallVolD functionCallTwoButtons: functionCallVol0 ;only for TwoButtonControl [PrevNextControl] @@ -21,9 +23,9 @@ Pin2: 23 functionCall1: functionCallPlayerPrev functionCall2: functionCallPlayerNext functionCallTwoButtons: None -pull_up: True +pull_up_down: pull_up hold_time: 0.3 -hold_repeat: False +hold_mode: None [PlayPause] enabled: True @@ -37,8 +39,20 @@ enabled: False Type: Button Pin: 3 pull_up_down: pull_up +hold_mode: Postpone +hold_time: 2 functionCall: functionCallShutdown +[PauseShutdown] +enabled: False +Type: Button +Pin: 3 +pull_up_down: pull_up +hold_time: 2.0 +hold_mode: SecondFunc +functionCall: functionCallPlayerPause +functionCall2: functionCallShutdown + [Volume0] enabled: False Type: Button @@ -52,7 +66,7 @@ Type: Button Pin: 16 pull_up_down: pull_up hold_time: 0.3 -hold_repeat: True +hold_mode: Repeat functionCall: functionCallVolU [VolumeDown] @@ -61,7 +75,7 @@ Type: Button Pin: 19 pull_up_down: pull_up hold_time: 0.3 -hold_repeat: True +hold_mode: Repeat functionCall: functionCallVolD [NextSong] @@ -100,7 +114,7 @@ pull_up_down: pull_up functionCall: functionCallPlayerPauseForce [RFIDDevice] -enable: True +enabled: True Type: Button Pin: 21 pull_up_down: pull_up diff --git a/components/gpio_control/example_configs/gpio_settings_rotary_and_led.ini b/components/gpio_control/example_configs/gpio_settings_rotary_and_led.ini index 3e89195c8..303d0888d 100644 --- a/components/gpio_control/example_configs/gpio_settings_rotary_and_led.ini +++ b/components/gpio_control/example_configs/gpio_settings_rotary_and_led.ini @@ -7,9 +7,7 @@ enabled: True Type: RotaryEncoder PinUp: 17 PinDown: 22 -pull_up: True -hold_time: 0.3 -hold_repeat: True +pull_up_down: pull_up timeBase: 0.2 ; only for rotary encoder functionCallDown: functionCallVolD @@ -27,9 +25,9 @@ Pin2: 12 functionCall1: functionCallPlayerPrev functionCall2: functionCallPlayerNext functionCallTwoButtons: functionCallPlayerStop -pull_up: True +pull_up_down: pull_up hold_time: 0.3 -hold_repeat: False +hold_mode: None [Shutdown] @@ -40,13 +38,13 @@ functionCall: functionCallShutdown [PlayPause] -enable: True +enabled: True Type: Button Pin: 27 pull_up_down: pull_up functionCall: functionCallPlayerPause [StatusLED] -enable: True +enabled: True Type: MPDStatusLED Pin: 16 diff --git a/components/gpio_control/example_configs/gpio_settings_status_led.ini b/components/gpio_control/example_configs/gpio_settings_status_led.ini index 00b9d1d7f..68e6461b2 100644 --- a/components/gpio_control/example_configs/gpio_settings_status_led.ini +++ b/components/gpio_control/example_configs/gpio_settings_status_led.ini @@ -2,6 +2,6 @@ enabled: True [StatusLED] -enable: True +enabled: True Type: StatusLED Pin: 14 diff --git a/components/gpio_control/example_configs/gpio_settings_test.ini b/components/gpio_control/example_configs/gpio_settings_test.ini index 8d9c9adfc..79e365f61 100644 --- a/components/gpio_control/example_configs/gpio_settings_test.ini +++ b/components/gpio_control/example_configs/gpio_settings_test.ini @@ -28,16 +28,16 @@ Pin2: 3 functionCall1: functionCallPlayerPrev functionCall2: functionCallPlayerNext functionCallTwoButtons: None -pull_up: True +pull_up_down: pull_up hold_time: 0.3 -hold_repeat: False +hold_mode: None [Shutdown] enabled: True Type: ShutdownButton Pin: 3 -time_pressed: 2 +hold_time: 2 iteration_time: 0.2 ; led_pin: <GPIO no. of attached LED>, if LED used functionCall: functionCallShutdown @@ -55,7 +55,7 @@ Type: Button Pin: 16 pull_up_down: pull_up hold_time: 0.3 -hold_repeat: True +hold_mode: Repeat functionCall: functionCallVolU [VolumeDown] @@ -64,7 +64,7 @@ Type: Button Pin: 19 pull_up_down: pull_up hold_time: 0.3 -hold_repeat: True +hold_mode: Repeat [NextSong] enabled: False diff --git a/components/gpio_control/function_calls.py b/components/gpio_control/function_calls.py index e1f1eb2c8..5f6deb1ff 100644 --- a/components/gpio_control/function_calls.py +++ b/components/gpio_control/function_calls.py @@ -69,6 +69,21 @@ def functionCallPlayerSeekFwd(self, *args): def functionCallPlayerSeekBack(self, *args): function_call("{command} -c=playerseek -v=-10".format(command=self.playout_control), shell=True) + def functionCallPlayerSeekFarFwd(self, *args): + function_call("{command} -c=playerseek -v=+60".format(command=self.playout_control), shell=True) + + def functionCallPlayerSeekFarBack(self, *args): + function_call("{command} -c=playerseek -v=-60".format(command=self.playout_control), shell=True) + + def functionCallPlayerRandomTrack(self, *args): + function_call("{command} -c=randomtrack".format(command=self.playout_control), shell=True) + + def functionCallPlayerRandomCard(self, *args): + function_call("{command} -c=randomcard".format(command=self.playout_control), shell=True) + + def functionCallPlayerRandomFolder(self, *args): + function_call("{command} -c=randomfolder".format(command=self.playout_control), shell=True) + def functionCallBluetoothToggle(self, *args): function_call("{command} -c=bluetoothtoggle -v=toggle".format(command=self.playout_control), shell=True) diff --git a/components/gpio_control/gpio_control.py b/components/gpio_control/gpio_control.py index ddd8634bf..44ad68df1 100755 --- a/components/gpio_control/gpio_control.py +++ b/components/gpio_control/gpio_control.py @@ -7,7 +7,7 @@ import function_calls from signal import pause from RPi import GPIO -# from GPIODevices.VolumeControl import VolumeControl +from config_compatibility import ConfigCompatibilityChecks class gpio_control(): @@ -34,9 +34,7 @@ def getFunctionCall(self, function_name): def generate_device(self, config, deviceName): print(deviceName) device_type = config.get('Type') - if deviceName.lower() == 'VolumeControl'.lower(): - return VolumeControl(config, self.getFunctionCall, logger) - elif device_type == 'TwoButtonControl': + if device_type == 'TwoButtonControl': self.logger.info('adding TwoButtonControl') return TwoButtonControl( config.getint('Pin1'), @@ -44,19 +42,24 @@ def generate_device(self, config, deviceName): self.getFunctionCall(config.get('functionCall1')), self.getFunctionCall(config.get('functionCall2')), functionCallTwoBtns=self.getFunctionCall(config.get('functionCallTwoButtons')), - pull_up=config.getboolean('pull_up', fallback=True), - hold_repeat=config.getboolean('hold_repeat', False), + pull_up_down=config.get('pull_up_down', fallback='pull_up'), + hold_mode=config.get('hold_mode', fallback=None), hold_time=config.getfloat('hold_time', fallback=0.3), + bouncetime=config.getint('bouncetime', fallback=500), + edge=config.get('edge', fallback='falling'), + antibouncehack=config.getboolean('antibouncehack', fallback=False), name=deviceName) elif device_type in ('Button', 'SimpleButton'): return SimpleButton(config.getint('Pin'), action=self.getFunctionCall(config.get('functionCall')), + action2=self.getFunctionCall(config.get('functionCall2', fallback='None')), name=deviceName, bouncetime=config.getint('bouncetime', fallback=500), - edge=config.get('edge', fallback='FALLING'), - hold_repeat=config.getboolean('hold_repeat', False), + antibouncehack=config.getboolean('antibouncehack', fallback=False), + edge=config.get('edge', fallback='falling'), + hold_mode=config.get('hold_mode', fallback=None), hold_time=config.getfloat('hold_time', fallback=0.3), - pull_up_down=config.get('pull_up_down', fallback=GPIO.PUD_UP)) + pull_up_down=config.get('pull_up_down', fallback='pull_up')) elif device_type == 'LED': return LED(config.getint('Pin'), name=deviceName, @@ -64,10 +67,10 @@ def generate_device(self, config, deviceName): elif device_type in ('StatusLED', 'MPDStatusLED'): return StatusLED(config.getint('Pin'), name=deviceName) elif device_type == 'RotaryEncoder': - return RotaryEncoder(config.getint('pinUp'), - config.getint('pinDown'), - self.getFunctionCall(config.get('functionCallUp')), - self.getFunctionCall(config.get('functionCallDown')), + return RotaryEncoder(config.getint('Pin1'), + config.getint('Pin2'), + self.getFunctionCall(config.get('functionCall1')), + self.getFunctionCall(config.get('functionCall2')), config.getfloat('timeBase', fallback=0.1), name=deviceName) elif device_type == 'ShutdownButton': @@ -75,11 +78,12 @@ def generate_device(self, config, deviceName): action=self.getFunctionCall(config.get('functionCall', fallback='functionCallShutdown')), name=deviceName, bouncetime=config.getint('bouncetime', fallback=500), - edge=config.get('edge', fallback='FALLING'), - time_pressed=config.getfloat('time_pressed', fallback=2.0), + antibouncehack=config.getboolean('antibouncehack', fallback=False), + edge=config.get('edge', fallback='falling'), + hold_time=config.getfloat('hold_time', fallback=3.0), iteration_time=config.getfloat('iteration_time', fallback=0.2), led_pin=config.getint('led_pin', fallback=None), - pull_up_down=config.get('pull_up_down', fallback=GPIO.PUD_UP)) + pull_up_down=config.get('pull_up_down', fallback='pull_up')) self.logger.warning('cannot find {}'.format(deviceName)) return None @@ -111,9 +115,11 @@ def gpio_loop(self): if __name__ == "__main__": - config = configparser.ConfigParser(inline_comment_prefixes=";") + config = configparser.ConfigParser(inline_comment_prefixes=";", delimiters=(':', '=')) config_path = os.path.expanduser('/home/pi/RPi-Jukebox-RFID/settings/gpio_settings.ini') config.read(config_path) + + ConfigCompatibilityChecks(config, config_path) phoniebox_function_calls = function_calls.phoniebox_function_calls() gpio_controler = gpio_control(phoniebox_function_calls) diff --git a/components/gpio_control/test/gpio_settings_test.ini b/components/gpio_control/test/gpio_settings_test.ini index a2795f057..a0e318244 100644 --- a/components/gpio_control/test/gpio_settings_test.ini +++ b/components/gpio_control/test/gpio_settings_test.ini @@ -11,9 +11,6 @@ enabled: True Type: RotaryEncoder PinUp: 16 PinDown: 19 -pull_up: True -hold_time: 0.3 -hold_repeat: True timeBase: 0.1 ; timeBase only for rotary encoder functionCallDown: functionCallVolD @@ -29,16 +26,16 @@ Pin2: 3 functionCall1: functionCallPlayerPrev functionCall2: functionCallPlayerNext functionCallTwoButtons: None -pull_up: True +pull_up_down: pull_up hold_time: 0.3 -hold_repeat: False +hold_mode: None [Shutdown] enabled: True Type: ShutdownButton Pin: 3 -time_pressed: 2 +hold_time: 2 iteration_time: 0.2 ; led_pin: <GPIO no. of attached LED>, if LED used functionCall: functionCallShutdown @@ -47,45 +44,45 @@ functionCall: functionCallShutdown enabled: False Type: Button Pin: 13 -pull_up: True +pull_up_down: pull_up functionCall: functionCallVol0 [VolumeUp] enabled: False Type: Button Pin: 16 -pull_up: True +pull_up_down: pull_up hold_time: 0.3 -hold_repeat: True +hold_mode: Repeat functionCall: functionCallVolU [VolumeDown] enabled: False Type: Button Pin: 19 -pull_up: True +pull_up_down: pull_up hold_time: 0.3 -hold_repeat: True +hold_mode: Repeat [NextSong] enabled: False Type: Button Pin: 26 -pull_up: True +pull_up_down: pull_up [PrevSong] enabled: False Type: Button Pin: 20 -pull_up: True +pull_up_down: pull_up [Halt] enabled: False Type: Button Pin: 21 -pull_up: True +pull_up_down: pull_up [StatusLED] -enable: True +enabled: True Type: StatusLED Pin: 14 diff --git a/components/gpio_control/test/test_SimpleButton.py b/components/gpio_control/test/test_SimpleButton.py index 87a3afe6f..7f118ebb4 100644 --- a/components/gpio_control/test/test_SimpleButton.py +++ b/components/gpio_control/test/test_SimpleButton.py @@ -53,7 +53,7 @@ def test_hold(self, simple_button): GPIO.LOW = 0 GPIO.input.side_effect = [False, False, False, True] simple_button.hold_time = 0 - simple_button.hold_repeat = True + simple_button.hold_mode = 'Repeat' calls = mockedAction.call_count simple_button.callbackFunctionHandler(simple_button.pin) assert mockedAction.call_count - calls == 4 diff --git a/components/gpio_control/test/test_TwoButtonControl.py b/components/gpio_control/test/test_TwoButtonControl.py index 619ea4dd2..2741430d1 100644 --- a/components/gpio_control/test/test_TwoButtonControl.py +++ b/components/gpio_control/test/test_TwoButtonControl.py @@ -92,8 +92,8 @@ def two_button_controller(): functionCallBtn1=mockedFunction1, functionCallBtn2=mockedFunction2, functionCallTwoBtns=mockedFunction3, - pull_up=True, - hold_repeat=False, + pull_up_down='pull_up', + hold_mode=None, hold_time=0.3, name='TwoButtonControl') @@ -105,8 +105,8 @@ def test_init(self): functionCallBtn1=mockedFunction1, functionCallBtn2=mockedFunction2, functionCallTwoBtns=mockedFunction3, - pull_up=True, - hold_repeat=False, + pull_up_down='pull_up', + hold_mode=None, hold_time=0.3, name='TwoButtonControl') @@ -152,5 +152,5 @@ def test_btn1_and_btn2_pressed(self, two_button_controller): assert mockedFunction3.call_count == 2 def test_repr(self, two_button_controller): - expected = "<TwoBtnControl-TwoButtonControl(1, 2,two_buttons_action=True)>" + expected = "<TwoBtnControl-TwoButtonControl(1, 2,two_buttons_action=True,hold_mode=None,hold_time=0.3,edge=falling,bouncetime=500,antibouncehack=False,pull_up_down=pull_up)>" assert repr(two_button_controller) == expected From 038499e30000a5e1b2040f6799391b299ead557c Mon Sep 17 00:00:00 2001 From: ChisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Sat, 15 May 2021 08:33:43 +0200 Subject: [PATCH 123/206] Align path of requirements.txt --- .github/workflows/pythonpackage_future3.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index 1af689ba3..ed651f06e 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -36,7 +36,7 @@ jobs: python -m pip install --upgrade pip pip install wheel pip install spidev - pip install -r src/jukebox/requirements.txt + pip install -r requirements.txt - name: Lint with flake8 run: | pip install flake8 From 4c498c047ddaea730d970b2cee6b3b803382cf37 Mon Sep 17 00:00:00 2001 From: ChisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Sat, 29 May 2021 07:38:55 +0200 Subject: [PATCH 124/206] Fix in future3 github workflow --- .github/workflows/pythonpackage_future3.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index ed651f06e..61ab6f312 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -32,7 +32,7 @@ jobs: - name: Install dependencies run: | sudo apt-get update - sudo apt-get -y libasound2-dev + sudo apt-get install -y libasound2-dev python -m pip install --upgrade pip pip install wheel pip install spidev From 5d9cf8cdf2b44c7fb876ef62f51361931a7f3100 Mon Sep 17 00:00:00 2001 From: sebrep <79989659+sebrep@users.noreply.github.com> Date: Sat, 17 Jul 2021 21:28:39 +0200 Subject: [PATCH 125/206] Update README.md (#1452) I struggled with this for the 4th time on new phoniebox installations and most pinout graphs for these card leave the cable for IRQ out and although you can read a card on python phoniebox does not read anything. With the cable in place on that pin it works like a charm from the beginning. --- components/rfid-reader/RC522/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/components/rfid-reader/RC522/README.md b/components/rfid-reader/RC522/README.md index a8111a806..156ce5a09 100644 --- a/components/rfid-reader/RC522/README.md +++ b/components/rfid-reader/RC522/README.md @@ -13,3 +13,5 @@ 4. Restart the phoniebox-rfid-reader service: - `sudo systemctl restart phoniebox-rfid-reader.service` + +Be aware that unlike a few other installations with this card reader the phoniebox requires the IRQ pin to be connected (on the raspberry pi and zero normaly to GPIO 24 or PIN 18). From f33e214b5656ab0d53aa10628970b8768ff75bc2 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Sun, 25 Jul 2021 22:56:35 +0200 Subject: [PATCH 126/206] Add lsof (#1457) * Update buster-install-default.sh * Add lsof and other missing packages --- .../installscripts/buster-install-default-with-autohotspot.sh | 2 +- scripts/installscripts/buster-install-default.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/installscripts/buster-install-default-with-autohotspot.sh b/scripts/installscripts/buster-install-default-with-autohotspot.sh index c7e748ab1..30f4de60a 100755 --- a/scripts/installscripts/buster-install-default-with-autohotspot.sh +++ b/scripts/installscripts/buster-install-default-with-autohotspot.sh @@ -793,7 +793,7 @@ install_main() { ${apt_get} ${allow_downgrades} install raspberrypi-kernel-headers fi - ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php7.3-common php7.3-cgi php7.3 at mpd mpc mpg123 git ffmpeg resolvconf spi-tools + ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php7.3-common php7.3-cgi php7.3 at mpd mpc mpg123 git ffmpeg resolvconf spi-tools netcat alsa-tools lsof # restore backup of /etc/resolv.conf in case installation of resolvconf cleared it sudo cp /etc/resolv.conf.orig /etc/resolv.conf diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index f0bf19944..a89fe415f 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -793,7 +793,7 @@ install_main() { ${apt_get} ${allow_downgrades} install raspberrypi-kernel-headers fi - ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php7.3-common php7.3-cgi php7.3 at mpd mpc mpg123 git ffmpeg resolvconf spi-tools netcat alsa-tools + ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php7.3-common php7.3-cgi php7.3 at mpd mpc mpg123 git ffmpeg resolvconf spi-tools netcat alsa-tools lsof # restore backup of /etc/resolv.conf in case installation of resolvconf cleared it sudo cp /etc/resolv.conf.orig /etc/resolv.conf From 03875282b5a503a111c10e12ae7cde7be8f702c6 Mon Sep 17 00:00:00 2001 From: t0b3 <t0b3@users.noreply.github.com> Date: Tue, 10 Aug 2021 21:57:46 +0200 Subject: [PATCH 127/206] fix-alsa on buster-lite (#1467) * Update buster-install-default.sh * update test for alsa-utils --- scripts/installscripts/buster-install-default.sh | 2 +- scripts/installscripts/tests/test_installation.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index a89fe415f..a195cd8ee 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -793,7 +793,7 @@ install_main() { ${apt_get} ${allow_downgrades} install raspberrypi-kernel-headers fi - ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php7.3-common php7.3-cgi php7.3 at mpd mpc mpg123 git ffmpeg resolvconf spi-tools netcat alsa-tools lsof + ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php7.3-common php7.3-cgi php7.3 at mpd mpc mpg123 git ffmpeg resolvconf spi-tools netcat alsa-utils lsof # restore backup of /etc/resolv.conf in case installation of resolvconf cleared it sudo cp /etc/resolv.conf.orig /etc/resolv.conf diff --git a/scripts/installscripts/tests/test_installation.sh b/scripts/installscripts/tests/test_installation.sh index 2b48b21e2..dd8e5a9ce 100755 --- a/scripts/installscripts/tests/test_installation.sh +++ b/scripts/installscripts/tests/test_installation.sh @@ -155,7 +155,7 @@ verify_apt_packages(){ local packages="libspotify-dev samba samba-common-bin gcc lighttpd php7.3-common php7.3-cgi php7.3 at mpd mpc mpg123 git ffmpeg resolvconf spi-tools python3 python3-dev python3-pip python3-mutagen python3-gpiozero -python3-spidev netcat alsa-tools" +python3-spidev netcat alsa-utils" # TODO apt-transport-https checking only on RPi is currently a workaround local packages_raspberrypi="apt-transport-https raspberrypi-kernel-headers" local packages_spotify="mopidy mopidy-mpd mopidy-local mopidy-spotify libspotify12 From 103e77fa4f36d1b46c27d6d87cb7b754c429d909 Mon Sep 17 00:00:00 2001 From: t0b3 <t0b3@users.noreply.github.com> Date: Tue, 10 Aug 2021 22:04:32 +0200 Subject: [PATCH 128/206] omit inapropriate version evdev==0.7.0 (#1468) see https://pypi.org/project/evdev/ --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index dfd2c27b3..205d89ab2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,7 @@ #### ESSENTIAL LIBRARIES FOR MAIN FUNCTIONALITY #### # related libraries. -evdev==0.7.0 +evdev git+git://github.com/lthiery/SPI-Py.git#egg=spi-py youtube_dl pyserial From 96a2a5f884d9746bc60f53479d3b4ad50569103f Mon Sep 17 00:00:00 2001 From: Micz Flor <micz.flor@web.de> Date: Tue, 10 Aug 2021 22:13:52 +0200 Subject: [PATCH 129/206] Adding a boot volume settings to be set in startup script after reboot (#1177) * Adding boot volume value to config and startup script #1169 * Adding boot volume value to config and startup script #1169 * startup changing to boot volume * comment in web app changed to boot --- htdocs/inc.header.php | 3 ++ htdocs/inc.setBootVolume.php | 59 ++++++++++++++++++++++++++++++++ htdocs/inc.setStartupVolume.php | 2 -- htdocs/lang/lang-de-DE.php | 1 + htdocs/lang/lang-en-UK.php | 1 + htdocs/settings.php | 1 + scripts/inc.writeGlobalConfig.sh | 14 +++++++- scripts/playout_controls.sh | 36 +++++++++++++++++++ scripts/startup-scripts.sh | 13 +++++-- 9 files changed, 125 insertions(+), 5 deletions(-) create mode 100644 htdocs/inc.setBootVolume.php diff --git a/htdocs/inc.header.php b/htdocs/inc.header.php index cdf1972e7..2b101cf69 100755 --- a/htdocs/inc.header.php +++ b/htdocs/inc.header.php @@ -168,6 +168,7 @@ function fileGetContentOrDefault($filename, $defaultValue) $edition = $globalConf['EDITION']; $maxvolumevalue = $globalConf['AUDIOVOLMAXLIMIT']; $startupvolumevalue = $globalConf['AUDIOVOLSTARTUP']; +$bootvolumevalue = $globalConf['AUDIOVOLBOOT']; $volstepvalue = $globalConf['AUDIOVOLCHANGESTEP']; $idletimevalue = $globalConf['IDLETIMESHUTDOWN']; $conf['settings_lang'] = $globalConf['LANG']; @@ -196,6 +197,7 @@ function fileGetContentOrDefault($filename, $defaultValue) 'volume', 'maxvolume', 'startupvolume', + 'bootvolume', 'volstep', 'shutdown', 'reboot', @@ -298,6 +300,7 @@ function fileGetContentOrDefault($filename, $defaultValue) 'volume' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=setvolume -v=%s", // change volume 'maxvolume' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=setmaxvolume -v=%s", // change max volume 'startupvolume' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=setstartupvolume -v=%s", // change startup volume + 'bootvolume' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=setbootvolume -v=%s", // change boot volume 'volstep' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=setvolstep -v=%s", // change volume step 'mute' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=mute", // volume mute (toggle) 'volumeup' => "/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=volumeup", // volume up diff --git a/htdocs/inc.setBootVolume.php b/htdocs/inc.setBootVolume.php new file mode 100644 index 000000000..7328cb92a --- /dev/null +++ b/htdocs/inc.setBootVolume.php @@ -0,0 +1,59 @@ +<!-- +Boot Volume => the volume that will be set when the Phoniebox is booted +--> + <!-- input-group --> + <?php + $maxvalueselect = round(($maxvolumevalue/5))*5; + $bootvolvaluedisplay = round($bootvolumevalue); + ?> + <div class="col-md-4 col-sm-6"> + <div class="row" style="margin-bottom:1em;"> + <div class="col-xs-6"> + <h4><?php print $lang['settingsBootVol']; ?></h4> + <form name='bootvolume' method='post' action='<?php print $_SERVER['PHP_SELF']; ?>'> + <div class="input-group my-group"> + <select id="bootvolume" name="bootvolume" class="selectpicker form-control"> + <option value='0'<?php + if($bootvolumevalue == 0) { + print " selected"; + } + ?>><?php print $lang['globalOff']; ?></option> + <?php + $i = $maxvalueselect; + while ($i >= 5) { + print " + <option value='".$i."'"; + if($bootvolvaluedisplay == $i) { + print " selected"; + } + print ">".$i."%</option>"; + $i = $i - 5; + }; + print "\n"; + ?> + </select> + <span class="input-group-btn"> + <input type='submit' class="btn btn-default" name='submit' value='<?php print $lang['globalSet']; ?>'/> + </span> + </div> + </form> + </div> + + <div class="col-xs-6"> + <div class="c100 p<?php print $bootvolvaluedisplay; ?>"> + <span><?php + if ($bootvolumevalue == 0) { + print $lang['globalOff']; + } else { + print $bootvolumevalue."%"; + } + ?></span> + <div class="slice"> + <div class="bar"></div> + <div class="fill"></div> + </div> + </div> + </div> + </div><!-- ./row --> + </div> + <!-- /input-group --> diff --git a/htdocs/inc.setStartupVolume.php b/htdocs/inc.setStartupVolume.php index 502b03630..0fb92f054 100755 --- a/htdocs/inc.setStartupVolume.php +++ b/htdocs/inc.setStartupVolume.php @@ -3,8 +3,6 @@ --> <!-- input-group --> <?php - //$maxvolumevalue = exec("/usr/bin/sudo ".$conf['scripts_abs']."/playout_controls.sh -c=getmaxvolume"); - //$maxvolumevalue = 43.6;//debug $maxvalueselect = round(($maxvolumevalue/5))*5; $startupvaluedisplay = round($startupvolumevalue); ?> diff --git a/htdocs/lang/lang-de-DE.php b/htdocs/lang/lang-de-DE.php index 218a62336..7487c4db7 100644 --- a/htdocs/lang/lang-de-DE.php +++ b/htdocs/lang/lang-de-DE.php @@ -210,6 +210,7 @@ $lang['settingsVolChangePercent'] = "Lautst. Änderung"; $lang['settingsMaxVol'] = "Max. Lautstärke"; $lang['settingsStartupVol'] = "Start-Lautstärke"; +$lang['settingsBootVol'] = "Lautst. nach Boot"; $lang['settingsWifiRestart'] = "Die Änderungen an der WiFi-Verbindung erfordern einen Neustart, um wirksam zu werden"; $lang['settingsWifiSsidPlaceholder'] = "z.B. PhonieHomie"; $lang['settingsWifiSsidHelp'] = "Der Name, unter dem dein WiFi als 'verfügbares Netzwerk' angezeigt wird"; diff --git a/htdocs/lang/lang-en-UK.php b/htdocs/lang/lang-en-UK.php index a3579ade8..9610adaa2 100755 --- a/htdocs/lang/lang-en-UK.php +++ b/htdocs/lang/lang-en-UK.php @@ -217,6 +217,7 @@ $lang['settingsVolChangePercent'] = "Vol. Change %"; $lang['settingsMaxVol'] = "Maximum Volume"; $lang['settingsStartupVol'] = "Startup Volume"; +$lang['settingsBootVol'] = "Volume after reboot"; $lang['settingsWifiRestart'] = "The changes applied to your WiFi connection require a restart to take effect."; $lang['settingsWifiSsidPlaceholder'] = "e.g.: PhonieHomie"; $lang['settingsWifiSsidHelp'] = "The name under which your WiFi shows up as 'available network'"; diff --git a/htdocs/settings.php b/htdocs/settings.php index 3980142c6..09e2ae280 100755 --- a/htdocs/settings.php +++ b/htdocs/settings.php @@ -135,6 +135,7 @@ include("inc.setMaxVolume.php"); include("inc.setVolumeStep.php"); include("inc.setStartupVolume.php"); +include("inc.setBootVolume.php"); ?> </div><!-- / .row --> </div><!-- /.panel-body --> diff --git a/scripts/inc.writeGlobalConfig.sh b/scripts/inc.writeGlobalConfig.sh index a903f3c98..856c54fb4 100755 --- a/scripts/inc.writeGlobalConfig.sh +++ b/scripts/inc.writeGlobalConfig.sh @@ -173,12 +173,22 @@ AUDIOVOLMINLIMIT=`cat $PATHDATA/../settings/Min_Volume_Limit` # Startup_Volume # 1. create a default if file does not exist if [ ! -f $PATHDATA/../settings/Startup_Volume ]; then - echo "30" > $PATHDATA/../settings/Startup_Volume + echo "0" > $PATHDATA/../settings/Startup_Volume chmod 777 $PATHDATA/../settings/Startup_Volume fi # 2. then|or read value from file AUDIOVOLSTARTUP=`cat $PATHDATA/../settings/Startup_Volume` +############################################## +# Volume_Boot - after reboot +# 1. create a default if file does not exist +if [ ! -f $PATHDATA/../settings/Volume_Boot ]; then + echo "30" > $PATHDATA/../settings/Volume_Boot + chmod 777 $PATHDATA/../settings/Volume_Boot +fi +# 2. then|or read value from file +AUDIOVOLBOOT=`cat $PATHDATA/../settings/Volume_Boot` + ############################################## # Change_Volume_Idle # Change volume during idle (or only change it during Play and in the WebApp) @@ -329,6 +339,7 @@ CMDSEEKBACK=`grep 'CMDSEEKBACK' $PATHDATA/../settings/rfid_trigger_play.conf|tai # AUDIOVOLMAXLIMIT # AUDIOVOLMINLIMIT # AUDIOVOLSTARTUP +# AUDIOVOLBOOT # VOLCHANGEIDLE # IDLETIMESHUTDOWN # POWEROFFCMD @@ -365,6 +376,7 @@ echo "AUDIOVOLCHANGESTEP=\"${AUDIOVOLCHANGESTEP}\"" >> "${PATHDATA}/../settings/ echo "AUDIOVOLMAXLIMIT=\"${AUDIOVOLMAXLIMIT}\"" >> "${PATHDATA}/../settings/global.conf" echo "AUDIOVOLMINLIMIT=\"${AUDIOVOLMINLIMIT}\"" >> "${PATHDATA}/../settings/global.conf" echo "AUDIOVOLSTARTUP=\"${AUDIOVOLSTARTUP}\"" >> "${PATHDATA}/../settings/global.conf" +echo "AUDIOVOLBOOT=\"${AUDIOVOLBOOT}\"" >> "${PATHDATA}/../settings/global.conf" echo "VOLCHANGEIDLE=\"${VOLCHANGEIDLE}\"" >> "${PATHDATA}/../settings/global.conf" echo "IDLETIMESHUTDOWN=\"${IDLETIMESHUTDOWN}\"" >> "${PATHDATA}/../settings/global.conf" echo "POWEROFFCMD=\"${POWEROFFCMD}\"" >> "${PATHDATA}/../settings/global.conf" diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index cccd64df2..b4b4878d0 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -31,6 +31,9 @@ NOW=`date +%Y-%m-%d.%H:%M:%S` # setstartupvolume # getstartupvolume # setvolumetostartup +# setbootvolume +# getbootvolume +# setvolumetobootvolume # volumeup # volumedown # getchapters @@ -593,6 +596,39 @@ case $COMMAND in echo -e setvol ${AUDIOVOLSTARTUP}\\nclose | nc -w 1 localhost 6600 fi + fi + ;; + setbootvolume) + if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi + # if value is greater than wanted maxvolume, set value to maxvolume + if [ ${VALUE} -gt $AUDIOVOLMAXLIMIT ]; + then + VALUE=$AUDIOVOLMAXLIMIT; + fi + # write new value to file + echo "$VALUE" > ${PATHDATA}/../settings/Volume_Boot + # create global config file because individual setting got changed + . ${PATHDATA}/inc.writeGlobalConfig.sh + ;; + getbootvolume) + if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi + echo ${AUDIOVOLBOOT} + ;; + setvolumetobootvolume) + if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND}" >> ${PATHDATA}/../logs/debug.log; fi + # check if startup-volume is disabled + if [ "${AUDIOVOLBOOT}" == 0 ]; then + exit 1 + else + # set volume level in percent + if [ "${VOLUMEMANAGER}" == "amixer" ]; then + # volume handling alternative with amixer not mpd (2020-06-12 related to ticket #973) + amixer sset \'$AUDIOIFACENAME\' ${AUDIOVOLBOOT}% + else + # manage volume with mpd + echo -e setvol ${AUDIOVOLBOOT}\\nclose | nc -w 1 localhost 6600 + fi + fi ;; playerstop) diff --git a/scripts/startup-scripts.sh b/scripts/startup-scripts.sh index 748167006..94b1c6a66 100755 --- a/scripts/startup-scripts.sh +++ b/scripts/startup-scripts.sh @@ -34,12 +34,21 @@ STATUS=0 while [ "$STATUS" != "ACTIVE" ]; do STATUS=$(echo -e status\\nclose | nc -w 1 localhost 6600 | grep 'OK MPD'| sed 's/^.*$/ACTIVE/'); done #################################### -# check if and set volume on startup +# Set volume levels on boot +# Both can be set in the Web UI under settings +# Confusion explained: +# 1. Set the volume to the global boot level. +# Sometimes the Pi sets volume to 0. +# The first command makes sure there is *some* level, not 0. +# 2. Then set the volume to the startup volume. +# If the kids crank up the volume at night, +# after a reboot, the box will be back to this level. +/home/pi/RPi-Jukebox-RFID/scripts/playout_controls.sh -c=setvolumetobootvolume /home/pi/RPi-Jukebox-RFID/scripts/playout_controls.sh -c=setvolumetostartup #################### # play startup sound -mpgvolume=$((32768*${AUDIOVOLSTARTUP}/100)) +mpgvolume=$((32768*${AUDIOVOLBOOT}/100)) echo "${mpgvolume} is the mpg123 startup volume" /usr/bin/mpg123 -f -${mpgvolume} /home/pi/RPi-Jukebox-RFID/shared/startupsound.mp3 From 7647c394aaaed9cac9c287312b82d798b7adee5d Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Tue, 10 Aug 2021 22:28:22 +0200 Subject: [PATCH 130/206] Prepare Readme for 2.3 --- README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 57f3a8f63..484fcdd90 100755 --- a/README.md +++ b/README.md @@ -22,20 +22,21 @@ The year 2020 also has a clear *:star: community hero :star:*: @s-martin has bee * **Gitter Community** we got ourselves a gitter community; chat us up at https://gitter.im/phoniebox -* **Phoniebox [2.2](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/4?closed=1) released (2020-11-23)** +* **Phoniebox [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) released (2021-08-11)** -The [2.2](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/4?closed=1) release was pushed through the doors with many contributors (some of which in alphabetical order): @andreasbrett @BerniPi @juhrmann @Luegengladiator @MarkusProchaska @MarlonKrug @patrickweigelt @princemaxwell @RalfAlbers @s-martin @themorlan @veloxidSchweiz @xn--nding-jua. [List of all contributors](https://github.com/MiczFlor/RPi-Jukebox-RFID/graphs/contributors) +The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) release was pushed through the doors with many contributors: [List of all contributors](https://github.com/MiczFlor/RPi-Jukebox-RFID/graphs/contributors) -## What's new in version 2.2? +## What's new in version 2.3? +* Lots of fixed bugs and minor improvements... + +**What's still hot?** * :fire: **Fixed location of gpio_settings.ini** for [GPIO control](components/gpio_control/README.md) * Added support for files with embedded chapters metada (like m4a) enhancement * Added customizable poweroff command bash enhancement * Finally fixed resume function... * Lots of fixed bugs and minor improvements... * Status LED, Rotary Button, Volume Up/Down, custom music directory for +Spotify, Startup sound volume - -**What's still hot?** * The constantly improved **one-line install script** handles both **Classic** and **+Spotify** when [setting up your Phoniebox](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch#one-line-install-command) * integrated improved [GPIO control](components/gpio_control/README.md) * integrated selection of RFID readers and uses [multiple readers](https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/1012#issue-434052529) simultaneously From e59e526f20ffe50007d42021bd3f26d5474811a6 Mon Sep 17 00:00:00 2001 From: t0b3 <t0b3@users.noreply.github.com> Date: Wed, 11 Aug 2021 10:19:46 +0200 Subject: [PATCH 131/206] facilitate transition to bullseye (#1469) * facilitate transition to bullseye in order to easily support the debian upgrade path (replace `buster` with `bullseye` in `/etc/apt/sources.list` and `/etc/apt/sources.list.d/*`) this change helps transition from `php7.3` on buster to `php7.4` on bullseye and use python3 for python which is valid on bullseye * Update buster-install-default.sh * Update buster-install-default.sh --- scripts/installscripts/buster-install-default.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index a195cd8ee..abb1c050c 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -793,7 +793,7 @@ install_main() { ${apt_get} ${allow_downgrades} install raspberrypi-kernel-headers fi - ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php7.3-common php7.3-cgi php7.3 at mpd mpc mpg123 git ffmpeg resolvconf spi-tools netcat alsa-utils lsof + ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php-common php-cgi php at mpd mpc mpg123 git ffmpeg resolvconf spi-tools netcat alsa-utils lsof # restore backup of /etc/resolv.conf in case installation of resolvconf cleared it sudo cp /etc/resolv.conf.orig /etc/resolv.conf @@ -801,8 +801,8 @@ install_main() { # prepare python3 ${apt_get} ${allow_downgrades} install python3 python3-dev python3-pip python3-mutagen python3-gpiozero python3-spidev - # use python3.7 as default - sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 1 + # use python3 as default + sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1 # Get github code cd "${HOME_DIR}" || exit From 2a99a25f7f9f34bbd94afbca1699357d464ea62d Mon Sep 17 00:00:00 2001 From: TRO <thomas@roosesweb.de> Date: Wed, 11 Aug 2021 22:47:29 +0200 Subject: [PATCH 132/206] small changes: head -n and file prefix (#1423) * replace head -1 by head -n 1 since this notation is depricated * replace head -1 by head -n 1 since this notation is depricated * playout_controls: my mopidy version need "file://" prefix --- scripts/playout_controls.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index b4b4878d0..e67989329 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -167,7 +167,7 @@ then dbg "chapters for extension enabled: $CHAPTER_SUPPORT_FOR_EXTENSION" - if [ "$(printf "${CURRENT_SONG_DURATION}\n${CHAPTERMINDURATION}\n" | sort -g | head -1)" == "${CHAPTERMINDURATION}" ]; then + if [ "$(printf "${CURRENT_SONG_DURATION}\n${CHAPTERMINDURATION}\n" | sort -g | head -n1)" == "${CHAPTERMINDURATION}" ]; then CHAPTER_SUPPORT_FOR_DURATION="1" else CHAPTER_SUPPORT_FOR_DURATION="0" @@ -948,7 +948,7 @@ case $COMMAND in ;; playlistappend) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND} value:${VALUE}" >> ${PATHDATA}/../logs/debug.log; fi - mpc add "${VALUE}" + mpc add file://"${VALUE}" # Unmute if muted if [ -f $VOLFILE ]; then # $VOLFILE DOES exist == audio off @@ -969,7 +969,7 @@ case $COMMAND in playsinglefile) if [ "${DEBUG_playout_controls_sh}" == "TRUE" ]; then echo " ${COMMAND} value:${VALUE}" >> ${PATHDATA}/../logs/debug.log; fi mpc clear - mpc add "${VALUE}" + mpc add file://"${VALUE}" mpc repeat off mpc single on # Unmute if muted @@ -1086,7 +1086,7 @@ case $COMMAND in # delete $VOLFILE rm -f $VOLFILE fi - aplay `ls $AUDIOFOLDERSPATH/Recordings/*.wav -1t|head -1` + aplay `ls $AUDIOFOLDERSPATH/Recordings/*.wav -1t|head -n1` ;; readwifiipoverspeaker) # will read out the IP address over the Pi's speaker. From 8667bf57f4aef9757937d6a2ed2f6f55de25577b Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Wed, 11 Aug 2021 22:55:25 +0200 Subject: [PATCH 133/206] Update README.md --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 484fcdd90..226a7807e 100755 --- a/README.md +++ b/README.md @@ -22,12 +22,16 @@ The year 2020 also has a clear *:star: community hero :star:*: @s-martin has bee * **Gitter Community** we got ourselves a gitter community; chat us up at https://gitter.im/phoniebox -* **Phoniebox [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) released (2021-08-11)** +* **Phoniebox [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) released (2021-08-12)** The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) release was pushed through the doors with many contributors: [List of all contributors](https://github.com/MiczFlor/RPi-Jukebox-RFID/graphs/contributors) ## What's new in version 2.3? +* Holding buttons feature fixed #1406 +* Bluetooth buttons and headphones toggle #1262 +* fixed stop on removal for RC522 #1122 +* USB Encoder buttons support for anyone who dors not want to solder... * Lots of fixed bugs and minor improvements... **What's still hot?** From 7123f730669ebaab7df116846382238a77f1ce68 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Wed, 11 Aug 2021 22:57:49 +0200 Subject: [PATCH 134/206] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 226a7807e..7ecfa3946 100755 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) rel * Bluetooth buttons and headphones toggle #1262 * fixed stop on removal for RC522 #1122 * USB Encoder buttons support for anyone who dors not want to solder... +* Removed support for Raspian Stretch * Lots of fixed bugs and minor improvements... **What's still hot?** From de1b3d7b22d30c7bee018a87977bd70ebbb13935 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Wed, 11 Aug 2021 23:10:08 +0200 Subject: [PATCH 135/206] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 7ecfa3946..70ea8adf6 100755 --- a/README.md +++ b/README.md @@ -28,10 +28,14 @@ The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) rel ## What's new in version 2.3? +* Improved [installation guide](docs/INSTALL_COMPLETE_GUIDE.md) * Holding buttons feature fixed #1406 * Bluetooth buttons and headphones toggle #1262 * fixed stop on removal for RC522 #1122 * USB Encoder buttons support for anyone who dors not want to solder... +* Improved robustness and better documentation for [GPIO control](components/gpio_control/README.md) +* Auto convert wrong Spotify URLs to a format Mopidy understands +* Support for PC/SC-readers * Removed support for Raspian Stretch * Lots of fixed bugs and minor improvements... From 10ae48e72aaeba4bdf1996fd9a53e1640ab2a2ce Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Wed, 11 Aug 2021 23:10:33 +0200 Subject: [PATCH 136/206] Update version-number --- settings/version-number | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings/version-number b/settings/version-number index be1c36e58..bb576dbde 100755 --- a/settings/version-number +++ b/settings/version-number @@ -1 +1 @@ -2.3rc1 +2.3 From bb0361e41a48b5a36e564d0e92f1e2d551b1b879 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Wed, 11 Aug 2021 23:33:59 +0200 Subject: [PATCH 137/206] Release 2.3 (#1476) (#1477) From 5a35ee86dd58a7af29842cf48988c2eccf9b9731 Mon Sep 17 00:00:00 2001 From: robinjoerke <robin.joerke@conclutec.com> Date: Fri, 27 Aug 2021 08:50:42 +0200 Subject: [PATCH 138/206] Fix Link in README.md Fixes the installaion guide link in the README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 70ea8adf6..4b2d8d02d 100755 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) rel ## What's new in version 2.3? -* Improved [installation guide](docs/INSTALL_COMPLETE_GUIDE.md) +* Improved [installation guide](docs/INSTALL-COMPLETE-GUIDE.md) * Holding buttons feature fixed #1406 * Bluetooth buttons and headphones toggle #1262 * fixed stop on removal for RC522 #1122 From 4e4d1077296f911485cd48aa2a32297dea8733e1 Mon Sep 17 00:00:00 2001 From: Andreas Brett <andreasbrett@users.noreply.github.com> Date: Sun, 29 Aug 2021 18:36:32 +0200 Subject: [PATCH 139/206] send mqtt data on swiped card event actively watch for changes to Latest_RFID file and send out MQTT data --- .../MQTT-protocol/daemon_mqtt_client.py | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py index 4ccb639fa..6c676db68 100644 --- a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py +++ b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py @@ -2,12 +2,13 @@ import paho.mqtt.client as mqtt import os, subprocess, re, ssl, time, datetime - +import inotify.adapters +from threading import * # ---------------------------------------------------------- # Prerequisites # ---------------------------------------------------------- -# pip3 install paho-mqtt +# pip3 install paho-mqtt inotify # ---------------------------------------------------------- @@ -43,6 +44,21 @@ arAvailableAttributes = ['volume', 'mute', 'repeat', 'random', 'state', 'file', 'artist', 'albumartist', 'title', 'album', 'track', 'elapsed', 'duration', 'trackdate', 'last_card', 'maxvolume', 'volstep', 'idletime', 'rfid', 'gpio', 'remaining_stopafter', 'remaining_shutdownafter', 'remaining_idle', 'throttling', 'temperature'] +def watchForNewCard(): + i = inotify.adapters.Inotify() + i.add_watch(path + "/../settings/Latest_RFID") + + # wait for inotify events + for event in i.event_gen(yield_nones=False): + if event is not None: + # fetch event attributes + (e_header, e_type_names, e_path, e_filename) = event + + # file was closed and written => a new card was swiped + if "IN_CLOSE_WRITE" in e_type_names: + processGet("all") + + def on_connect(client, userdata, flags, rc): if rc == 0: print("Connection established.") @@ -386,6 +402,11 @@ def fetchData(): print("Subscribing to " + mqttBaseTopic + "/get/#") client.subscribe(mqttBaseTopic + "/get/#") +# register thread for watchForNewCard +tWatchForNewCard = Thread(target=watchForNewCard) +tWatchForNewCard.setDaemon(True) +tWatchForNewCard.start() + # start endless loop client.loop_start() while True: From d662bb2ae8fedcd2900f84f37963ff777652929d Mon Sep 17 00:00:00 2001 From: Andreas Brett <andreasbrett@users.noreply.github.com> Date: Sun, 29 Aug 2021 18:38:00 +0200 Subject: [PATCH 140/206] Update README.md --- components/smart-home-automation/MQTT-protocol/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/smart-home-automation/MQTT-protocol/README.md b/components/smart-home-automation/MQTT-protocol/README.md index a71a595ec..3e765fb3d 100644 --- a/components/smart-home-automation/MQTT-protocol/README.md +++ b/components/smart-home-automation/MQTT-protocol/README.md @@ -114,7 +114,7 @@ Sending empty payload to `phoniebox/cmd/help` will be responded by a list of all Install missing python packages for MQTT: ~~~ -sudo pip3 install paho-mqtt +sudo pip3 install paho-mqtt inotify ~~~ All relevant files can be found in the folder: From 292b518918d5fa54733af5948815a2c1f17deb0c Mon Sep 17 00:00:00 2001 From: Andreas Brett <andreasbrett@users.noreply.github.com> Date: Mon, 30 Aug 2021 22:30:15 +0200 Subject: [PATCH 141/206] Update daemon_mqtt_client.py --- .../MQTT-protocol/daemon_mqtt_client.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py index 6c676db68..ec9769e5d 100644 --- a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py +++ b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py @@ -56,6 +56,14 @@ def watchForNewCard(): # file was closed and written => a new card was swiped if "IN_CLOSE_WRITE" in e_type_names: + # fetch card ID + cardid = readfile(path + "/../settings/Latest_RFID") + + # publish event "card_swiped" + client.publish(mqttBaseTopic + "/event/card_swiped", payload=cardid) + print(" --> Publishing event card_swiped = " + cardid) + + # process all attributes processGet("all") From fc207a8792120bb24e921a3b2c94e34bb0e0ed3e Mon Sep 17 00:00:00 2001 From: Andreas Brett <andreasbrett@users.noreply.github.com> Date: Tue, 31 Aug 2021 20:19:25 +0200 Subject: [PATCH 142/206] Update README.md --- .../smart-home-automation/MQTT-protocol/README.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/components/smart-home-automation/MQTT-protocol/README.md b/components/smart-home-automation/MQTT-protocol/README.md index 3e765fb3d..643aaf313 100644 --- a/components/smart-home-automation/MQTT-protocol/README.md +++ b/components/smart-home-automation/MQTT-protocol/README.md @@ -34,8 +34,16 @@ Phoniebox' MQTT client will do the following things: 2. at shutdown send state info to - `phoniebox/state` (offline) 3. periodically send *all* attributes to `phoniebox/attribute/$attributeName` (this interval can be defined through `refreshIntervalPlaying` and `refreshIntervalIdle` in the `SETTINGS` section) -4. listen for attribute requests on `phoniebox/get/$attribute` -5. listen for commands on `phoniebox/cmd/$command` (if a command needs a parameter it has to be provided via payload) +4. send specific events to `phoniebox/event/$eventName` right away +5. listen for attribute requests on `phoniebox/get/$attribute` +6. listen for commands on `phoniebox/cmd/$command` (if a command needs a parameter it has to be provided via payload) + +## Topic: phoniebox/event/$event +This is a read-only topic. The following events trigger immediate messages through this topic: + +- card_swiped + +Use these topics to get notified of time-critical events right away rather than having to wait for the periodic send of all attributes or requesting an attribute through the get topic. Currently the only event triggering a message is the "card_swiped" event with the obvious use-case of letting your smart home react upon swiped cards. These cards needn't be configured in Phoniebox as the MQTT daemon will just relay any swiped card to the MQTT server. So it's possible to have a "dim lights" card that will not trigger any Phoniebox action but is picked up by your smart home to dim the lights. ## Topic: phoniebox/get/$attribute MQTT clients can (additionally to the periodic updates) request an attribute of Phoniebox. Sending an empty payload to `phoniebox/get/volume` will trigger Phoniebox' MQTT client to fetch the current volume from MPD and send the result to `phoniebox/attribute/volume`. From 6fa00a2b12ea528c2d6aa6551f6af6b975e9444f Mon Sep 17 00:00:00 2001 From: Andreas Brett <andreasbrett@users.noreply.github.com> Date: Thu, 2 Sep 2021 23:50:17 +0200 Subject: [PATCH 143/206] Create requirements.txt --- .../smart-home-automation/MQTT-protocol/requirements.txt | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 components/smart-home-automation/MQTT-protocol/requirements.txt diff --git a/components/smart-home-automation/MQTT-protocol/requirements.txt b/components/smart-home-automation/MQTT-protocol/requirements.txt new file mode 100644 index 000000000..b474338b6 --- /dev/null +++ b/components/smart-home-automation/MQTT-protocol/requirements.txt @@ -0,0 +1,5 @@ +# MQTT daemon related requirements +# you need to install these with `sudo python3 -m pip install --upgrade --force-reinstall -q -r requirements.txt` + +paho-mqtt +inotify From af61c28eb50192dc2ccde6b3e2469c67baf1de10 Mon Sep 17 00:00:00 2001 From: Andreas Brett <andreasbrett@users.noreply.github.com> Date: Thu, 2 Sep 2021 23:55:01 +0200 Subject: [PATCH 144/206] Update README.md --- components/smart-home-automation/MQTT-protocol/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/smart-home-automation/MQTT-protocol/README.md b/components/smart-home-automation/MQTT-protocol/README.md index 643aaf313..b4fae442b 100644 --- a/components/smart-home-automation/MQTT-protocol/README.md +++ b/components/smart-home-automation/MQTT-protocol/README.md @@ -122,7 +122,7 @@ Sending empty payload to `phoniebox/cmd/help` will be responded by a list of all Install missing python packages for MQTT: ~~~ -sudo pip3 install paho-mqtt inotify +sudo python3 -m pip install --upgrade --force-reinstall -q -r requirements.txt ~~~ All relevant files can be found in the folder: From a29f7385505e7aafbbdd614b5a2773ba1c914e04 Mon Sep 17 00:00:00 2001 From: Philipp <philipp.albig@pictrs.com> Date: Mon, 6 Sep 2021 08:29:13 +0200 Subject: [PATCH 145/206] quickfix idle-watchdog with amixer https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/1497 --- scripts/idle-watchdog.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/idle-watchdog.sh b/scripts/idle-watchdog.sh index c4e721474..2183ebf0b 100755 --- a/scripts/idle-watchdog.sh +++ b/scripts/idle-watchdog.sh @@ -34,7 +34,8 @@ do fi # If box is playing and volume is greater 0, remove idle shutdown. Skip this if "at"-queue is already empty - if [ "$(echo "$PLAYERSTATUS" | grep -c "\[playing\]")" == "1" ] && [ $VOLPERCENT -ne "0" ] && [ -n "$(sudo atq -q i)" ]; + # If volume is controlled by amixer, VOLPERCENT is empty. Ignore that. + if [ "$(echo "$PLAYERSTATUS" | grep -c "\[playing\]")" == "1" ] && [[ -z $VOLPERCENT || $VOLPERCENT -ne "0" ]] && [ -n "$(sudo atq -q i)" ]; then for i in `sudo atq -q i | awk '{print $1}'`;do sudo atrm $i;done fi From 48b2c07da57154768193676b6fbc6a4f4d432ad6 Mon Sep 17 00:00:00 2001 From: T0bi79 <51325380+T0bi79@users.noreply.github.com> Date: Thu, 9 Sep 2021 19:50:17 +0200 Subject: [PATCH 146/206] Update gpio_settings.ini.sample --- misc/sampleconfigs/gpio_settings.ini.sample | 77 ++++++++++++++------- 1 file changed, 53 insertions(+), 24 deletions(-) diff --git a/misc/sampleconfigs/gpio_settings.ini.sample b/misc/sampleconfigs/gpio_settings.ini.sample index 92839ebd9..b05004c7a 100644 --- a/misc/sampleconfigs/gpio_settings.ini.sample +++ b/misc/sampleconfigs/gpio_settings.ini.sample @@ -1,16 +1,18 @@ [DEFAULT] enabled: True +antibouncehack: False + [VolumeControl] enabled: True Type: TwoButtonControl ;or RotaryEncoder -PinUp: 5 -PinDown: 6 -pull_up: True +Pin1: 5 +Pin2: 6 +pull_up_down: pull_up hold_time: 0.3 -hold_repeat: True +hold_mode: Repeat timeBase: 0.1 ;only for RotaryEncoder -functionCallDown: functionCallVolD -functionCallUp: functionCallVolU +functionCall1: functionCallVolU +functionCall2: functionCallVolD functionCallTwoButtons: functionCallVol0 ;only for TwoButtonControl [PrevNextControl] @@ -21,72 +23,99 @@ Pin2: 23 functionCall1: functionCallPlayerPrev functionCall2: functionCallPlayerNext functionCallTwoButtons: None -pull_up: True +pull_up_down: pull_up hold_time: 0.3 -hold_repeat: False +hold_mode: None [PlayPause] enabled: True Type: Button Pin: 27 -pull_up: True -hold_time: 0.3 +pull_up_down: pull_up functionCall: functionCallPlayerPause [Shutdown] enabled: False Type: Button Pin: 3 -pull_up: True +pull_up_down: pull_up +hold_mode: Postpone hold_time: 2 functionCall: functionCallShutdown +[PauseShutdown] +enabled: False +Type: Button +Pin: 3 +pull_up_down: pull_up +hold_time: 2.0 +hold_mode: SecondFunc +functionCall: functionCallPlayerPause +functionCall2: functionCallShutdown + [Volume0] enabled: False Type: Button Pin: 17 -pull_up: True -hold_time: 0.3 +pull_up_down: pull_up functionCall: functionCallVol0 [VolumeUp] enabled: False Type: Button Pin: 16 -pull_up: True +pull_up_down: pull_up hold_time: 0.3 -hold_repeat: True +hold_mode: Repeat functionCall: functionCallVolU [VolumeDown] enabled: False Type: Button Pin: 19 -pull_up: True +pull_up_down: pull_up hold_time: 0.3 -hold_repeat: True +hold_mode: Repeat functionCall: functionCallVolD [NextSong] enabled: False Type: Button Pin: 26 -pull_up: True -hold_time: 0.3 +pull_up_down: pull_up functionCall: functionCallPlayerNext [PrevSong] enabled: False Type: Button Pin: 20 -pull_up: True -hold_time: 0.3 +pull_up_down: pull_up functionCall: functionCallPlayerPrev +[FastForward] +enabled: false +Type: Button +Pin: 7 +pull_up_down: pull_up +functionCall: functionCallPlayerSeekFwd + +[Rewind] +enabled: false +Type: Button +Pin: 8 +pull_up_down: pull_up +functionCall: functionCallPlayerSeekBack + [Halt] enabled: False Type: Button -Pin: 21 -pull_up: True -hold_time: 0.3 +Pin: 25 +pull_up_down: pull_up functionCall: functionCallPlayerPauseForce + +[RFIDDevice] +enabled: True +Type: Button +Pin: 21 +pull_up_down: pull_up +functionCall: functionCallPlayerStop From 4c02d597e1c3c1e2fa917af09e95d9f399bad034 Mon Sep 17 00:00:00 2001 From: T0bi79 <51325380+T0bi79@users.noreply.github.com> Date: Thu, 9 Sep 2021 20:10:23 +0200 Subject: [PATCH 147/206] Update gpio_settings.ini.sample --- misc/sampleconfigs/gpio_settings.ini.sample | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/misc/sampleconfigs/gpio_settings.ini.sample b/misc/sampleconfigs/gpio_settings.ini.sample index b05004c7a..e14444991 100644 --- a/misc/sampleconfigs/gpio_settings.ini.sample +++ b/misc/sampleconfigs/gpio_settings.ini.sample @@ -3,7 +3,7 @@ enabled: True antibouncehack: False [VolumeControl] -enabled: True +enabled: False Type: TwoButtonControl ;or RotaryEncoder Pin1: 5 Pin2: 6 @@ -16,7 +16,7 @@ functionCall2: functionCallVolD functionCallTwoButtons: functionCallVol0 ;only for TwoButtonControl [PrevNextControl] -enabled: True +enabled: False Type: TwoButtonControl Pin1: 22 Pin2: 23 @@ -28,7 +28,7 @@ hold_time: 0.3 hold_mode: None [PlayPause] -enabled: True +enabled: False Type: Button Pin: 27 pull_up_down: pull_up @@ -93,14 +93,14 @@ pull_up_down: pull_up functionCall: functionCallPlayerPrev [FastForward] -enabled: false +enabled: False Type: Button Pin: 7 pull_up_down: pull_up functionCall: functionCallPlayerSeekFwd [Rewind] -enabled: false +enabled: False Type: Button Pin: 8 pull_up_down: pull_up @@ -114,7 +114,7 @@ pull_up_down: pull_up functionCall: functionCallPlayerPauseForce [RFIDDevice] -enabled: True +enabled: False Type: Button Pin: 21 pull_up_down: pull_up From f838a876b1bebea9379941d5a306c76d16b26ce8 Mon Sep 17 00:00:00 2001 From: tobiasb <tobiasb@tobias-pc> Date: Sat, 18 Sep 2021 20:02:06 +0200 Subject: [PATCH 148/206] Added sustainability notes in README --- README.md | 11 +++++++++++ scripts/installscripts/buster-install-default.sh | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a88318124..52c48d263 100755 --- a/README.md +++ b/README.md @@ -96,6 +96,17 @@ The **web app** runs on any device and is mobile optimised. It provides: **See more innovation, upcycling and creativity in the [Phoniebox Gallery](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/GALLERY) or visit and share the project's homepage at [phoniebox.de](http://phoniebox.de/). There is also an [english Phoniebox page](http://phoniebox.de/index.php?l=en).** +## Sustainability + +You might be surprised how easy and affordable you can get a RaspberryPi or an "appropriate" housing for your Phoniebox **second hand**. Think about the planet before you buy a new one. +Creating a Phoniebox may be sustainable for the following reasons: + +* You **buy things second hand** or **do upcycling on unused objects** and reduce newly produced products +* You built your Phoniebox yourself, so **maintaining and repairing is not a problem** (Additionally **a great community helps** you) +* Since the Phoniebox uses Linux as a base system it's **very unlikely that you run out of system and security updates** - so it can run and run and run... +* **RFID cards or tags can be reused - no need to buy new plastic elements** for changing the music or story linked to a card +* **Build it together with your kids** to show them that building things on their own is possible and in cooperation with others makes life easier and fun at the same time + ## <a name="install"></a>Installation * Installation instructions for Raspbian (https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch). diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index b116d9fa9..9220c4212 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -5,7 +5,7 @@ # The absolute path to the folder which contains this script PATHDATA="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -GIT_BRANCH=${GIT_BRANCH:-develop} +GIT_BRANCH=${GIT_BRANCH:-master} clear echo "##################################################### @@ -528,7 +528,7 @@ cd /home/pi/ || exit # Must be changed to the correct branch!!! # Change to master when merging develop with master!!! -git clone https://github.com/topas-rec/RPi-Jukebox-RFID.git --branch "${GIT_BRANCH}" +git clone https://github.com/MiczFlor/RPi-Jukebox-RFID.git --branch "${GIT_BRANCH}" # check, which branch was cloned git status From f26dec3a9afb6ae403f6f16286860c446b891c56 Mon Sep 17 00:00:00 2001 From: lenlennart <53861396+lenlennart@users.noreply.github.com> Date: Wed, 22 Sep 2021 12:26:24 +0200 Subject: [PATCH 149/206] adjust playerpauseforce adjust playerpauseforce to only pauses when currently playing see bug #1520 --- scripts/playout_controls.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/playout_controls.sh b/scripts/playout_controls.sh index e67989329..0bc6a3a67 100755 --- a/scripts/playout_controls.sh +++ b/scripts/playout_controls.sh @@ -744,7 +744,13 @@ case $COMMAND in then /bin/sleep $VALUE fi - mpc pause + PLAYSTATE=$(echo -e "status\nclose" | nc -w 1 localhost 6600 | grep -o -P '(?<=state: ).*') + # Only pause when currently playing + # Otherwise mpc might go from "stopped" back to "pause", causing inconsitency as there is nothing to "resume" + if [ "$PLAYSTATE" == "play" ] + then + mpc pause + fi ;; playerplay) # play / resume current track From eefec5626efcf7bcc43f061d720358c354cc3f5d Mon Sep 17 00:00:00 2001 From: Groovylein <kiri@AcerElementaryOS.fritz.box> Date: Mon, 4 Oct 2021 20:53:29 +0200 Subject: [PATCH 150/206] Removed hard coded homedir from install script --- .../installscripts/buster-install-default.sh | 59 +++++++++++++++---- 1 file changed, 47 insertions(+), 12 deletions(-) diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index abb1c050c..97fbc5b45 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -4,7 +4,7 @@ # # NOTE: Running automated install (without interaction): # Each install creates a file called PhonieboxInstall.conf -# in the folder /home/pi/ +# in you $HOME directory # You can install the Phoniebox using such a config file # which means you don't need to run the interactive install: # @@ -12,7 +12,7 @@ # https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/scripts/installscripts # (note: currently only works for buster and newer OS) # 2. make the file executable: chmod +x -# 3. place the PhonieboxInstall.conf in the folder /home/pi/ +# 3. place the PhonieboxInstall.conf in the folder $HOME # 4. run the installscript with option -a like this: # buster-install-default.sh -a @@ -28,7 +28,7 @@ DATETIME=$(date +"%Y%m%d_%H%M%S") SCRIPTNAME="$(basename $0)" JOB="${SCRIPTNAME}" -HOME_DIR="/home/pi" +HOME_DIR=$(echo $HOME) JUKEBOX_HOME_DIR="${HOME_DIR}/RPi-Jukebox-RFID" LOGDIR="${HOME_DIR}"/phoniebox_logs @@ -104,9 +104,9 @@ will guide you through the configuration. If you want to run the AUTOMATED INSTALL (non-interactive) from an existing configuration file, do the following: 1. exit this install script (press n) -2. place your PhonieboxInstall.conf in the folder /home/pi/ +2. place your PhonieboxInstall.conf in the folder ${HOME_DIR} 3. run the installscript with option -a. For example like this: - ./home/pi/buster-install-default.sh -a + .${HOME_DIR}/buster-install-default.sh -a " read -rp "Continue interactive installation? [Y/n] " response case "$response" in @@ -545,7 +545,7 @@ config_audio_folder() { ##################################################### # Folder path for audio files - # default: /home/pi/RPi-Jukebox-RFID/shared/audiofolders + # default: $HOME/RPi-Jukebox-RFID/shared/audiofolders clear @@ -683,7 +683,10 @@ samba_config() { sudo chmod 644 "${smb_conf}" # for $DIRaudioFolders using | as alternate regex delimiter because of the folder path slash sudo sed -i 's|%DIRaudioFolders%|'"$DIRaudioFolders"'|' "${smb_conf}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${smb_conf}" # Samba: create user 'pi' with password 'raspberry' + # ToDo: use current user with a default password (echo "raspberry"; echo "raspberry") | sudo smbpasswd -s -a pi } @@ -699,6 +702,8 @@ web_server_config() { sudo cp "${jukebox_dir}"/misc/sampleconfigs/lighttpd.conf.buster-default.sample "${lighthttpd_conf}" sudo chown root:root "${lighthttpd_conf}" sudo chmod 644 "${lighthttpd_conf}" + # double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${lighthttpd_conf}" # Web server PHP7 fastcgi conf # -rw-r--r-- 1 root root 398 Apr 30 09:35 /etc/lighttpd/conf-available/15-fastcgi-php.conf @@ -870,6 +875,8 @@ install_main() { # create config file for web app from sample sudo cp "${jukebox_dir}"/htdocs/config.php.sample "${jukebox_dir}"/htdocs/config.php + # double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${jukebox_dir}"/htdocs/config.php # Starting web server and php7 sudo lighttpd-enable-mod fastcgi @@ -901,12 +908,30 @@ install_main() { sudo rm "${systemd_dir}"/phoniebox-gpio-buttons.service echo "### Done with erasing old daemons. Stop ignoring errors!" # 2. install new ones - this is version > 1.1.8-beta - sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-rfid-reader.service.stretch-default.sample "${systemd_dir}"/phoniebox-rfid-reader.service + RFID_READER_SERVICE="${systemd_dir}/phoniebox-rfid-reader.service" + sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-rfid-reader.service.stretch-default.sample "${RFID_READER_SERVICE}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${RFID_READER_SERVICE}" + #startup sound now part of phoniebox-startup-scripts #sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-startup-sound.service.stretch-default.sample "${systemd_dir}"/phoniebox-startup-sound.service - sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-startup-scripts.service.stretch-default.sample "${systemd_dir}"/phoniebox-startup-scripts.service - sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-idle-watchdog.service.sample "${systemd_dir}"/phoniebox-idle-watchdog.service - [[ "${GPIOconfig}" == "YES" ]] && sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-gpio-control.service.sample "${systemd_dir}"/phoniebox-gpio-control.service + STARTUP_SCRIPT_SERVICE="${systemd_dir}/phoniebox-startup-scripts.service" + sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-startup-scripts.service.stretch-default.sample "${STARTUP_SCRIPT_SERVICE}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${STARTUP_SCRIPT_SERVICE}" + + IDLE_WATCHDOG_SERVICE="${systemd_dir}/phoniebox-idle-watchdog.service" + sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-idle-watchdog.service.sample "${IDLE_WATCHDOG_SERVICE}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${IDLE_WATCHDOG_SERVICE}" + + if [[ "${GPIOconfig}" == "YES" ]]; then + GPIO_CONTROL_SERVICE="${systemd_dir}/phoniebox-gpio-control.service" + sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-gpio-control.service.sample "${GPIO_CONTROL_SERVICE}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${GPIO_CONTROL_SERVICE}" + fi + sudo chown root:root "${systemd_dir}"/phoniebox-*.service sudo chmod 644 "${systemd_dir}"/phoniebox-*.service # enable the services needed @@ -940,12 +965,17 @@ install_main() { sudo sed -i 's/%spotify_client_secret%/'"$SPOTIclientsecret"'/' "${etc_mopidy_conf}" # for $DIRaudioFolders using | as alternate regex delimiter because of the folder path slash sudo sed -i 's|%DIRaudioFolders%|'"$DIRaudioFolders"'|' "${etc_mopidy_conf}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${etc_mopidy_conf}" + sed -i 's/%spotify_username%/'"$SPOTIuser"'/' "${mopidy_conf}" sed -i 's/%spotify_password%/'"$SPOTIpass"'/' "${mopidy_conf}" sed -i 's/%spotify_client_id%/'"$SPOTIclientid"'/' "${mopidy_conf}" sed -i 's/%spotify_client_secret%/'"$SPOTIclientsecret"'/' "${mopidy_conf}" # for $DIRaudioFolders using | as alternate regex delimiter because of the folder path slash sudo sed -i 's|%DIRaudioFolders%|'"$DIRaudioFolders"'|' "${mopidy_conf}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${mopidy_conf}" fi # GPIO-Control @@ -968,6 +998,8 @@ install_main() { sudo sed -i 's/%AUDIOiFace%/'"$AUDIOiFace"'/' "${mpd_conf}" # for $DIRaudioFolders using | as alternate regex delimiter because of the folder path slash sudo sed -i 's|%DIRaudioFolders%|'"$DIRaudioFolders"'|' "${mpd_conf}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${mpd_conf}" sudo chown mpd:audio "${mpd_conf}" sudo chmod 640 "${mpd_conf}" fi @@ -1087,7 +1119,10 @@ existing_assets() { # make buttons_usb_encoder.py ready to be use from phoniebox-buttons-usb-encoder service sudo chmod +x "${jukebox_dir}"/components/controls/buttons_usb_encoder/buttons_usb_encoder.py # make sure service is still enabled by registering again - sudo cp -v "${jukebox_dir}"/components/controls/buttons_usb_encoder/phoniebox-buttons-usb-encoder.service.sample /etc/systemd/system/phoniebox-buttons-usb-encoder.service + USB_BUTTONS_SERVICE="/etc/systemd/system/phoniebox-buttons-usb-encoder.service" + sudo cp -v "${jukebox_dir}"/components/controls/buttons_usb_encoder/phoniebox-buttons-usb-encoder.service.sample "${USB_BUTTONS_SERVICE}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${USB_BUTTONS_SERVICE}" sudo systemctl start phoniebox-buttons-usb-encoder.service sudo systemctl enable phoniebox-buttons-usb-encoder.service fi @@ -1274,7 +1309,7 @@ main() { else echo "Skipping USB device setup..." echo "For manual registration of a USB card reader type:" - echo "python3 /home/pi/RPi-Jukebox-RFID/scripts/RegisterDevice.py" + echo "python3 ${HOME_DIR}/RPi-Jukebox-RFID/scripts/RegisterDevice.py" echo " " echo "Reboot is required to activate all settings!" fi From aace91441bd2db502c042bde66fb5959784b40d2 Mon Sep 17 00:00:00 2001 From: Groovylein <kiriakos.antoniadis.kiri@gmail.com> Date: Mon, 4 Oct 2021 21:11:25 +0200 Subject: [PATCH 151/206] Enhanced automated tests --- .github/workflows/dockerimage.yml | 6 + ...ckerfile.buster.test_install_altuser.amd64 | 33 ++ .../tests/run_installation_tests2_altuser.sh | 34 ++ .../tests/run_installation_tests3_altuser.sh | 32 ++ .../tests/run_installation_tests_altuser.sh | 32 ++ .../tests/test_installation_altuser.sh | 349 ++++++++++++++++++ 6 files changed, 486 insertions(+) create mode 100644 ci/Dockerfile.buster.test_install_altuser.amd64 create mode 100644 scripts/installscripts/tests/run_installation_tests2_altuser.sh create mode 100644 scripts/installscripts/tests/run_installation_tests3_altuser.sh create mode 100644 scripts/installscripts/tests/run_installation_tests_altuser.sh create mode 100755 scripts/installscripts/tests/test_installation_altuser.sh diff --git a/.github/workflows/dockerimage.yml b/.github/workflows/dockerimage.yml index 20b0a4ba3..9ce6317a5 100644 --- a/.github/workflows/dockerimage.yml +++ b/.github/workflows/dockerimage.yml @@ -19,3 +19,9 @@ jobs: docker run --rm -i rpi-jukebox-rfid-buster:latest /code/scripts/installscripts/tests/run_installation_tests.sh docker run --rm -i rpi-jukebox-rfid-buster:latest /code/scripts/installscripts/tests/run_installation_tests2.sh docker run --rm -i rpi-jukebox-rfid-buster:latest /code/scripts/installscripts/tests/run_installation_tests3.sh + - name: Build Docker image and run tests for alternate user hans + run: | + docker build . --file ./ci/Dockerfile.buster.test_install_altuser.amd64 --tag rpi-jukebox-rfid-buster-altuser:latest + docker run --rm -i rpi-jukebox-rfid-buster-altuser:latest /code/scripts/installscripts/tests/run_installation_tests_altuser.sh + docker run --rm -i rpi-jukebox-rfid-buster-altuser:latest /code/scripts/installscripts/tests/run_installation_tests2_altuser.sh + docker run --rm -i rpi-jukebox-rfid-buster-altuser:latest /code/scripts/installscripts/tests/run_installation_tests3_altuser.sh diff --git a/ci/Dockerfile.buster.test_install_altuser.amd64 b/ci/Dockerfile.buster.test_install_altuser.amd64 new file mode 100644 index 000000000..316c2ba68 --- /dev/null +++ b/ci/Dockerfile.buster.test_install_altuser.amd64 @@ -0,0 +1,33 @@ +FROM debian:buster + +COPY . /code +WORKDIR /code + +RUN groupadd --gid 1000 wurst ;\ + useradd -u 1000 -g 1000 -G sudo -d /home/hans -m -s /bin/bash -p '$1$iV7TOwOe$6ojkJQXyEA9bHd/SqNLNj0' hans ;\ + chown -R 1000:1000 /code /home/hans ;\ + chmod +x /code/scripts/installscripts/buster-install-default.sh ;\ + chmod +x /code/scripts/installscripts/tests/run_installation_tests.sh ;\ + chmod +x /code/scripts/installscripts/tests/run_installation_tests2.sh ;\ + chmod +x /code/scripts/installscripts/tests/run_installation_tests3.sh + +RUN export DEBIAN_FRONTEND=noninteractive ;\ + apt-get update ;\ + apt-get -y install curl gnupg sudo nano systemd apt-utils;\ + echo 'deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi' > /etc/apt/sources.list.d/raspi.list ;\ + echo 'deb http://archive.raspberrypi.org/debian/ buster main' >> /etc/apt/sources.list.d/raspi.list ;\ + curl http://raspbian.raspberrypi.org/raspbian.public.key | apt-key add - ;\ + curl http://archive.raspberrypi.org/debian/raspberrypi.gpg.key | apt-key add - ;\ + echo 'hans ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/hans ;\ + apt-get clean ;\ + rm -rf /var/cache/apt/* /var/lib/apt/lists/* + +RUN export DEBIAN_FRONTEND=noninteractive ;\ + apt-get update ;\ + apt-get -y dist-upgrade --auto-remove --purge ;\ + apt-get -y install wget build-essential git iw locales wpasupplicant;\ + apt-get clean ;\ + touch /boot/cmdlinetxt ;\ + rm -rf /var/cache/apt/* /var/lib/apt/lists/* + +USER hans diff --git a/scripts/installscripts/tests/run_installation_tests2_altuser.sh b/scripts/installscripts/tests/run_installation_tests2_altuser.sh new file mode 100644 index 000000000..03bce2af7 --- /dev/null +++ b/scripts/installscripts/tests/run_installation_tests2_altuser.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash + +# Install Phoniebox and test it +# Used e.g. for tests on Docker + +# Objective: Test installation with script using a RC522 reader + +# Print current path +echo $PWD + +# Preparations +# Skip interactive Samba WINS config dialog +echo "samba-common samba-common/dhcp boolean false" | sudo debconf-set-selections +# No interactive frontend +export DEBIAN_FRONTEND=noninteractive + +# Run installation (in interactive mode) +# y confirm interactive +# n dont configure wifi +# y PCM as iface +# n no spotify +# y configure mpd +# y audio default location +# y use gpio +# y RFID registration +# 2 use RC522 reader +# yes, reader is connected +# n No reboot + +# TODO check, how this behaves on branches other than develop +GIT_BRANCH=develop bash ./scripts/installscripts/buster-install-default.sh <<< $'y\nn\n\ny\n\nn\n\ny\n\ny\n\ny\n\ny\ny\n2\ny\nn\n' + +# Test installation +./scripts/installscripts/tests/test_installation_altuser.sh diff --git a/scripts/installscripts/tests/run_installation_tests3_altuser.sh b/scripts/installscripts/tests/run_installation_tests3_altuser.sh new file mode 100644 index 000000000..2db9b991f --- /dev/null +++ b/scripts/installscripts/tests/run_installation_tests3_altuser.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +# Install Phoniebox and test it +# Used e.g. for tests on Docker + +# Objective: Test installation with script using a configuration with mopidy + +# Print current path +echo $PWD + +# Preparations +# Skip interactive Samba WINS config dialog +echo "samba-common samba-common/dhcp boolean false" | sudo debconf-set-selections +# No interactive frontend +export DEBIAN_FRONTEND=noninteractive + +# Run installation (in interactive mode) +# y confirm interactive +# n dont configure wifi +# y Headphone as iface +# y spotify with myuser, mypassword, myclient_id, myclient_secret +# y configure mpd +# y audio default location +# y config gpio +# n no RFID registration +# n No reboot + +# TODO check, how this behaves on branches other than develop +GIT_BRANCH=develop bash ./scripts/installscripts/buster-install-default.sh <<< $'y\nn\n\ny\n\ny\nmyuser\nmypassword\nmyclient_id\nmyclient_secret\n\ny\n\ny\n\ny\n\ny\nn\nn\n' + +# Test installation +./scripts/installscripts/tests/test_installation_altuser.sh diff --git a/scripts/installscripts/tests/run_installation_tests_altuser.sh b/scripts/installscripts/tests/run_installation_tests_altuser.sh new file mode 100644 index 000000000..d06aac742 --- /dev/null +++ b/scripts/installscripts/tests/run_installation_tests_altuser.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +# Install Phoniebox and test it +# Used e.g. for tests on Docker + +# Objective: Test installation with script using a simple configuration + +# Print current path +echo $PWD + +# Preparations +# Skip interactive Samba WINS config dialog +echo "samba-common samba-common/dhcp boolean false" | sudo debconf-set-selections +# No interactive frontend +export DEBIAN_FRONTEND=noninteractive + +# Run installation (in interactive mode) +# y confirm interactive +# n dont configure wifi +# y Headphone as iface +# n no spotify +# y configure mpd +# y audio default location +# y config gpio +# n no RFID registration +# n No reboot + +# TODO check, how this behaves on branches other than develop +GIT_BRANCH=develop bash ./scripts/installscripts/buster-install-default.sh <<< $'y\nn\n\ny\n\nn\n\ny\n\ny\n\ny\n\ny\nn\nn\n' + +# Test installation +./scripts/installscripts/tests/test_installation_altuser.sh diff --git a/scripts/installscripts/tests/test_installation_altuser.sh b/scripts/installscripts/tests/test_installation_altuser.sh new file mode 100755 index 000000000..de61a2f0b --- /dev/null +++ b/scripts/installscripts/tests/test_installation_altuser.sh @@ -0,0 +1,349 @@ +#!/usr/bin/env bash + +# Test to verify that the installation script works as expected. +# This script needs to be adapted, if new packages, etc are added to the install script + +# The absolute path to the folder which contains this script +PATHDATA="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +HOME_DIR="/home/hans" + +tests=0 +failed_tests=0 + +# Tool functions + +check_chmod_chown() { + local mod_expected=$1 + local user_expected=$2 + local group_expected=$3 + local dir=$4 + local files=$5 + + for file in ${files}; + do + mod_actual=$(stat --format '%a' "${dir}/${file}") + user_actual=$(stat -c '%U' "${dir}/${file}") + group_actual=$(stat -c '%G' "${dir}/${file}") + test ! "${mod_expected}" -eq "${mod_actual}" && echo " ERROR: ${file} actual mod (${mod_actual}) differs from expected (${mod_expected})!" + test ! "${user_expected}" == "${user_actual}" && echo " ERROR: ${file} actual owner (${user_actual}) differs from expected (${user_expected})!" + test ! "${group_expected}" == "${group_actual}" && echo " ERROR: ${file} actual group (${group_actual}) differs from expected (${group_expected})!" + done +} + +check_file_contains_string() { + local string="$1" + local file="$2" + + # sudo is required for checking /etc/mopidy/mopidy.conf + if [[ ! $(sudo grep -iw "${string}" "${file}") ]]; then + echo " ERROR: '${string}' not found in ${file}" + ((failed_tests++)) + fi + ((tests++)) +} + +check_service_state() { + local service="$1" + local desired_state="$2" + + local actual_state=$(systemctl show -p ActiveState --value "${service}") + if [[ ! "${actual_state}" == "${desired_state}" ]]; then + echo " ERROR: service ${service} is not ${desired_state} (state: ${actual_state})." + ((failed_tests++)) + fi + ((tests++)) +} + +check_service_enablement() { + local service="$1" + local desired_enablement="$2" + + local actual_enablement=$(systemctl is-enabled "${service}") + if [[ ! "${actual_enablement}" == "${desired_enablement}" ]]; then + echo " ERROR: service ${service} is not ${desired_enablement} (state: ${actual_enablement})." + ((failed_tests++)) + fi + ((tests++)) +} + +check_variable() { + local variable=${1} + # check if variable exist and if it's empty + test -z "${!variable+x}" && echo "ERROR: \$${variable} is missing!" && fail=true && return + test "${!variable}" == "" && echo "ERROR: \$${variable} is empty!" && fail=true +} + +# Verify functions + +verify_conf_file() { + local install_conf="${HOME_DIR}/PhonieboxInstall.conf" + printf "\nTESTING PhonieboxInstall.conf file...\n\n" + # check that PhonieboxInstall.conf exists and is not empty + + # check if config file exists + if [[ -f "${install_conf}" ]]; then + # Source config file + source "${install_conf}" + cat "${install_conf}" + echo "" + else + echo "ERROR: ${install_conf} does not exist!" + exit 1 + fi + + fail=false + if [[ -z "${WIFIconfig+x}" ]]; then + echo " ERROR: \$WIFIconfig is missing or not set!" && fail=true + else + echo "\$WIFIconfig is set to '$WIFIconfig'" + if [[ "$WIFIconfig" == "YES" ]]; then + check_variable "WIFIcountryCode" + check_variable "WIFIssid" + check_variable "WIFIpass" + check_variable "WIFIip" + check_variable "WIFIipRouter" + fi + fi + check_variable "EXISTINGuse" + check_variable "AUDIOiFace" + + if [[ -z "${SPOTinstall+x}" ]]; then + echo " ERROR: \$SPOTinstall is missing or not set!" && fail=true + else + echo "\$SPOTinstall is set to '$SPOTinstall'" + if [ "$SPOTinstall" == "YES" ]; then + check_variable "SPOTIuser" + check_variable "SPOTIpass" + check_variable "SPOTIclientid" + check_variable "SPOTIclientsecret" + fi + fi + check_variable "MPDconfig" + check_variable "DIRaudioFolders" + + if [ "${fail}" == "true" ]; then + exit 1 + fi + + echo "" +} + +verify_wifi_settings() { + local dhcpcd_conf="/etc/dhcpcd.conf" + local wpa_supplicant_conf="/etc/wpa_supplicant/wpa_supplicant.conf" + printf "\nTESTING WiFi settings...\n" + + # check conf files + check_file_contains_string "static ip_address=${WIFIip}/24" "${dhcpcd_conf}" + check_file_contains_string "static routers=${WIFIipRouter}" "${dhcpcd_conf}" + check_file_contains_string "static domain_name_servers=8.8.8.8 ${WIFIipRouter}" "${dhcpcd_conf}" + + check_file_contains_string "country=${WIFIcountryCode}" "${wpa_supplicant_conf}" + check_file_contains_string "ssid=\"${WIFIssid}\"" "${wpa_supplicant_conf}" + check_file_contains_string "psk=\"${WIFIpass}\"" "${wpa_supplicant_conf}" + + # check owner and permissions + check_chmod_chown 664 root netdev "/etc" "dhcpcd.conf" + check_chmod_chown 664 root netdev "/etc/wpa_supplicant" "wpa_supplicant.conf" + + # check that dhcpcd service is enabled and started + check_service_state dhcpcd active + check_service_enablement dhcpcd enabled +} + +verify_apt_packages(){ + local packages="libspotify-dev samba +samba-common-bin gcc lighttpd php7.3-common php7.3-cgi php7.3 at mpd mpc mpg123 git ffmpeg +resolvconf spi-tools python3 python3-dev python3-pip python3-mutagen python3-gpiozero +python3-spidev netcat alsa-utils" + # TODO apt-transport-https checking only on RPi is currently a workaround + local packages_raspberrypi="apt-transport-https raspberrypi-kernel-headers" + local packages_spotify="mopidy mopidy-mpd mopidy-local mopidy-spotify libspotify12 +python3-cffi python3-ply python3-pycparser python3-spotify" + + printf "\nTESTING installed packages...\n\n" + + # also check for spotify packages if it has been installed + if [[ "${SPOTinstall}" == "YES" ]]; then + packages="${packages} ${packages_spotify}" + fi + + # check for raspberry pi packages only on raspberry pi's but not on test docker containers running on x86_64 machines + if [[ $(uname -m) =~ ^armv.+$ ]]; then + packages="${packages} ${packages_raspberrypi}" + fi + + for package in ${packages} + do + if [[ $(apt -qq list "${package}" 2>/dev/null | grep 'installed') ]]; then + echo " ${package} is installed" + else + echo " ERROR: ${package} is not installed" + ((failed_tests++)) + fi + ((tests++)) + done +} + +verify_pip_packages() { + local modules="evdev spi-py youtube_dl pyserial RPi.GPIO" + local modules_spotify="Mopidy-Iris" + local modules_pn532="py532lib" + local modules_rc522="pi-rc522" + local deviceName="${JUKEBOX_HOME_DIR}"/scripts/deviceName.txt + + printf "\nTESTING installed pip modules...\n\n" + + # also check for spotify pip modules if it has been installed + if [[ "${SPOTinstall}" == "YES" ]]; then + modules="${modules} ${modules_spotify}" + fi + + if [[ -f "${deviceName}" ]]; then + # RC522 reader is used + if grep -Fxq "${deviceName}" MFRC522 + then + modules="${modules} ${modules_rc522}" + fi + + # PN532 reader is used + if grep -Fxq "${deviceName}" PN532 + then + modules="${modules} ${modules_pn532}" + fi + fi + + for module in ${modules} + do + if [[ $(pip3 show "${module}") ]]; then + echo " ${module} is installed" + else + echo " ERROR: pip module ${module} is not installed" + ((failed_tests++)) + fi + ((tests++)) + done +} + +verify_samba_config() { + printf "\nTESTING samba config...\n\n" + check_chmod_chown 644 root root "/etc/samba" "smb.conf" + + check_file_contains_string "path=${DIRaudioFolders}" "/etc/samba/smb.conf" +} + +verify_webserver_config() { + printf "\nTESTING webserver config...\n\n" + check_chmod_chown 644 root root "/etc/lighttpd" "lighttpd.conf" + check_chmod_chown 644 root root "/etc/lighttpd/conf-available" "15-fastcgi-php.conf" + check_chmod_chown 644 root root "/etc/php/7.3/cgi" "php.ini" + check_chmod_chown 440 root root "/etc" "sudoers" + + # Bonus TODO: check that fastcgi and fastcgi-php mods are enabled +} + +verify_systemd_services() { + printf "\nTESTING systemd services...\n\n" + # check that services exist + check_chmod_chown 644 root root "/etc/systemd/system" "phoniebox-rfid-reader.service phoniebox-startup-scripts.service phoniebox-gpio-control.service phoniebox-idle-watchdog.service" + + # check that phoniebox services are enabled + check_service_enablement phoniebox-idle-watchdog enabled + check_service_enablement phoniebox-rfid-reader enabled + check_service_enablement phoniebox-startup-scripts enabled + check_service_enablement phoniebox-gpio-control enabled +} + +verify_spotify_config() { + local etc_mopidy_conf="/etc/mopidy/mopidy.conf" + local mopidy_conf="${HOME_DIR}/.config/mopidy/mopidy.conf" + + printf "\nTESTING spotify config...\n\n" + + check_file_contains_string "username = ${SPOTIuser}" "${etc_mopidy_conf}" + check_file_contains_string "password = ${SPOTIpass}" "${etc_mopidy_conf}" + check_file_contains_string "client_id = ${SPOTIclientid}" "${etc_mopidy_conf}" + check_file_contains_string "client_secret = ${SPOTIclientsecret}" "${etc_mopidy_conf}" + check_file_contains_string "media_dir = ${DIRaudioFolders}" "${etc_mopidy_conf}" + + check_file_contains_string "username = ${SPOTIuser}" "${mopidy_conf}" + check_file_contains_string "password = ${SPOTIpass}" "${mopidy_conf}" + check_file_contains_string "client_id = ${SPOTIclientid}" "${mopidy_conf}" + check_file_contains_string "client_secret = ${SPOTIclientsecret}" "${mopidy_conf}" + check_file_contains_string "media_dir = ${DIRaudioFolders}" "${mopidy_conf}" + + # check that mopidy service is enabled + check_service_enablement mopidy enabled + # check that mpd service is disabled + check_service_enablement mpd disabled +} + +verify_mpd_config() { + local mpd_conf="/etc/mpd.conf" + + printf "\nTESTING mpd config...\n\n" + + check_file_contains_string "^[[:blank:]]\+mixer_control[[:blank:]]\+\"${AUDIOiFace}\"" "${mpd_conf}" + check_file_contains_string "^music_directory[[:blank:]]\+\"${DIRaudioFolders}\"" "${mpd_conf}" + + check_chmod_chown 640 mpd audio "/etc" "mpd.conf" + + # check that mpd service is enabled, when Spotify support is not installed + if [[ "${SPOTinstall}" == "NO" ]]; then + check_service_enablement mpd enabled + fi +} + +verify_folder_access() { + local jukebox_dir="${HOME_DIR}/RPi-Jukebox-RFID" + printf "\nTESTING folder access...\n\n" + + # check owner and permissions + check_chmod_chown 775 hans www-data "${jukebox_dir}" "playlists shared htdocs settings" + # ${DIRaudioFolders} => "testing" "audiofolders" + check_chmod_chown 775 hans www-data "${DIRaudioFolders}/.." "audiofolders" + + #find .sh and .py scripts that are NOT executable + local count=$(find . -maxdepth 1 -type f \( -name "*.sh" -o -name "*.py" \) ! -executable | wc -l) + if [[ "${count}" -gt 0 ]]; then + echo " ERROR: found ${count} '*.sh' and/or '*.py' files that are NOT executable:" + find . -maxdepth 1 -type f \( -name "*.sh" -o -name "*.py" \) ! -executable + ((failed_tests++)) + fi + ((tests++)) +} + +main() { + printf "\nTesting installation:\n" + verify_conf_file + if [[ "$WIFIconfig" == "YES" ]]; then + verify_wifi_settings + fi + verify_apt_packages + verify_pip_packages + verify_samba_config + verify_webserver_config + verify_systemd_services + if [[ "${SPOTinstall}" == "YES" ]]; then + verify_spotify_config + fi + verify_mpd_config + verify_folder_access +} + +start=$(date +%s) +main +end=$(date +%s) + +runtime=$((end-start)) +((h=${runtime}/3600)) +((m=($runtime%3600)/60)) +((s=$runtime%60)) + +if [[ "${failed_tests}" -gt 0 ]]; then + echo "${failed_tests} Test(s) failed (of ${tests} tests) (in ${h}h ${m}m ${s}s)." + exit 1 +else + echo "${tests} tests done in ${h}h ${m}m ${s}s." +fi + From f941bdb9b3c69d22232216e4f593283e80df7220 Mon Sep 17 00:00:00 2001 From: Groovylein <kiriakos.antoniadis.kiri@gmail.com> Date: Mon, 4 Oct 2021 21:24:31 +0200 Subject: [PATCH 152/206] Fixing permissions in docker image altuser --- ci/Dockerfile.buster.test_install_altuser.amd64 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/Dockerfile.buster.test_install_altuser.amd64 b/ci/Dockerfile.buster.test_install_altuser.amd64 index 316c2ba68..9def1fcbf 100644 --- a/ci/Dockerfile.buster.test_install_altuser.amd64 +++ b/ci/Dockerfile.buster.test_install_altuser.amd64 @@ -7,9 +7,9 @@ RUN groupadd --gid 1000 wurst ;\ useradd -u 1000 -g 1000 -G sudo -d /home/hans -m -s /bin/bash -p '$1$iV7TOwOe$6ojkJQXyEA9bHd/SqNLNj0' hans ;\ chown -R 1000:1000 /code /home/hans ;\ chmod +x /code/scripts/installscripts/buster-install-default.sh ;\ - chmod +x /code/scripts/installscripts/tests/run_installation_tests.sh ;\ - chmod +x /code/scripts/installscripts/tests/run_installation_tests2.sh ;\ - chmod +x /code/scripts/installscripts/tests/run_installation_tests3.sh + chmod +x /code/scripts/installscripts/tests/run_installation_tests_altuser.sh ;\ + chmod +x /code/scripts/installscripts/tests/run_installation_tests2_altuser.sh ;\ + chmod +x /code/scripts/installscripts/tests/run_installation_tests3_altuser.sh RUN export DEBIAN_FRONTEND=noninteractive ;\ apt-get update ;\ From e4dc8d302547d003ade8efa3b32149a66922b07f Mon Sep 17 00:00:00 2001 From: pabera <1260686+pabera@users.noreply.github.com> Date: Fri, 8 Oct 2021 09:02:02 +0200 Subject: [PATCH 153/206] Update future3.md --- .github/ISSUE_TEMPLATE/future3.md | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/future3.md b/.github/ISSUE_TEMPLATE/future3.md index a2a2d7c32..ab5d6bf00 100644 --- a/.github/ISSUE_TEMPLATE/future3.md +++ b/.github/ISSUE_TEMPLATE/future3.md @@ -1,8 +1,19 @@ --- -name: Future3 Development Issue -about: For developing issues on Future3 (Version 3 pre-development) -title: "ISSUE SUMMARY on Future3" +name: future3 Bug Report +about: Use this template to report bugs for the upcoming version 3 +title: "ISSUE SUMMARY on future3" labels: future3, bug, needs triage --- -## Issue in Future3 +### Describe your problem + +Core, Web application ... + +#### What's your hardware set up? + +RPi version, RFID Reader, Audio devices etc. + +#### If possible, try to attach logs from ... (paths from RPi) + + * `~/RPi-Jukebox-RFID/shared/logs` -> General Jukebox logs + * `~/INSTALL-XXXXXXXXX.log` -> The logfile being generated when installing the Jukebox code From 2248fa3edf5822179fbb064b4d13581568f4e9e6 Mon Sep 17 00:00:00 2001 From: pabera <1260686+pabera@users.noreply.github.com> Date: Fri, 8 Oct 2021 20:34:51 +0200 Subject: [PATCH 154/206] Announce future3 Aplha 1 on develop branch Readme (#1547) * Announce future3 Aplha 1 * Update version naming --- README.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/README.md b/README.md index 70ea8adf6..0c1bd83f8 100755 --- a/README.md +++ b/README.md @@ -8,6 +8,31 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podcasts, web streams and spotify triggered by RFID cards. All plug and play via USB, no soldering iron needed. Update: if you must, it now also features a howto for adding GPIO buttons controls. +--- + + +## 🔥 Version 3 is coming ... + +Over the last few months, a few Phoniebox fans started to think about a potential future of the Jukebox code. Version 2 is mature +and works well but doesn't scale enough for future development. It's the mix of Shell, Python and PHP. The goal was to tidy up the codebase, focus on a single programming language for the core (Python), establish a solid plugin system and build a responsive web client. [Read on here if you want to learn about more reasons](https://rpi-jukebox-rfid.readthedocs.io/en/latest/). + +### ☝️ Looking for early adopters, testers and contributors + +We would like to invite you to try out this new version called `future3`. Let us know what you think about the new architecture, the new web application and help us find bugs (or fix them proactively). + +Just a handful of features from version 2.x have been ported to version 3 so far. Specifically GPIO support is currently missing but it's in active development and soon to arrive. + +If you like to try it out or contribute, check out the following references. If you post issues or pull requests on Github, make sure you label them with `[future3]`. + +* 🚀 **[Install Jukebox Version 3 Alpha](https://rpi-jukebox-rfid.readthedocs.io/en/latest/install.html)** +* 🐛 [Report a bug](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/new?assignees=&labels=future3%2C+bug%2C+needs+triage&template=future3.md&title=ISSUE+SUMMARY+on+future3) +* ☑️ [Feature Status](https://rpi-jukebox-rfid.readthedocs.io/en/latest/featurelist.html) +* 📖 [Documentation](https://rpi-jukebox-rfid.readthedocs.io/en/latest/) +* 👩💻 [Development](https://rpi-jukebox-rfid.readthedocs.io/en/latest/development_environment.html) +* 🦄 Code: [Release Branch](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/future3/main), [Development Branch](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/future3/develop) + +--- + ## The Phoniebox Calendar 2021 is here!!! Another bunch of wonderful designs! 2021 is the third Phoniebox calendar. If you are interested, you can see the [2019 and 2020 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). Download [the printable PDF of 2021 here](https://mi.cz/static/2021-Phoniebox-Calendar.pdf). @@ -20,6 +45,7 @@ The year 2020 also has a clear *:star: community hero :star:*: @s-martin has bee * **Discussions forums** we use Github's Discussions feature for a more forum style. Please ask general questions in [Discussions](https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions), bugs and enhancements should still be in [Issues](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues). +* **Phoniebox [future3 Alpha 1](https://rpi-jukebox-rfid.readthedocs.io/en/latest/) released (2021-10)** * **Gitter Community** we got ourselves a gitter community; chat us up at https://gitter.im/phoniebox * **Phoniebox [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) released (2021-08-12)** From bae35c5aba8d493d87945be5f96b0bf650cf0179 Mon Sep 17 00:00:00 2001 From: ChisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Tue, 12 Oct 2021 23:24:12 +0200 Subject: [PATCH 155/206] Increase server-side github flow checks for future3 branches --- .github/workflows/pythonpackage_future3.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index 61ab6f312..a2671b1dc 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -40,7 +40,10 @@ jobs: - name: Lint with flake8 run: | pip install flake8 - # stop the build if there are Python syntax errors or undefined names - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics --filename=*.py,*.py.* - # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics --filename=*.py,*.py.* + # Stop the build if linting fails + ./run_flake8.sh + - name: Build the docs + run: | + # Stop the build if documentation cannot be built + # Treat all warnings as errors + cd docs/sphinx && sphinx-build -W -a -b html . _build From f85411a7b5c4b3baf446a92dcef05083bf9e51ca Mon Sep 17 00:00:00 2001 From: ChisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Tue, 12 Oct 2021 23:40:45 +0200 Subject: [PATCH 156/206] Fix workflow file --- .github/workflows/pythonpackage_future3.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index a2671b1dc..3dca29880 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -41,9 +41,10 @@ jobs: run: | pip install flake8 # Stop the build if linting fails - ./run_flake8.sh + run_flake8.sh - name: Build the docs + working-directory: ./docs/sphinx run: | # Stop the build if documentation cannot be built # Treat all warnings as errors - cd docs/sphinx && sphinx-build -W -a -b html . _build + sphinx-build -W -a -b html . _build From 04d8a57b966c9c426cd130a507610cc97f4f140d Mon Sep 17 00:00:00 2001 From: ChisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Wed, 13 Oct 2021 00:18:06 +0200 Subject: [PATCH 157/206] Indentation fix --- .github/workflows/pythonpackage_future3.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index 3dca29880..09eb2c87c 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -7,12 +7,14 @@ on: paths: - '**.py' - '**.py.*' + - 'docs/sphinx/**' pull_request: branches: - 'future3/**' paths: - '**.py' - '**.py.*' + - 'docs/sphinx/**' jobs: build: @@ -41,8 +43,8 @@ jobs: run: | pip install flake8 # Stop the build if linting fails - run_flake8.sh - - name: Build the docs + ./run_flake8.sh + - name: Build the docs working-directory: ./docs/sphinx run: | # Stop the build if documentation cannot be built From 385f4fb6e3cafb7c3b514eef578eb701489e0904 Mon Sep 17 00:00:00 2001 From: ChisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Wed, 13 Oct 2021 00:36:15 +0200 Subject: [PATCH 158/206] Dependency fix --- .github/workflows/pythonpackage_future3.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index 09eb2c87c..12eb1bcff 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -49,4 +49,5 @@ jobs: run: | # Stop the build if documentation cannot be built # Treat all warnings as errors + pip install pyzmq sphinx-build -W -a -b html . _build From cb020cd1e0dbade1108dc18e55536e05af74e518 Mon Sep 17 00:00:00 2001 From: ChisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Wed, 13 Oct 2021 19:30:26 +0200 Subject: [PATCH 159/206] Add dependencies in future3 python + doc workflow --- .github/workflows/pythonpackage_future3.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index 12eb1bcff..1d67c012f 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -1,4 +1,4 @@ -name: Python Checks and Tests +name: Python + Docs Checks and Tests on: push: @@ -23,7 +23,7 @@ jobs: strategy: max-parallel: 4 matrix: - python-version: [3.6, 3.7, 3.8] + python-version: [3.7, 3.8] steps: - uses: actions/checkout@v1 @@ -39,6 +39,12 @@ jobs: pip install wheel pip install spidev pip install -r requirements.txt + # For operation of the Jukebox, ZMQ must be compiled from sources due to Websocket support + # When just building the docs, the regular ZMQ package is sufficient + pip install -r docs/sphinx/requirements_pyzmq.txt + pip install -r docs/sphinx/requirements.txt + # Also install all optional dependencies + pip install -r pip install -r src/jukebox/components/rfid/fake_gui_reader/requirements.txt - name: Lint with flake8 run: | pip install flake8 @@ -49,5 +55,4 @@ jobs: run: | # Stop the build if documentation cannot be built # Treat all warnings as errors - pip install pyzmq - sphinx-build -W -a -b html . _build + sphinx-build -W --keep-going -T -a -E -b html . _build From 98c0f96c27270f47a5023a26b7cd105ba2446f54 Mon Sep 17 00:00:00 2001 From: ChisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Wed, 13 Oct 2021 19:31:39 +0200 Subject: [PATCH 160/206] Syntax fix in future3 python + doc workflow --- .github/workflows/pythonpackage_future3.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index 1d67c012f..968fa26af 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -44,7 +44,7 @@ jobs: pip install -r docs/sphinx/requirements_pyzmq.txt pip install -r docs/sphinx/requirements.txt # Also install all optional dependencies - pip install -r pip install -r src/jukebox/components/rfid/fake_gui_reader/requirements.txt + pip install -r src/jukebox/components/rfid/fake_gui_reader/requirements.txt - name: Lint with flake8 run: | pip install flake8 From fe34629e3ca03a5297c21a6e8de12a2b378e845a Mon Sep 17 00:00:00 2001 From: ChisSoc <75833833+ChisSoc@users.noreply.github.com> Date: Wed, 13 Oct 2021 19:39:20 +0200 Subject: [PATCH 161/206] Path fix in future3 python + doc workflow --- .github/workflows/pythonpackage_future3.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index 968fa26af..c53756ca7 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -44,7 +44,7 @@ jobs: pip install -r docs/sphinx/requirements_pyzmq.txt pip install -r docs/sphinx/requirements.txt # Also install all optional dependencies - pip install -r src/jukebox/components/rfid/fake_gui_reader/requirements.txt + pip install -r src/jukebox/components/rfid/fake_reader_gui/requirements.txt - name: Lint with flake8 run: | pip install flake8 From e0979087acf052e25b0f06593a57002a4386884e Mon Sep 17 00:00:00 2001 From: pabera <1260686+pabera@users.noreply.github.com> Date: Sat, 16 Oct 2021 00:05:06 +0200 Subject: [PATCH 162/206] Update readme: future3 is under active development and not stable yet --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0c1bd83f8..12aa311be 100755 --- a/README.md +++ b/README.md @@ -18,11 +18,13 @@ and works well but doesn't scale enough for future development. It's the mix of ### ☝️ Looking for early adopters, testers and contributors -We would like to invite you to try out this new version called `future3`. Let us know what you think about the new architecture, the new web application and help us find bugs (or fix them proactively). +👩💻 For Braveheats only! If you want to test or help develop this new version called `future3`, let us know what you think about the new architecture, the new web application and help us find bugs (or fix them proactively). -Just a handful of features from version 2.x have been ported to version 3 so far. Specifically GPIO support is currently missing but it's in active development and soon to arrive. +But please be aware, Version 3 is still under heavy development and cannot be considered stable! Just a handful of features from version 2.x have been ported to version 3 so far. Specifically GPIO support is currently missing but it's in active development and soon to arrive. To install and run this version you will need some understanding of programming. -If you like to try it out or contribute, check out the following references. If you post issues or pull requests on Github, make sure you label them with `[future3]`. +⚠️ If you build a Jukebox and depend on a stable environment, please choose Version 2.x. + +If you seek the adventure, your support will be more then welcome. Before contributing, check out the following references. * 🚀 **[Install Jukebox Version 3 Alpha](https://rpi-jukebox-rfid.readthedocs.io/en/latest/install.html)** * 🐛 [Report a bug](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/new?assignees=&labels=future3%2C+bug%2C+needs+triage&template=future3.md&title=ISSUE+SUMMARY+on+future3) From cda4e6efe7e5f9379c6a133376d62439ef3e92f0 Mon Sep 17 00:00:00 2001 From: pabera <1260686+pabera@users.noreply.github.com> Date: Thu, 28 Oct 2021 23:34:42 +0200 Subject: [PATCH 163/206] [future3] Announce Alpha 2 Release --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 12aa311be..999b807bc 100755 --- a/README.md +++ b/README.md @@ -13,6 +13,14 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podc ## 🔥 Version 3 is coming ... +#### Newest release: future3 Alpha 2 -> 28. October 2021 + +* Better Installation Script +* More stable backend +* Prepared playlist support +* Refactored Card commands +* Album & Folder view in web application + Over the last few months, a few Phoniebox fans started to think about a potential future of the Jukebox code. Version 2 is mature and works well but doesn't scale enough for future development. It's the mix of Shell, Python and PHP. The goal was to tidy up the codebase, focus on a single programming language for the core (Python), establish a solid plugin system and build a responsive web client. [Read on here if you want to learn about more reasons](https://rpi-jukebox-rfid.readthedocs.io/en/latest/). From e355d8478fd707550bcc0e93a531a22b8b133c3e Mon Sep 17 00:00:00 2001 From: Micz Flor <micz.flor@web.de> Date: Fri, 29 Oct 2021 13:09:05 +0200 Subject: [PATCH 164/206] Update README.md The current README takes a long time to read until you understand that you should not use Version 3 in production yet. Which is why I added this link at the top - and left the version 3 part unchanged. Because it is the future and deserves presence, contributors, applause, testers and looooove --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 999b807bc..ca73094fe 100755 --- a/README.md +++ b/README.md @@ -10,10 +10,14 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podc --- +## Install latest Phoniebox version + +If you are looking for the latest stable version, use the [install script for Raspberry Pi OS Stretch](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch). +If you dare to go where only few have gone before, become an alpha-tester, bug reporter, contributor for the exciting, totally re-written, up and coming, yet feature incomplete and unstable version 3 of the Phoniebox code base: ## 🔥 Version 3 is coming ... -#### Newest release: future3 Alpha 2 -> 28. October 2021 +#### Newest release: V3.0.0 Alpha 2 -> 28. October 2021 * Better Installation Script * More stable backend @@ -26,7 +30,7 @@ and works well but doesn't scale enough for future development. It's the mix of ### ☝️ Looking for early adopters, testers and contributors -👩💻 For Braveheats only! If you want to test or help develop this new version called `future3`, let us know what you think about the new architecture, the new web application and help us find bugs (or fix them proactively). +👩💻 For Bravehearts only! If you want to test or help develop this new version called `future3`, let us know what you think about the new architecture, the new web application and help us find bugs (or fix them proactively). But please be aware, Version 3 is still under heavy development and cannot be considered stable! Just a handful of features from version 2.x have been ported to version 3 so far. Specifically GPIO support is currently missing but it's in active development and soon to arrive. To install and run this version you will need some understanding of programming. From 21f612a61977d4fc4f8e08f5a8b4f0a4cdb4eb7a Mon Sep 17 00:00:00 2001 From: Andreas Brett <github@abrett.de> Date: Sun, 31 Oct 2021 13:04:43 +0100 Subject: [PATCH 165/206] move config settings to a dict For more intuitive management of configuration settings, these reside in a global dict now. dict allows to comment out unused settings (like e.g. mqttCA, mqttCert, mqttKey) rather than having to set them to "". --- .../MQTT-protocol/README.md | 8 +- .../MQTT-protocol/daemon_mqtt_client.py | 95 ++++++++++--------- 2 files changed, 54 insertions(+), 49 deletions(-) diff --git a/components/smart-home-automation/MQTT-protocol/README.md b/components/smart-home-automation/MQTT-protocol/README.md index b4fae442b..aa76da5bd 100644 --- a/components/smart-home-automation/MQTT-protocol/README.md +++ b/components/smart-home-automation/MQTT-protocol/README.md @@ -9,7 +9,7 @@ This module will integrate Phoniebox into a Smart Home environment and make it r * disable wifi in the evening when Phoniebox is used as a sleeping device * shutdown at night when it's finally bedtime * lower the volume in the mornings (to keep you asleep) -* control Phoniebox via Voice Assistants like [Snips](https://snips.ai) (which also uses MQTT!), Google Home, Amazon Echo,... +* control Phoniebox via Voice Assistants like [Rhasspy](https://github.com/rhasspy/rhasspy) (which also uses MQTT!), Google Home, Amazon Echo,... * let Phoniebox play an informational note to your kids that the weather outside is great and they should consider going outside (if your Smart Home has weather-based sensors) * run statistics on when and how your kid uses Phoniebox * arrange terms with your kid how long the Phoniebox can be used (e.g. max. 2h per day) @@ -145,16 +145,18 @@ sudo cp /home/pi/RPi-Jukebox-RFID/components/smart-home-automation/MQTT-protocol sudo cp /home/pi/RPi-Jukebox-RFID/components/smart-home-automation/MQTT-protocol/phoniebox-mqtt-client.service.stretch-default.sample /etc/systemd/system/phoniebox-mqtt-client.service ~~~ -Now edit the file `/home/pi/RPi-Jukebox-RFID/scripts/daemon_mqtt_client.py` to match your requirements. -Now continue and activate the service. +Now edit the `SETTINGS` section in `/home/pi/RPi-Jukebox-RFID/scripts/daemon_mqtt_client.py` to match your environment (MQTT connection details etc.). Now continue and activate the service. ~~~ # Now systemd has to be notified that there's a new service file: sudo systemctl daemon-reload + # Now enable the service file, to start it on reboot: sudo systemctl enable phoniebox-mqtt-client + # And now you can reboot to have your daemon running or start it manually: sudo systemctl start phoniebox-mqtt-client + # To see if the reader process is running use the following command: sudo systemctl status phoniebox-mqtt-client ~~~ diff --git a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py index ec9769e5d..b8de2a464 100644 --- a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py +++ b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py @@ -14,19 +14,22 @@ # ---------------------------------------------------------- # SETTINGS # ---------------------------------------------------------- -DEBUG = False -mqttBaseTopic = "phoniebox" # MQTT base topic -mqttClientId = "phoniebox" # MQTT client ID -mqttHostname = "openHAB" # MQTT server hostname -mqttPort = 8883 # MQTT server port (typically 1883 for unencrypted, 8883 for encrypted) -mqttUsername = "" # username for user/pass based authentication -mqttPassword = "" # password for user/pass based authentication -mqttCA = "/home/pi/MQTT/mqtt-ca.crt" # path to server certificate for certificate-based authentication -mqttCert = "/home/pi/MQTT/mqtt-client-phoniebox.crt" # path to client certificate for certificate-based authentication -mqttKey = "/home/pi/MQTT/mqtt-client-phoniebox.key" # path to client keyfile for certificate-based authentication -mqttConnectionTimeout = 60 # in seconds; timeout for MQTT connection -refreshIntervalPlaying = 5 # in seconds; how often should the status be sent to MQTT (while playing) -refreshIntervalIdle = 30 # in seconds; how often should the status be sent to MQTT (when NOT playing) +config = { + "DEBUG": False, + "mqttBaseTopic": "phoniebox", # MQTT base topic + "mqttClientId": "phoniebox", # MQTT client ID + "mqttHostname": "openHAB", # MQTT server hostname + "mqttPort": 8883, # MQTT server port (typically 1883 for unencrypted, 8883 for encrypted) + "mqttUsername": "", # username for user/pass based authentication + "mqttPassword": "", # password for user/pass based authentication + "mqttCA": "/home/pi/MQTT/mqtt-ca.crt", # path to server certificate for certificate-based authentication + "mqttCert": "/home/pi/MQTT/mqtt-client-phoniebox.crt", # path to client certificate for certificate-based authentication + "mqttKey": "/home/pi/MQTT/mqtt-client-phoniebox.key", # path to client keyfile for certificate-based authentication + "mqttConnectionTimeout": 60, # in seconds; timeout for MQTT connection + "refreshIntervalPlaying": 5, # in seconds; how often should the status be sent to MQTT (while playing) + "refreshIntervalIdle": 30, # in seconds; how often should the status be sent to MQTT (when NOT playing) +} + # ---------------------------------------------------------- # DO NOT CHANGE BELOW @@ -36,7 +39,7 @@ path = os.path.dirname(os.path.realpath(__file__)) # internal refresh interval -refreshInterval = refreshIntervalPlaying +refreshInterval = config.get("refreshIntervalPlaying") # list of available commands and attributes arAvailableCommands = ['volumeup', 'volumedown', 'mute', 'playerplay', 'playerpause', 'playernext', 'playerprev', 'playerstop', 'playerrewind', 'playershuffle', 'playerreplay', 'scan', 'shutdown', 'shutdownsilent', 'reboot', 'disablewifi'] @@ -60,7 +63,7 @@ def watchForNewCard(): cardid = readfile(path + "/../settings/Latest_RFID") # publish event "card_swiped" - client.publish(mqttBaseTopic + "/event/card_swiped", payload=cardid) + client.publish(config.get("mqttBaseTopic") + "/event/card_swiped", payload=cardid) print(" --> Publishing event card_swiped = " + cardid) # process all attributes @@ -79,11 +82,11 @@ def on_connect(client, userdata, flags, rc): disk_total, disk_avail = disk_stats() # publish general server info - client.publish(mqttBaseTopic + "/state", payload="online", qos=1, retain=True) - client.publish(mqttBaseTopic + "/version", payload=version, qos=1, retain=True) - client.publish(mqttBaseTopic + "/edition", payload=edition, qos=1, retain=True) - client.publish(mqttBaseTopic + "/disk_total", payload=disk_total, qos=1, retain=True) - client.publish(mqttBaseTopic + "/disk_avail", payload=disk_avail, qos=1, retain=True) + client.publish(config.get("mqttBaseTopic") + "/state", payload="online", qos=1, retain=True) + client.publish(config.get("mqttBaseTopic") + "/version", payload=version, qos=1, retain=True) + client.publish(config.get("mqttBaseTopic") + "/edition", payload=edition, qos=1, retain=True) + client.publish(config.get("mqttBaseTopic") + "/disk_total", payload=disk_total, qos=1, retain=True) + client.publish(config.get("mqttBaseTopic") + "/disk_avail", payload=disk_avail, qos=1, retain=True) else: print("Connection could NOT be established. Return-Code:", rc) @@ -104,7 +107,7 @@ def on_message(client, userdata, message): print(" - topic =", message.topic) print(" - value =", message.payload.decode("utf-8")) - regex_extract = re.search(mqttBaseTopic + '\/(.*)\/(.*)', message.topic) + regex_extract = re.search(config.get("mqttBaseTopic") + '\/(.*)\/(.*)', message.topic) message_topic = regex_extract.group(1).lower() message_subtopic = regex_extract.group(2).lower() message_payload = message.payload.decode("utf-8") @@ -121,8 +124,8 @@ def processCmd(command, parameter): if command == "help": availableCommands = ", ".join(arAvailableCommands) availableCommandsWithParam = ", ".join(arAvailableCommandsWithParam) - client.publish(mqttBaseTopic + "/available_commands", payload=availableCommands) - client.publish(mqttBaseTopic + "/available_commands_with_params", payload=availableCommandsWithParam) + client.publish(config.get("mqttBaseTopic") + "/available_commands", payload=availableCommands) + client.publish(config.get("mqttBaseTopic") + "/available_commands_with_params", payload=availableCommandsWithParam) print(" --> Publishing response available_commands =", availableCommands) print(" --> Publishing response available_commands_with_params =", availableCommandsWithParam) @@ -173,7 +176,7 @@ def processCmd(command, parameter): return # this was a known command => refresh all attributes as they might have changed - client.publish(mqttBaseTopic + "/get/all", payload="") + client.publish(config.get("mqttBaseTopic") + "/get/all", payload="") def processGet(attribute): @@ -182,18 +185,18 @@ def processGet(attribute): # respond with all attributes if attribute == "all": for attribute in mpd_status: - client.publish(mqttBaseTopic + "/attribute/" + attribute, payload=mpd_status[attribute]) + client.publish(config.get("mqttBaseTopic") + "/attribute/" + attribute, payload=mpd_status[attribute]) print(" --> Publishing response " + attribute + " = " + mpd_status[attribute]) # list all possible attributes elif attribute == "help": availableAttributes = ", ".join(arAvailableAttributes) - client.publish(mqttBaseTopic + "/available_attributes", payload=availableAttributes) + client.publish(config.get("mqttBaseTopic") + "/available_attributes", payload=availableAttributes) print(" --> Publishing response", availableAttributes) # all the other known attributes elif attribute in mpd_status: - client.publish(mqttBaseTopic + "/attribute/" + attribute, payload=mpd_status[attribute]) + client.publish(config.get("mqttBaseTopic") + "/attribute/" + attribute, payload=mpd_status[attribute]) print(" --> Publishing response " + attribute + " = " + mpd_status[attribute]) # we don't know this attribute @@ -368,47 +371,47 @@ def fetchData(): # modify refresh rate depending on play state if result["state"] == "play": - refreshInterval = refreshIntervalPlaying + refreshInterval = config.get("refreshIntervalPlaying") else: - refreshInterval = refreshIntervalIdle + refreshInterval = config.get("refreshIntervalIdle") return result # create client instance -client = mqtt.Client(mqttClientId) +client = mqtt.Client(config.get("mqttClientId")) # configure authentication -if mqttUsername != "" and mqttPassword != "": - client.username_pw_set(username=mqttUsername, password=mqttPassword) +if config.get("mqttUsername") and config.get("mqttPassword"): + client.username_pw_set(username=config.get("mqttUsername"), password=config.get("mqttPassword")) -if mqttCert != "" and mqttKey != "": - if mqttCA != "": - client.tls_set(ca_certs=mqttCA, certfile=mqttCert, keyfile=mqttKey) +if config.get("mqttCert") and config.get("mqttKey"): + if config.get("mqttCA"): + client.tls_set(ca_certs=config.get("mqttCA"), certfile=config.get("mqttCert"), keyfile=config.get("mqttKey")) else: - client.tls_set(certfile=mqttCert, keyfile=mqttKey) -elif mqttCA != "": - client.tls_set(ca_certs=mqttCA) + client.tls_set(certfile=config.get("mqttCert"), keyfile=config.get("mqttKey")) +elif config.get("mqttCA"): + client.tls_set(ca_certs=config.get("mqttCA")) # attach event handlers client.on_connect = on_connect client.on_disconnect = on_disconnect client.on_message = on_message -if DEBUG is True: +if config.get("DEBUG") is True: client.on_log = on_log # define last will -client.will_set(mqttBaseTopic + "/state", payload="offline", qos=1, retain=True) +client.will_set(config.get("mqttBaseTopic") + "/state", payload="offline", qos=1, retain=True) # connect to MQTT server -print("Connecting to " + mqttHostname + " on port " + str(mqttPort)) -client.connect(mqttHostname, mqttPort, mqttConnectionTimeout) +print("Connecting to " + config.get("mqttHostname") + " on port " + str(config.get("mqttPort"))) +client.connect(config.get("mqttHostname"), config.get("mqttPort"), config.get("mqttConnectionTimeout")) # subscribe to topics -print("Subscribing to " + mqttBaseTopic + "/cmd/#") -client.subscribe(mqttBaseTopic + "/cmd/#") -print("Subscribing to " + mqttBaseTopic + "/get/#") -client.subscribe(mqttBaseTopic + "/get/#") +print("Subscribing to " + config.get("mqttBaseTopic") + "/cmd/#") +client.subscribe(config.get("mqttBaseTopic") + "/cmd/#") +print("Subscribing to " + config.get("mqttBaseTopic") + "/get/#") +client.subscribe(config.get("mqttBaseTopic") + "/get/#") # register thread for watchForNewCard tWatchForNewCard = Thread(target=watchForNewCard) From 6479163a49d218474bb4c2ad5eecfa191fa42254 Mon Sep 17 00:00:00 2001 From: Andreas Brett <github@abrett.de> Date: Mon, 1 Nov 2021 08:04:31 +0100 Subject: [PATCH 166/206] add "shutdownvolumereduction" --- .../MQTT-protocol/daemon_mqtt_client.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py index b8de2a464..9999db065 100644 --- a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py +++ b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py @@ -43,8 +43,8 @@ # list of available commands and attributes arAvailableCommands = ['volumeup', 'volumedown', 'mute', 'playerplay', 'playerpause', 'playernext', 'playerprev', 'playerstop', 'playerrewind', 'playershuffle', 'playerreplay', 'scan', 'shutdown', 'shutdownsilent', 'reboot', 'disablewifi'] -arAvailableCommandsWithParam = ['setvolume', 'setvolstep', 'setmaxvolume', 'setidletime', 'playerseek', 'shutdownafter', 'playerstopafter', 'playerrepeat', 'rfid', 'gpio', 'swipecard', 'playfolder', 'playfolderrecursive'] -arAvailableAttributes = ['volume', 'mute', 'repeat', 'random', 'state', 'file', 'artist', 'albumartist', 'title', 'album', 'track', 'elapsed', 'duration', 'trackdate', 'last_card', 'maxvolume', 'volstep', 'idletime', 'rfid', 'gpio', 'remaining_stopafter', 'remaining_shutdownafter', 'remaining_idle', 'throttling', 'temperature'] +arAvailableCommandsWithParam = ['setvolume', 'setvolstep', 'setmaxvolume', 'setidletime', 'playerseek', 'shutdownafter', 'shutdownvolumereduction', 'playerstopafter', 'playerrepeat', 'rfid', 'gpio', 'swipecard', 'playfolder', 'playfolderrecursive'] +arAvailableAttributes = ['volume', 'mute', 'repeat', 'random', 'state', 'file', 'artist', 'albumartist', 'title', 'album', 'track', 'elapsed', 'duration', 'trackdate', 'last_card', 'maxvolume', 'volstep', 'idletime', 'rfid', 'gpio', 'remaining_stopafter', 'remaining_shutdownafter', 'remaining_shutdownvolumereduction', 'remaining_idle', 'throttling', 'temperature'] def watchForNewCard(): @@ -363,6 +363,7 @@ def fetchData(): # fetch linux jobs result["remaining_stopafter"] = str(linux_job_remaining("s")) result["remaining_shutdownafter"] = str(linux_job_remaining("t")) + result["remaining_shutdownvolumereduction"] = str(linux_job_remaining("q")) result["remaining_idle"] = str(linux_job_remaining("i")) # fetch OS information From e6323fe4cec31ed1f85fd8a29a5c14227975bb24 Mon Sep 17 00:00:00 2001 From: Micz Flor <micz.flor@web.de> Date: Sat, 25 Dec 2021 23:02:09 +0100 Subject: [PATCH 167/206] calendar 2022 --- README.md | 18 ++++++++---------- docs/2022-Phoniebox-Calendar.jpg | Bin 0 -> 640271 bytes 2 files changed, 8 insertions(+), 10 deletions(-) create mode 100644 docs/2022-Phoniebox-Calendar.jpg diff --git a/README.md b/README.md index ca73094fe..0e6312402 100755 --- a/README.md +++ b/README.md @@ -8,12 +8,18 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podcasts, web streams and spotify triggered by RFID cards. All plug and play via USB, no soldering iron needed. Update: if you must, it now also features a howto for adding GPIO buttons controls. +## The Phoniebox Calendar 2022 is here!!! + +Another bunch of wonderful designs! 2022 is the fourth Phoniebox calendar. If you are interested, you can see the [2019, 2020 and 2021 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). Download [the printable PDF of 2022 here](https://mi.cz/static/2021-Phoniebox-Calendar.pdf). + + + --- ## Install latest Phoniebox version -If you are looking for the latest stable version, use the [install script for Raspberry Pi OS Stretch](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch). -If you dare to go where only few have gone before, become an alpha-tester, bug reporter, contributor for the exciting, totally re-written, up and coming, yet feature incomplete and unstable version 3 of the Phoniebox code base: +If you are looking for **the latest stable version**, use the [install script for Raspberry Pi OS Stretch](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch). +If you dare to go where only few have gone before, **become an alpha-tester, bug reporter, contributor** for the exciting, totally re-written, up and coming, yet feature incomplete and unstable version 3 of the Phoniebox code base: ## 🔥 Version 3 is coming ... @@ -47,14 +53,6 @@ If you seek the adventure, your support will be more then welcome. Before contri --- -## The Phoniebox Calendar 2021 is here!!! - -Another bunch of wonderful designs! 2021 is the third Phoniebox calendar. If you are interested, you can see the [2019 and 2020 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). Download [the printable PDF of 2021 here](https://mi.cz/static/2021-Phoniebox-Calendar.pdf). - - - -The year 2020 also has a clear *:star: community hero :star:*: @s-martin has been doing outstanding work for the Phoniebox community:sparkles:. Thanks to you and may 2021 be a wonderful year for you. - ## Important updates / news * **Discussions forums** we use Github's Discussions feature for a more forum style. Please ask general questions in [Discussions](https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions), bugs and enhancements should still be in [Issues](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues). diff --git a/docs/2022-Phoniebox-Calendar.jpg b/docs/2022-Phoniebox-Calendar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a7541ed35c66401d5d9c65e43f68225c38e00101 GIT binary patch literal 640271 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�eqi>t@DAbMyI}P(2VTK~x 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ÖIqq}v(e>ap<$6u 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�_9NX5b016`T{<=;rhPzF>Yt&!KCjI)Mdfn! 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 Yq(XqIiqu+JrYb=MmZ8P}0RC0~*>od>od5s; literal 0 HcmV?d00001 From e3efad8a325415b9356f55c4fe3e5572aa3f7252 Mon Sep 17 00:00:00 2001 From: Micz Flor <micz.flor@web.de> Date: Sun, 26 Dec 2021 18:12:28 +0100 Subject: [PATCH 168/206] calendar 2022 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0e6312402..7537e3d71 100755 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podc ## The Phoniebox Calendar 2022 is here!!! -Another bunch of wonderful designs! 2022 is the fourth Phoniebox calendar. If you are interested, you can see the [2019, 2020 and 2021 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). Download [the printable PDF of 2022 here](https://mi.cz/static/2021-Phoniebox-Calendar.pdf). +Another bunch of wonderful designs! 2022 is the fourth Phoniebox calendar. If you are interested, you can see the [2019, 2020 and 2021 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). Download [the printable PDF of 2022 here](https://mi.cz/static/2022-Phoniebox-Calendar.pdf).  From 159a0fb6dad47d3790ed23f1fa5853c3df728799 Mon Sep 17 00:00:00 2001 From: u230412 <matthias.baumeler@sbb.ch> Date: Thu, 30 Dec 2021 10:39:56 +0100 Subject: [PATCH 169/206] #1309, #1451, #1691 Add user-agent to avoid 400-bad-requests from open.spotify.com. --- htdocs/inc.viewFolderTree.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/htdocs/inc.viewFolderTree.php b/htdocs/inc.viewFolderTree.php index b40e26657..d46ace944 100755 --- a/htdocs/inc.viewFolderTree.php +++ b/htdocs/inc.viewFolderTree.php @@ -116,18 +116,19 @@ // this is a new and easier way for loading spotify informations! $uri = file_get_contents($subfolder."/spotify.txt"); $url = "https://open.spotify.com/oembed/?url=".trim($uri)."&format=json"; + $headers = stream_context_create(array('http'=>array('method'=>'GET', 'header'=>'user-agent:Phoniebox'))); if (!file_exists($coverfile)) { - $str = file_get_contents($url); + $str = file_get_contents($url, false, $headers); $json = json_decode($str, true); $cover = $json['thumbnail_url']; - $coverdl = file_get_contents($cover); + $coverdl = file_get_contents($cover, false, $headers); file_put_contents($coverfile, $coverdl); } if (!file_exists($titlefile)) { - $str = file_get_contents($url); + $str = file_get_contents($url, false, $headers); $json = json_decode($str, true); $title = $json['title']; From fc9faec8a3d74c95d7508f4dacd7fb4142dfe328 Mon Sep 17 00:00:00 2001 From: pabera <1260686+pabera@users.noreply.github.com> Date: Mon, 7 Feb 2022 21:58:46 +0100 Subject: [PATCH 170/206] Readme update for future3 3.2 Beta release --- README.md | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 7537e3d71..d5ceb3a02 100755 --- a/README.md +++ b/README.md @@ -23,28 +23,29 @@ If you dare to go where only few have gone before, **become an alpha-tester, bug ## 🔥 Version 3 is coming ... -#### Newest release: V3.0.0 Alpha 2 -> 28. October 2021 +#### Newest release: V3.2.0 Beta -> 7. Feb 2022 -* Better Installation Script -* More stable backend -* Prepared playlist support -* Refactored Card commands -* Album & Folder view in web application +* New GPIO backend based on GPIOZero including more sophisticated controls for inputs and outputs +* Bluetooth Headset support with device buttons +* Equalizer + Mono down mixer +* Localization support for Webapp, current languages supported are English and German (help us translate!) +* Timer support in Webapp and via RFID cards +* Additional system information in Webapp like Battery status, CPU temperature or IP address +* Preperation for Text-to-Speech + Read My IP as a first example +* Bugfixes for Install Script Over the last few months, a few Phoniebox fans started to think about a potential future of the Jukebox code. Version 2 is mature and works well but doesn't scale enough for future development. It's the mix of Shell, Python and PHP. The goal was to tidy up the codebase, focus on a single programming language for the core (Python), establish a solid plugin system and build a responsive web client. [Read on here if you want to learn about more reasons](https://rpi-jukebox-rfid.readthedocs.io/en/latest/). -### ☝️ Looking for early adopters, testers and contributors +### 👋 Looking for adopters, testers and contributors -👩💻 For Bravehearts only! If you want to test or help develop this new version called `future3`, let us know what you think about the new architecture, the new web application and help us find bugs (or fix them proactively). +If you want to test or help develop this new version called `future3`, let us know what you think about the new architecture, the new web application and help us find bugs (or fix them proactively). -But please be aware, Version 3 is still under heavy development and cannot be considered stable! Just a handful of features from version 2.x have been ported to version 3 so far. Specifically GPIO support is currently missing but it's in active development and soon to arrive. To install and run this version you will need some understanding of programming. - -⚠️ If you build a Jukebox and depend on a stable environment, please choose Version 2.x. +While Version 3 is still under development, it is becoming a lot more stable! Although only some of the features from version 2.x have been ported to version 3 so far. If you seek the adventure, your support will be more then welcome. Before contributing, check out the following references. -* 🚀 **[Install Jukebox Version 3 Alpha](https://rpi-jukebox-rfid.readthedocs.io/en/latest/install.html)** +* 🚀 **[Install Jukebox Version 3 Beta](https://rpi-jukebox-rfid.readthedocs.io/en/latest/install.html)** * 🐛 [Report a bug](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/new?assignees=&labels=future3%2C+bug%2C+needs+triage&template=future3.md&title=ISSUE+SUMMARY+on+future3) * ☑️ [Feature Status](https://rpi-jukebox-rfid.readthedocs.io/en/latest/featurelist.html) * 📖 [Documentation](https://rpi-jukebox-rfid.readthedocs.io/en/latest/) @@ -57,7 +58,7 @@ If you seek the adventure, your support will be more then welcome. Before contri * **Discussions forums** we use Github's Discussions feature for a more forum style. Please ask general questions in [Discussions](https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions), bugs and enhancements should still be in [Issues](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues). -* **Phoniebox [future3 Alpha 1](https://rpi-jukebox-rfid.readthedocs.io/en/latest/) released (2021-10)** +* **Phoniebox [future3 Beta](https://rpi-jukebox-rfid.readthedocs.io/en/latest/) released (2022-02)** * **Gitter Community** we got ourselves a gitter community; chat us up at https://gitter.im/phoniebox * **Phoniebox [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) released (2021-08-12)** From 07e9c7c77fe84394b34e8138ceb859558e78edbe Mon Sep 17 00:00:00 2001 From: Stephan Kessler <mail@stephankessler.de> Date: Wed, 23 Feb 2022 09:23:31 +0100 Subject: [PATCH 171/206] Fixed issue with reading podcasts xml including line breaks in the enclosure tag --- scripts/playlist_recursive_by_folder.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/playlist_recursive_by_folder.php b/scripts/playlist_recursive_by_folder.php index 8d62de3ad..fd5b4b72e 100755 --- a/scripts/playlist_recursive_by_folder.php +++ b/scripts/playlist_recursive_by_folder.php @@ -117,7 +117,13 @@ $podcast = trim(file_get_contents($folder."/podcast.txt")); //wget -q -O - "http://www.kakadu.de/podcast-kakadu.2730.de.podcast.xml" | sed -n 's/.*enclosure.*url="\([^"]*\)".*/\1/p' //wget -q -O - "https://www1.wdr.de/mediathek/audio/hoerspiel-speicher/wdr_hoerspielspeicher150.podcast" | sed -n 's/.*enclosure.*url="\([^"]*\)".*/\1/p' - $exec = 'wget -q -O - \''.$podcast.'\' | sed -n \'s/.*enclosure.*url="\([^"]*\)".*/\1/p\''; + // includes fix if enclosure tags are divided in multiple lines + // 1. "wget" the URL + // 2. remove all the line breaks + // 3. add breaks at the end of every tag that, + // 4. sed (which works line by line) has the proper environment + $exec = 'wget -q -O - \''.$podcast.'\' | tr \'\n\' \' \' | sed -e \'s/\/>/\/>\n&/g\' | sed -n \'s/.*enclosure.*url="\([^"]*\)".*/\1/p\''; + /* * get all the playlist enclosure URLs in a multiline string */ From 1da523408bf161018abc11764b3bbd21751b7c69 Mon Sep 17 00:00:00 2001 From: Stephan Kessler <mail@stephankessler.de> Date: Wed, 23 Feb 2022 09:51:10 +0100 Subject: [PATCH 172/206] Fixed Comment --- scripts/playlist_recursive_by_folder.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/playlist_recursive_by_folder.php b/scripts/playlist_recursive_by_folder.php index fd5b4b72e..e8784ab46 100755 --- a/scripts/playlist_recursive_by_folder.php +++ b/scripts/playlist_recursive_by_folder.php @@ -115,8 +115,9 @@ * Read podcast URL and extract audio links from enclosure tag */ $podcast = trim(file_get_contents($folder."/podcast.txt")); - //wget -q -O - "http://www.kakadu.de/podcast-kakadu.2730.de.podcast.xml" | sed -n 's/.*enclosure.*url="\([^"]*\)".*/\1/p' - //wget -q -O - "https://www1.wdr.de/mediathek/audio/hoerspiel-speicher/wdr_hoerspielspeicher150.podcast" | sed -n 's/.*enclosure.*url="\([^"]*\)".*/\1/p' + //wget -q -O - "http://www.kakadu.de/podcast-kakadu.2730.de.podcast.xml" | tr '\n' ' ' | sed -e 's/\/>/\/>\n&/g' | sed -n 's/.*enclosure.*url="\([^"]*\)".*/\1/p' + //wget -q -O - "https://www1.wdr.de/mediathek/audio/hoerspiel-speicher/wdr_hoerspielspeicher150.podcast" | tr '\n' ' ' | sed -e 's/\/>/\/>\n&/g' | sed -n 's/.*enclosure.*url="\([^"]*\)".*/\1/p' + //wget -q -O - "https://www.swr.de/~podcast/swr2/leben-und-gesellschaft/podcast-sprechen-wir-ueber-mord-100.xml" | tr '\n' ' ' | sed -e 's/\/>/\/>\n&/g' | sed -n 's/.*enclosure.*url="\([^"]*\)".*/\1/p' // includes fix if enclosure tags are divided in multiple lines // 1. "wget" the URL // 2. remove all the line breaks From e01d3d9db12e8e8a43321a7d47aed919b0344178 Mon Sep 17 00:00:00 2001 From: Charles Vestal <charlesv@gmail.com> Date: Sun, 27 Feb 2022 14:08:51 +0100 Subject: [PATCH 173/206] Update broken 2.3 installation guide link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d5ceb3a02..f136621c7 100755 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) rel ## What's new in version 2.3? -* Improved [installation guide](docs/INSTALL_COMPLETE_GUIDE.md) +* Improved [installation guide](https://github.com/MiczFlor/RPi-Jukebox-RFID/blob/develop/docs/INSTALL-COMPLETE-GUIDE.md) * Holding buttons feature fixed #1406 * Bluetooth buttons and headphones toggle #1262 * fixed stop on removal for RC522 #1122 From 820a5f42fa48d5d2b396bfe0aa2522bf4d276d97 Mon Sep 17 00:00:00 2001 From: Andreas Brett <github@abrett.de> Date: Sun, 27 Feb 2022 20:36:53 +0100 Subject: [PATCH 174/206] fix after merge with dev --- .../MQTT-protocol/daemon_mqtt_client.py | 412 +++++++++++++----- 1 file changed, 303 insertions(+), 109 deletions(-) diff --git a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py index 0fcc31ee5..60c8ca38d 100644 --- a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py +++ b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py @@ -1,10 +1,16 @@ #!/usr/bin/env python3 -import paho.mqtt.client as mqtt -import os, subprocess, re, ssl, time, datetime -import inotify.adapters +import datetime +import os +import re +import ssl +import subprocess +import time from threading import * +import inotify.adapters +import paho.mqtt.client as mqtt + # ---------------------------------------------------------- # Prerequisites # ---------------------------------------------------------- @@ -16,18 +22,18 @@ # ---------------------------------------------------------- config = { "DEBUG": False, - "mqttBaseTopic": "phoniebox", # MQTT base topic - "mqttClientId": "phoniebox", # MQTT client ID - "mqttHostname": "openHAB", # MQTT server hostname - "mqttPort": 8883, # MQTT server port (typically 1883 for unencrypted, 8883 for encrypted) - "mqttUsername": "", # username for user/pass based authentication - "mqttPassword": "", # password for user/pass based authentication - "mqttCA": "/home/pi/MQTT/mqtt-ca.crt", # path to server certificate for certificate-based authentication - "mqttCert": "/home/pi/MQTT/mqtt-client-phoniebox.crt", # path to client certificate for certificate-based authentication - "mqttKey": "/home/pi/MQTT/mqtt-client-phoniebox.key", # path to client keyfile for certificate-based authentication - "mqttConnectionTimeout": 60, # in seconds; timeout for MQTT connection - "refreshIntervalPlaying": 5, # in seconds; how often should the status be sent to MQTT (while playing) - "refreshIntervalIdle": 30, # in seconds; how often should the status be sent to MQTT (when NOT playing) + "mqttBaseTopic": "phoniebox", # MQTT base topic + "mqttClientId": "phoniebox", # MQTT client ID + "mqttHostname": "openHAB", # MQTT server hostname + "mqttPort": 8883, # MQTT server port (typically 1883 for unencrypted, 8883 for encrypted) + "mqttUsername": "", # username for user/pass based authentication + "mqttPassword": "", # password for user/pass based authentication + "mqttCA": "/home/pi/MQTT/mqtt-ca.crt", # path to server certificate for certificate-based authentication + "mqttCert": "/home/pi/MQTT/mqtt-client-phoniebox.crt", # path to client certificate for certificate-based authentication + "mqttKey": "/home/pi/MQTT/mqtt-client-phoniebox.key", # path to client keyfile for certificate-based authentication + "mqttConnectionTimeout": 60, # in seconds; timeout for MQTT connection + "refreshIntervalPlaying": 5, # in seconds; how often should the status be sent to MQTT (while playing) + "refreshIntervalIdle": 30, # in seconds; how often should the status be sent to MQTT (when NOT playing) } @@ -42,9 +48,68 @@ refreshInterval = config.get("refreshIntervalPlaying") # list of available commands and attributes -arAvailableCommands = ['volumeup', 'volumedown', 'mute', 'playerplay', 'playerpause', 'playernext', 'playerprev', 'playerstop', 'playerrewind', 'playershuffle', 'playerreplay', 'scan', 'shutdown', 'shutdownsilent', 'reboot', 'disablewifi'] -arAvailableCommandsWithParam = ['setvolume', 'setvolstep', 'setmaxvolume', 'setidletime', 'playerseek', 'shutdownafter', 'shutdownvolumereduction', 'playerstopafter', 'playerrepeat', 'rfid', 'gpio', 'swipecard', 'playfolder', 'playfolderrecursive'] -arAvailableAttributes = ['volume', 'mute', 'repeat', 'random', 'state', 'file', 'artist', 'albumartist', 'title', 'album', 'track', 'elapsed', 'duration', 'trackdate', 'last_card', 'maxvolume', 'volstep', 'idletime', 'rfid', 'gpio', 'remaining_stopafter', 'remaining_shutdownafter', 'remaining_shutdownvolumereduction', 'remaining_idle', 'throttling', 'temperature'] +arAvailableCommands = [ + "volumeup", + "volumedown", + "mute", + "playerplay", + "playerpause", + "playernext", + "playerprev", + "playerstop", + "playerrewind", + "playershuffle", + "playerreplay", + "scan", + "shutdown", + "shutdownsilent", + "reboot", + "disablewifi", +] +arAvailableCommandsWithParam = [ + "setvolume", + "setvolstep", + "setmaxvolume", + "setidletime", + "playerseek", + "shutdownafter", + "shutdownvolumereduction", + "playerstopafter", + "playerrepeat", + "rfid", + "gpio", + "swipecard", + "playfolder", + "playfolderrecursive", +] +arAvailableAttributes = [ + "volume", + "mute", + "repeat", + "random", + "state", + "file", + "artist", + "albumartist", + "title", + "album", + "track", + "elapsed", + "duration", + "trackdate", + "last_card", + "maxvolume", + "volstep", + "idletime", + "rfid", + "gpio", + "remaining_stopafter", + "remaining_shutdownafter", + "remaining_shutdownvolumereduction", + "remaining_idle", + "throttling", + "temperature", +] def watchForNewCard(): @@ -63,7 +128,9 @@ def watchForNewCard(): cardid = readfile(path + "/../settings/Latest_RFID") # publish event "card_swiped" - client.publish(config.get("mqttBaseTopic") + "/event/card_swiped", payload=cardid) + client.publish( + config.get("mqttBaseTopic") + "/event/card_swiped", payload=cardid + ) print(" --> Publishing event card_swiped = " + cardid) # process all attributes @@ -86,7 +153,9 @@ def watchForNewCard(): cardid = readfile(path + "/../settings/Latest_RFID") # publish event "card_swiped" - client.publish(mqttBaseTopic + "/event/card_swiped", payload=cardid) + client.publish( + config.get("mqttBaseTopic") + "/event/card_swiped", payload=cardid + ) print(" --> Publishing event card_swiped = " + cardid) # process all attributes @@ -105,11 +174,33 @@ def on_connect(client, userdata, flags, rc): disk_total, disk_avail = disk_stats() # publish general server info - client.publish(config.get("mqttBaseTopic") + "/state", payload="online", qos=1, retain=True) - client.publish(config.get("mqttBaseTopic") + "/version", payload=version, qos=1, retain=True) - client.publish(config.get("mqttBaseTopic") + "/edition", payload=edition, qos=1, retain=True) - client.publish(config.get("mqttBaseTopic") + "/disk_total", payload=disk_total, qos=1, retain=True) - client.publish(config.get("mqttBaseTopic") + "/disk_avail", payload=disk_avail, qos=1, retain=True) + client.publish( + config.get("mqttBaseTopic") + "/state", payload="online", qos=1, retain=True + ) + client.publish( + config.get("mqttBaseTopic") + "/version", + payload=version, + qos=1, + retain=True, + ) + client.publish( + config.get("mqttBaseTopic") + "/edition", + payload=edition, + qos=1, + retain=True, + ) + client.publish( + config.get("mqttBaseTopic") + "/disk_total", + payload=disk_total, + qos=1, + retain=True, + ) + client.publish( + config.get("mqttBaseTopic") + "/disk_avail", + payload=disk_avail, + qos=1, + retain=True, + ) else: print("Connection could NOT be established. Return-Code:", rc) @@ -130,7 +221,9 @@ def on_message(client, userdata, message): print(" - topic =", message.topic) print(" - value =", message.payload.decode("utf-8")) - regex_extract = re.search(config.get("mqttBaseTopic") + '\/(.*)\/(.*)', message.topic) + regex_extract = re.search( + config.get("mqttBaseTopic") + "\/(.*)\/(.*)", message.topic + ) message_topic = regex_extract.group(1).lower() message_subtopic = regex_extract.group(2).lower() message_payload = message.payload.decode("utf-8") @@ -147,16 +240,28 @@ def processCmd(command, parameter): if command == "help": availableCommands = ", ".join(arAvailableCommands) availableCommandsWithParam = ", ".join(arAvailableCommandsWithParam) - client.publish(config.get("mqttBaseTopic") + "/available_commands", payload=availableCommands) - client.publish(config.get("mqttBaseTopic") + "/available_commands_with_params", payload=availableCommandsWithParam) + client.publish( + config.get("mqttBaseTopic") + "/available_commands", + payload=availableCommands, + ) + client.publish( + config.get("mqttBaseTopic") + "/available_commands_with_params", + payload=availableCommandsWithParam, + ) print(" --> Publishing response available_commands =", availableCommands) - print(" --> Publishing response available_commands_with_params =", availableCommandsWithParam) + print( + " --> Publishing response available_commands_with_params =", + availableCommandsWithParam, + ) # toggle RFID reader daemon elif command == "rfid": parameter = parameter.lower() if parameter == "start" or parameter == "stop": - subprocess.call(["sudo /bin/systemctl " + parameter + " phoniebox-rfid-reader.service"], shell=True) + subprocess.call( + ["sudo /bin/systemctl " + parameter + " phoniebox-rfid-reader.service"], + shell=True, + ) else: print(" --> Expecting parameter start or stop") @@ -164,7 +269,14 @@ def processCmd(command, parameter): elif command == "gpio": parameter = parameter.lower() if parameter == "start" or parameter == "stop": - subprocess.call(["sudo /bin/systemctl " + parameter + " phoniebox-gpio-control.service"], shell=True) + subprocess.call( + [ + "sudo /bin/systemctl " + + parameter + + " phoniebox-gpio-control.service" + ], + shell=True, + ) else: print(" --> Expecting parameter start or stop") @@ -176,12 +288,17 @@ def processCmd(command, parameter): # play folder elif command == "playfolder": print(" --> Playing folder", parameter) - subprocess.call([path + "/rfid_trigger_play.sh -d='" + parameter + "'"], shell=True) + subprocess.call( + [path + "/rfid_trigger_play.sh -d='" + parameter + "'"], shell=True + ) # play folder (recursive) elif command == "playfolderrecursive": print(" --> Playing folder " + parameter + " (recursive)") - subprocess.call([path + "/rfid_trigger_play.sh -d='" + parameter + "' -v=recursive"], shell=True) + subprocess.call( + [path + "/rfid_trigger_play.sh -d='" + parameter + "' -v=recursive"], + shell=True, + ) # all the other known commands w/o param elif command in arAvailableCommands: @@ -190,8 +307,17 @@ def processCmd(command, parameter): # all the other known commands /w param elif command in arAvailableCommandsWithParam: - print(" --> Sending command " + command + " and value " + parameter + " to playout_controls.sh") - subprocess.call([path + "/playout_controls.sh -c=" + command + " -v=" + parameter], shell=True) + print( + " --> Sending command " + + command + + " and value " + + parameter + + " to playout_controls.sh" + ) + subprocess.call( + [path + "/playout_controls.sh -c=" + command + " -v=" + parameter], + shell=True, + ) # we don't know this command else: @@ -208,18 +334,29 @@ def processGet(attribute): # respond with all attributes if attribute == "all": for attribute in mpd_status: - client.publish(config.get("mqttBaseTopic") + "/attribute/" + attribute, payload=mpd_status[attribute]) - print(" --> Publishing response " + attribute + " = " + mpd_status[attribute]) + client.publish( + config.get("mqttBaseTopic") + "/attribute/" + attribute, + payload=mpd_status[attribute], + ) + print( + " --> Publishing response " + attribute + " = " + mpd_status[attribute] + ) # list all possible attributes elif attribute == "help": availableAttributes = ", ".join(arAvailableAttributes) - client.publish(config.get("mqttBaseTopic") + "/available_attributes", payload=availableAttributes) + client.publish( + config.get("mqttBaseTopic") + "/available_attributes", + payload=availableAttributes, + ) print(" --> Publishing response", availableAttributes) # all the other known attributes elif attribute in mpd_status: - client.publish(config.get("mqttBaseTopic") + "/attribute/" + attribute, payload=mpd_status[attribute]) + client.publish( + config.get("mqttBaseTopic") + "/attribute/" + attribute, + payload=mpd_status[attribute], + ) print(" --> Publishing response " + attribute + " = " + mpd_status[attribute]) # we don't know this attribute @@ -228,10 +365,10 @@ def processGet(attribute): def disk_stats(): - statvfs = os.statvfs('/home/pi') - size_total = statvfs.f_frsize * statvfs.f_blocks # total + statvfs = os.statvfs("/home/pi") + size_total = statvfs.f_frsize * statvfs.f_blocks # total # size_avail = statvfs.f_frsize * statvfs.f_bfree # actual free - size_avail = statvfs.f_frsize * statvfs.f_bavail # free for non-root + size_avail = statvfs.f_frsize * statvfs.f_bavail # free for non-root return round(size_total / 1073741824, 1), round(size_avail / 1073741824, 1) @@ -244,22 +381,28 @@ def readfile(filepath): def isServiceRunning(svc): - cmd = ['/bin/systemctl', 'status', svc] - status = subprocess.run(cmd, stdout=subprocess.PIPE).stdout.decode('utf-8').rstrip() - if re.search('\n.*Active:.*running.*\n', status): + cmd = ["/bin/systemctl", "status", svc] + status = subprocess.run(cmd, stdout=subprocess.PIPE).stdout.decode("utf-8").rstrip() + if re.search("\n.*Active:.*running.*\n", status): return "true" else: return "false" def linux_job_remaining(job_name): - cmd = ['sudo', 'atq', '-q', job_name] - dtQueue = subprocess.run(cmd, stdout=subprocess.PIPE).stdout.decode('utf-8').rstrip() - - regex = re.search('(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)', dtQueue) + cmd = ["sudo", "atq", "-q", job_name] + dtQueue = ( + subprocess.run(cmd, stdout=subprocess.PIPE).stdout.decode("utf-8").rstrip() + ) + + regex = re.search( + "(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)", dtQueue + ) if regex: dtNow = datetime.datetime.now() - dtQueue = datetime.datetime.strptime(dtNow.strftime("%d.%m.%Y") + " " + regex.group(5), "%d.%m.%Y %H:%M:%S") + dtQueue = datetime.datetime.strptime( + dtNow.strftime("%d.%m.%Y") + " " + regex.group(5), "%d.%m.%Y %H:%M:%S" + ) # subtract 1 day if queued for the next day if dtNow > dtQueue: @@ -271,42 +414,52 @@ def linux_job_remaining(job_name): def getOsThrottling(): - codes = { - 0: "under-voltage detected", - 1: "arm frequency capped", - 2: "currently throttled", - 3: "soft temperature limit active", - 16: "under-voltage has occurred", - 17: "arm frequency capped has occurred", - 18: "throttling has occurred", - 19: "soft temperature limit has occurred" - } - - p = subprocess.Popen(['vcgencmd', 'get_throttled'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) - throttling, err = p.communicate() - codeHex = throttling.rstrip().split("0x")[1] - - # code is zero => no issue - if codeHex == "0": - return "OK" - - # analyse returned code - result = [] - codeBinary = "" - for fourbits in codeHex: - codeBinary = codeBinary + bin(int(fourbits, 16))[2:].zfill(4) - codeBinary = codeBinary[::-1] - for bitNumber in range(len(codeBinary)): - if codeBinary[bitNumber] == "1": - result.append(codes[bitNumber]) - return "WARNING: " + ", ".join(result) + codes = { + 0: "under-voltage detected", + 1: "arm frequency capped", + 2: "currently throttled", + 3: "soft temperature limit active", + 16: "under-voltage has occurred", + 17: "arm frequency capped has occurred", + 18: "throttling has occurred", + 19: "soft temperature limit has occurred", + } + + p = subprocess.Popen( + ["vcgencmd", "get_throttled"], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + universal_newlines=True, + ) + throttling, err = p.communicate() + codeHex = throttling.rstrip().split("0x")[1] + + # code is zero => no issue + if codeHex == "0": + return "OK" + + # analyse returned code + result = [] + codeBinary = "" + for fourbits in codeHex: + codeBinary = codeBinary + bin(int(fourbits, 16))[2:].zfill(4) + codeBinary = codeBinary[::-1] + for bitNumber in range(len(codeBinary)): + if codeBinary[bitNumber] == "1": + result.append(codes[bitNumber]) + return "WARNING: " + ", ".join(result) def getOsTemperature(): - p = subprocess.Popen(['vcgencmd', 'measure_temp'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True) - temperature, err = p.communicate() - temperature = temperature.rstrip().split("=")[1] - return temperature + p = subprocess.Popen( + ["vcgencmd", "measure_temp"], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + universal_newlines=True, + ) + temperature, err = p.communicate() + temperature = temperature.rstrip().split("=")[1] + return temperature def normalizeTrueFalse(s): @@ -331,15 +484,17 @@ def fetchData(): result = {} # fetch status from MPD - cmd = ['nc', '-w', '1', 'localhost', '6600'] - input = 'status\ncurrentsong\nclose'.encode('utf-8') - status = subprocess.run(cmd, stdout=subprocess.PIPE, input=input).stdout.decode('utf-8') + cmd = ["nc", "-w", "1", "localhost", "6600"] + input = "status\ncurrentsong\nclose".encode("utf-8") + status = subprocess.run(cmd, stdout=subprocess.PIPE, input=input).stdout.decode( + "utf-8" + ) # interpret status - result["state"] = regex('\nstate: (.*)\n', status).lower() - result["volume"] = regex('\nvolume: (.*)\n', status) - result["repeat"] = normalizeTrueFalse(regex('\nrepeat: (.*)\n', status)) - result["random"] = normalizeTrueFalse(regex('\nrandom: (.*)\n', status)) + result["state"] = regex("\nstate: (.*)\n", status).lower() + result["volume"] = regex("\nvolume: (.*)\n", status) + result["repeat"] = normalizeTrueFalse(regex("\nrepeat: (.*)\n", status)) + result["random"] = normalizeTrueFalse(regex("\nrandom: (.*)\n", status)) # interpret mute state based on volume if result["volume"] == "0": @@ -350,31 +505,53 @@ def fetchData(): # interpret metadata when in play/pause mode if result["state"] != "stop": - result["file"] = regex('\nfile: (.*)\n', status) - result["artist"] = regex('\nArtist: (.*)\n', status) - result["albumartist"] = regex('\nAlbumArtist: (.*)\n', status) - result["title"] = regex('\nTitle: (.*)\n', status) - result["album"] = regex('\nAlbum: (.*)\n', status) - result["track"] = regex('\nTrack: (.*)\n', status, "0") - result["trackdate"] = regex('\nDate: (.*)\n', status) + result["file"] = regex("\nfile: (.*)\n", status) + result["artist"] = regex("\nArtist: (.*)\n", status) + result["albumartist"] = regex("\nAlbumArtist: (.*)\n", status) + result["title"] = regex("\nTitle: (.*)\n", status) + result["album"] = regex("\nAlbum: (.*)\n", status) + result["track"] = regex("\nTrack: (.*)\n", status, "0") + result["trackdate"] = regex("\nDate: (.*)\n", status) if result["title"] == "-": result["title"] = result["file"] - elapsed = int(float(regex('\nelapsed: (.*)\n', status, "0"))) + elapsed = int(float(regex("\nelapsed: (.*)\n", status, "0"))) hours, remainder = divmod(elapsed, 3600) minutes, seconds = divmod(remainder, 60) - result["elapsed"] = '{:02}:{:02}:{:02}'.format(int(hours), int(minutes), int(seconds)) + result["elapsed"] = "{:02}:{:02}:{:02}".format( + int(hours), int(minutes), int(seconds) + ) - duration = int(float(regex('\nduration: (.*)\n', status, "0"))) + duration = int(float(regex("\nduration: (.*)\n", status, "0"))) hours, remainder = divmod(duration, 3600) minutes, seconds = divmod(remainder, 60) - result["duration"] = '{:02}:{:02}:{:02}'.format(int(hours), int(minutes), int(seconds)) + result["duration"] = "{:02}:{:02}:{:02}".format( + int(hours), int(minutes), int(seconds) + ) # fetch some more data from global.conf (via playout_controls.sh) - result["maxvolume"] = subprocess.run([path + "/playout_controls.sh", "-c=getmaxvolume"], stdout=subprocess.PIPE).stdout.decode('utf-8').rstrip() - result["volstep"] = subprocess.run([path + "/playout_controls.sh", "-c=getvolstep"], stdout=subprocess.PIPE).stdout.decode('utf-8').rstrip() - result["idletime"] = subprocess.run([path + "/playout_controls.sh", "-c=getidletime"], stdout=subprocess.PIPE).stdout.decode('utf-8').rstrip() + result["maxvolume"] = ( + subprocess.run( + [path + "/playout_controls.sh", "-c=getmaxvolume"], stdout=subprocess.PIPE + ) + .stdout.decode("utf-8") + .rstrip() + ) + result["volstep"] = ( + subprocess.run( + [path + "/playout_controls.sh", "-c=getvolstep"], stdout=subprocess.PIPE + ) + .stdout.decode("utf-8") + .rstrip() + ) + result["idletime"] = ( + subprocess.run( + [path + "/playout_controls.sh", "-c=getidletime"], stdout=subprocess.PIPE + ) + .stdout.decode("utf-8") + .rstrip() + ) # fetch last card result["last_card"] = readfile(path + "/../settings/Latest_RFID") @@ -407,11 +584,17 @@ def fetchData(): # configure authentication if config.get("mqttUsername") and config.get("mqttPassword"): - client.username_pw_set(username=config.get("mqttUsername"), password=config.get("mqttPassword")) + client.username_pw_set( + username=config.get("mqttUsername"), password=config.get("mqttPassword") + ) if config.get("mqttCert") and config.get("mqttKey"): if config.get("mqttCA"): - client.tls_set(ca_certs=config.get("mqttCA"), certfile=config.get("mqttCert"), keyfile=config.get("mqttKey")) + client.tls_set( + ca_certs=config.get("mqttCA"), + certfile=config.get("mqttCert"), + keyfile=config.get("mqttKey"), + ) else: client.tls_set(certfile=config.get("mqttCert"), keyfile=config.get("mqttKey")) elif config.get("mqttCA"): @@ -425,11 +608,22 @@ def fetchData(): client.on_log = on_log # define last will -client.will_set(config.get("mqttBaseTopic") + "/state", payload="offline", qos=1, retain=True) +client.will_set( + config.get("mqttBaseTopic") + "/state", payload="offline", qos=1, retain=True +) # connect to MQTT server -print("Connecting to " + config.get("mqttHostname") + " on port " + str(config.get("mqttPort"))) -client.connect(config.get("mqttHostname"), config.get("mqttPort"), config.get("mqttConnectionTimeout")) +print( + "Connecting to " + + config.get("mqttHostname") + + " on port " + + str(config.get("mqttPort")) +) +client.connect( + config.get("mqttHostname"), + config.get("mqttPort"), + config.get("mqttConnectionTimeout"), +) # subscribe to topics print("Subscribing to " + config.get("mqttBaseTopic") + "/cmd/#") From 6a3d02ab8bb13a363821dafd98a879a99a73bd97 Mon Sep 17 00:00:00 2001 From: Peter Grauvogel <petschni@users.noreply.github.com> Date: Wed, 23 Mar 2022 20:41:02 +0100 Subject: [PATCH 175/206] fix(install): updates the URL and adds missing key (#1789) --- scripts/installscripts/buster-install-default.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index 97fbc5b45..1d9760fe6 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -786,7 +786,8 @@ install_main() { # Install required packages ${apt_get} ${allow_downgrades} install apt-transport-https - wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add - + sudo mkdir -p /usr/local/share/keyrings + sudo wget -q -O /usr/local/share/keyrings/mopidy-archive-keyring.gpg https://apt.mopidy.com/mopidy.gpg sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/buster.list ${apt_get} update From 41dee23c981bf1f41a1319538382a5ef2e64faa9 Mon Sep 17 00:00:00 2001 From: climbit <climbit@users.noreply.github.com> Date: Wed, 23 Mar 2022 21:11:18 +0100 Subject: [PATCH 176/206] Split the line read from the deviceName.txt at ';'. (#1702) The code snippet was copied over from Reader.py.experimental.Multi. --- scripts/Reader.py.experimental | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/Reader.py.experimental b/scripts/Reader.py.experimental index 57e187edd..da73b3b5b 100755 --- a/scripts/Reader.py.experimental +++ b/scripts/Reader.py.experimental @@ -187,7 +187,7 @@ class Reader(object): sys.exit('Please run RegisterDevice.py first') else: with open(path + '/deviceName.txt', 'r') as f: - device_name = f.read() + device_name = f.read().rstrip().split(';',1)[0] if device_name == 'MFRC522': self.reader = Mfrc522Reader() From 04f7bb1819a4ebd7f3ef72ad5dda8b4765952b4a Mon Sep 17 00:00:00 2001 From: Christian Erhardt <mail@mojo2k.de> Date: Wed, 23 Mar 2022 21:12:12 +0100 Subject: [PATCH 177/206] Update README.md (#1626) Fixed wrong path for 2.3 installation guide Co-authored-by: Micz Flor <micz.flor@web.de> From 6fb40b7c5f8e73a381969a485d82037e1bc91872 Mon Sep 17 00:00:00 2001 From: lenlennart <53861396+lenlennart@users.noreply.github.com> Date: Wed, 23 Mar 2022 21:12:39 +0100 Subject: [PATCH 178/206] GPIO-Documentation in /docs is deprecated (#1525) Article in the wiki has been updated, this one is deprecated -> maybe remove entirely? --- docs/GPIO-BUTTONS.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/GPIO-BUTTONS.md b/docs/GPIO-BUTTONS.md index 87a8f7c75..813d83dcc 100644 --- a/docs/GPIO-BUTTONS.md +++ b/docs/GPIO-BUTTONS.md @@ -1,4 +1,5 @@ - +Deprecated, please see [wiki](/wiki) for the latest version +--------------------------------------------- # Control Jukebox with buttons / GPIO (Other docs: [Installation](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch) | From 7adacfc9b1e7247709871f679c2cf427dd4b96c1 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Thu, 24 Mar 2022 22:30:32 +0100 Subject: [PATCH 179/206] Fix git protocol for pip (#1791) * Fix #1721 * Fix also spi installation --- components/rfid-reader/RC522/requirements.txt | 2 +- requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/components/rfid-reader/RC522/requirements.txt b/components/rfid-reader/RC522/requirements.txt index 775bee697..6643d6123 100644 --- a/components/rfid-reader/RC522/requirements.txt +++ b/components/rfid-reader/RC522/requirements.txt @@ -2,4 +2,4 @@ # You need to install these with `sudo python3 -m pip install --upgrade --force-reinstall -q -r requirements.txt` # pi-rc522 use latest version from Github -git+git://github.com/ondryaso/pi-rc522.git#egg=pi-rc522 +git+https://github.com/ondryaso/pi-rc522.git#egg=pi-rc522 diff --git a/requirements.txt b/requirements.txt index 205d89ab2..21e820309 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,7 +5,7 @@ # related libraries. evdev -git+git://github.com/lthiery/SPI-Py.git#egg=spi-py +git+https://github.com/lthiery/SPI-Py.git#egg=spi-py youtube_dl pyserial RPi.GPIO From cef2cd18e59180ffd50fc53f29f0c75c21457075 Mon Sep 17 00:00:00 2001 From: guidjome <35805514+guidjome@users.noreply.github.com> Date: Fri, 25 Mar 2022 22:31:48 +0100 Subject: [PATCH 180/206] Add french language to our favorite jukebox (#1793) --- htdocs/lang/lang-fr-FR.php | 315 +++++++++++++++++++++++++++++++++++++ 1 file changed, 315 insertions(+) create mode 100755 htdocs/lang/lang-fr-FR.php diff --git a/htdocs/lang/lang-fr-FR.php b/htdocs/lang/lang-fr-FR.php new file mode 100755 index 000000000..73780f2d2 --- /dev/null +++ b/htdocs/lang/lang-fr-FR.php @@ -0,0 +1,315 @@ +<?php +$lang = array(); + +$lang['globalEdit'] = "Editer"; +$lang['globalResume'] = "Reprendre"; +$lang['globalPassword'] = "Mot de passe"; +$lang['globalOff'] = "OFF"; +$lang['globalOn'] = "ON"; +$lang['globalSingle'] = "Single"; +$lang['globalTrack'] = "Piste"; +$lang['globalList'] = "Lister"; +$lang['globalPlaylist'] = "Playlist"; +$lang['globalCardId'] = "Numero de série carte RFID"; +$lang['globalRFIDCard'] = "Carte RFID"; +$lang['globalRFIDCards'] = "Cartes RFID"; +$lang['globalCardIdPlaceholder'] = "ex '1234567890'"; +$lang['globalCardIdHelp'] = "The ID is usually printed on the card or fob. A list of used IDs can be found on the home page."; +$lang['globalRegisterCard'] = "Enregistrer une nouvelle carte"; +$lang['globalRegisterCardShort'] = "Liste des cartes"; +$lang['globalLastUsedCard'] = "Dernière carte utilisée"; +$lang['globalClose'] = "Fermer"; +$lang['globalPlay'] = "Lecture"; +$lang['globalVolume'] = "Volume"; +$lang['globalVolumeSettings'] = "Paramètres du volume"; +$lang['globalWifi'] = "WiFi"; +$lang['globalWifiSettings'] = "Paramètres WiFi"; +$lang['globalWifiNetwork'] = "Paramètres WiFi"; +$lang['globalSSID'] = "SSID"; +$lang['globalSet'] = "Définir"; +$lang['globalSettings'] = "Paramètres"; +$lang['globalFolder'] = "Dossier"; +$lang['globalFolderName'] = "Nom du dossier"; +$lang['globalFilename'] = "Nom du fichier"; +$lang['globalStream'] = "Stream"; +$lang['globalSubmit'] = "Envoyer"; +$lang['globalUpload'] = "Upload"; +$lang['globalUpdate'] = "Mettre à jour"; +$lang['globalCancel'] = "Annuler"; +$lang['globalDelete'] = "Supprimer"; +$lang['globalCreate'] = "Créer"; +$lang['globalMove'] = "Déplacer"; +$lang['globalJumpTo'] = "Aller à"; +$lang['globalAutoShutdown'] = "Arrêt automatique"; +$lang['globalIdleShutdown'] = "Arrêt après inactivité"; +$lang['globalAutoStopPlayout'] = "Stop Playout Timer"; +$lang['globalStopTimer'] = "Stop Playout Timer"; +$lang['globalSleepTimer'] = "Minuteur d'arrêt"; +$lang['globalShutdownVolumeReduction'] = "Shutdown Timer Volume Reduction"; +$lang['globalExternalInterfaces'] = "Périphériques externes"; +$lang['globalIdleTime'] = "Idle Time"; +$lang['globalNotIdle'] = "Not Idle"; +$lang['globalGpioButtons'] = "Bouttons GPIO"; +$lang['globalRotaryKnob'] = "Rotary Knob"; +$lang['globalRfidReader'] = "Lecteur RFID"; +$lang['globalEnabled'] = "Activé"; +$lang['globalDisabled'] = "Desactivé"; +$lang['globalSwitchOn'] = "Allumer"; +$lang['globalSwitchOff'] = "Eteindre"; +$lang['globalSystem'] = "Systeme"; +$lang['globalVersion'] = "Version"; +$lang['globalDescription'] = "Description"; +$lang['globalRelease'] = "Release"; +$lang['globalStorage'] = "Stockage"; +$lang['globalShuffle'] = "Aléatoire"; +$lang['globalReplay'] = "Replay"; +$lang['globalRepeat'] = "Repeat"; +$lang['globalLoop'] = "Loop"; +$lang['globalLang'] = "Langue"; +$lang['globalLanguageSettings'] = "Paramètre de langue"; +$lang['globalPriority'] = "Priorité"; +$lang['globalEmail'] = "Email"; +$lang['globalAudioSink'] = "Périphériques audio"; + +// Player title HTML +$lang['playerSeekBack'] = "retour arrière"; +$lang['playerSeekAhead'] = "avancer"; +$lang['playerSkipPrev'] = "piste précedente"; +$lang['playerSkipNext'] = "piste suivante"; +$lang['playerPlayPause'] = "lecture / pause"; +$lang['playerReplay'] = "rejouer la piste"; +$lang['playerLoop'] = "boucle"; +$lang['playerStop'] = "stop"; +$lang['playerVolDown'] = "baisser le volume"; +$lang['playerVolUp'] = "augmenter le volume"; +$lang['playerMute'] = "silence"; +$lang['playerFilePlayed'] = "lecture en cours"; +$lang['playerFileAdded'] = "ajouté à la playlist"; +$lang['playerFileDeleted'] = "supprimer"; + + +// Edition (classic, +spotify) +$lang['globalEdition'] = "Edition"; +$lang['classic'] = "Classic edition (barebones)"; +$lang['plusSpotify'] = "Plus edition (feat. Spotify integration)"; + +$lang['navEditionClassic'] = "Classic"; +$lang['navEditionPlusSpotify'] = "+Spotify"; + +$lang['navBrand'] = "Phoniebox"; +$lang['navHome'] = "Lecteur"; +$lang['navSearch'] = "Recherche"; +$lang['navSettings'] = "Paramètres"; +$lang['navInfo'] = "Info"; +$lang['navShutdown'] = "Eteindre"; +$lang['navReboot'] = "Redemarrer"; + +$lang['indexAvailAudio'] = "Titres disponibles"; +$lang['indexContainsFiles'] = "Contient les fichiers suivants:"; +$lang['indexShowFiles'] = "Afficher les fichiers"; +$lang['indexManageFilesChips'] = "Gestion des fichiers et des cartes"; + +$lang['Spotify'] = "Spotify"; + +/* +* Register & Edit Cards +*/ +$lang['cardRegisterTitle'] = "Ajouter une carte"; +$lang['cardEditTitle'] = "Modifier ou ajouter une carte"; +$lang['cardRegisterAnchorLink'] = "Enregistrement interactif d'une carte"; +$lang['cardRegisterMessageDefault'] = "The 'Latest Card ID' value in the form is updated on the fly as you swipe a RFID card.<br/>(Requires Javascript in the browser to be enabled.)"; +$lang['cardEditMessageDefault'] = "Les cartes utilisées par le systeme sont listées ici <a href='index.php' class='mainMenu'><i class='mdi mdi-home'></i> accueil</a>."; +$lang['cardRegisterMessageSwipeNew'] = "Passer une autre carte si vous souhaitez en enregistrer une autre."; +$lang['cardEditMessageInputNew'] = "Type another card ID pick one from the list on the <a href='index.php' class='mainMenu'><i class='mdi mdi-home'></i> home page</a>."; +$lang['cardRegisterErrorTooMuch'] = "<p>This is too much! Please select only one audiofolder. Make up your mind.</p>"; +$lang['cardRegisterErrorStreamAndAudio'] = "<p>This is too much! Either specify a stream or select an audio folder or system command. Make up your mind.</p>"; +$lang['cardRegisterErrorStreamOrAudio'] = "<p>Seems you haven't selected anything! Add an URL and stream type, select a folder or a system command. Or 'Cancel' to go back to the home page.</p>"; +$lang['cardRegisterErrorExistingAndNew'] = "<p>This is too much! Either choose an existing folder or create a new one.</p>"; +$lang['cardRegisterErrorExistingFolder'] = "<p>A folder named with the same name already exists! Chose a different one.</p>"; +$lang['cardRegisterErrorSuggestFolder'] = "A folder name for the stream needs to be created. Below in the form I made a suggestion."; +$lang['cardRegisterErrorConvertSpotifyURL'] = "URL Spotify incorrecte, elle a été convertie au bon format"; +$lang['cardRegisterStream2Card'] = "Le stream est lié à la carte."; +$lang['cardRegisterFolder2Card'] = "Le dossier audio est désormais lié à une carte."; +$lang['cardRegisterDownloadingYT'] = "<p>Piste YouTube en cours de téléchargement. Cela peut prendre plusieurs minutes. Log dans le fichier \"youtube-dl.log\".</p>"; +$lang['cardRegisterSwipeUpdates'] = "Mise à jour automatique lors du passage d'une carte."; +$lang['cardRegisterManualLinks'] = "<p>Vous pouvez lier manuellement une carte à un dossier. Explication dans la documentation <a href='https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/MANUAL#connecting-to-the-phoniebox-to-add-files' target='–blank'>connection à phoniebox</a> et <a href='https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/MANUAL#registering-cards-manually-through-samba-without-the-web-app' target='_blank'>enregistrer une carte</a>.</p>"; +$lang['cardRegisterTriggerSuccess'] = "La carte est désormais lié à une commande :"; + +/* +* Card edit form +*/ +$lang['cardFormFolderLegend'] = "Lier la carte RFID à:"; +$lang['cardFormFolderLabel'] = "Lier une carte à un dossier"; +$lang['cardFormFolderSelectDefault'] = "Aucun (faites défiler pour choisir un dossier)"; +$lang['cardFormFolderHelp'] = "Containing local files or add YouTube content (specify below)."; +$lang['cardFormNewFolderLabel'] = "... ou liez un nouveau dossier"; +$lang['cardFormNewFolderHelp'] = "Always use a new folder for streams (see below) and optionally for YouTube."; +$lang['cardFormNewFolderPlaceholder'] = "ex 'Nom de l'artiste/Album'"; +$lang['cardFormTriggerLegend'] = "Trigger system command"; +$lang['cardFormTriggerLabel'] = "... or link to a system command"; +$lang['cardFormTriggerHelp'] = "Select system commands (like 'pause', 'volume up', 'shutdown') from the list of available commands. If a RFID card is already linked to a function, the ID is shown in the pulldown menu."; +$lang['cardFormTriggerSelectDefault'] = "Select command to link"; + +$lang['cardFormStreamLegend'] = "Link Stream"; +$lang['cardFormStreamLabel'] = "Stream URL (always requires new folder above)"; +$lang['cardFormStreamPlaceholderClassic'] = "http(...).mp3 / .m3u / .ogg / .rss / .xml / ..."; +$lang['cardFormStreamPlaceholderPlusSpotify'] = "spotify:album/artist/playlist/track:### / Stream/Podcast like http....mp3 .xml .rss .ogg"; +$lang['cardFormStreamHelp'] = "Add the URL for spotify, podcast, web radio, stream or other online media"; +$lang['cardFormStreamTypeSelectDefault'] = "Select type"; +$lang['cardFormStreamTypeHelp'] = "Select the type you are adding"; + +$lang['cardFormYTLegend'] = "Download YouTube"; +$lang['cardFormYTLabel'] = "YouTube URL (single clip or playlist)"; +$lang['cardFormYTPlaceholder'] = "e.g. https://www.youtube.com/watch?v=7GI0VdPehQI"; +$lang['cardFormYTSelectDefault'] = "Pull down to select a folder or create a new one below"; +$lang['cardFormYTHelp'] = "Full YouTube-URL of clip or playlist. Will be downloaded in the folder specified above or the new one if specified."; +$lang['cardFormRemoveCard'] = "Remove Card ID"; + +// Export Card IDs as .csv file +$lang['cardExportAnchorLink'] = "Export all RFID links (audio playout and commands)"; +$lang['cardExportButtonLink'] = "Create .csv file of available RFID links"; + +// Import Card IDs as .csv file +$lang['cardImportAnchorLink'] = "Import RFID links from .csv file"; +$lang['cardImportFileLabel'] = "Select .csv file to create RFID links"; +$lang['cardImportFileSuccessUpload'] = "Successful upload of file: "; +$lang['cardImportFileErrorUpload'] = "<p>There was an error uploading the file, please try again!</p>"; +$lang['cardImportFileErrorFiletype'] = "<p>Wrong file type! The file must be a <em>.csv</em> file.</p>"; +$lang['cardImportFormOverwriteLabel'] = "Select import action"; +$lang['cardImportFormOverwriteHelp'] = "Specify what to do with the uploaded RFID links."; +$lang['cardImportFormOverwriteAll'] = "Overwrite both: audio AND commands"; +$lang['cardImportFormOverwriteAudio'] = "Overwrite ONLY audio triggers"; +$lang['cardImportFormOverwriteCommands'] = "Overwrite ONLY system commands"; +$lang['cardImportFileOverwriteMessageCommands'] = "<p><i class='mdi mdi-check'></i> <strong>System commands</strong> were overwritten with uploaded RFID IDs.</p>"; +$lang['cardImportFileOverwriteMessageAudio'] = "<p><i class='mdi mdi-check'></i> Links to <strong>audio</strong> playlists etc. were overwritten with uploaded RFID IDs.</p>"; +$lang['cardImportFormDeleteLabel'] = "Delete or keep other RFID links?"; +$lang['cardImportFormDeleteNone'] = "Keep all existing: audio AND commands"; +$lang['cardImportFormDeleteAll'] = "Delete both: audio AND commands"; +$lang['cardImportFormDeleteAudio'] = "Delete ONLY audio triggers"; +$lang['cardImportFormDeleteCommands'] = "Delete ONLY system commands"; +$lang['cardImportFormDeleteHelp'] = "Which of the existing RFID links should be kept, which deleted?."; +$lang['cardImportFileDeleteMessageCommands'] = "<p><i class='mdi mdi-delete'></i> <strong>System commands</strong> deleted.</p>"; +$lang['cardImportFileDeleteMessageAudio'] = "<p><i class='mdi mdi-delete'></i> <strong>Audio links</strong> deleted.</p>"; + +/* +* Track edit form +*/ +$lang['trackEditTitle'] = "Gestion des pistes"; +$lang['trackEditInformation'] = "Information sur la piste"; +$lang['trackEditMove'] = "Déplacer une piste"; +$lang['trackEditMoveSelectLabel'] = "Selectionner un dossier"; +$lang['trackEditMoveSelectDefault'] = "Ne pas déplacer le fichier"; +$lang['trackEditDelete'] = "Supprimer la piste"; +$lang['trackEditDeleteLabel'] = "Etes vous sûr de vouloir supprimer ?"; +$lang['trackEditDeleteHelp'] = "Aucun retour arrière pour la suppression d'une piste. Etes vous sûr ?"; +$lang['trackEditDeleteNo'] = "Non, ne pas supprimer cette piste"; +$lang['trackEditDeleteYes'] = "Oui, supprimer cette piste"; + +/* +* Settings +*/ +$lang['settingsPlayoutBehaviourCard'] = "Paramètrage du lecteur RFID"; +$lang['settingsPlayoutBehaviourCardLabel'] = "Passer ou poser la carte ?"; +$lang['settingsPlayoutBehaviourCardSwipe'] = "Passer une carte lance le lecteur."; +$lang['settingsPlayoutBehaviourCardPlace'] = "Poser la carte pour lancer la lecture, l'enlever pour stopper."; +$lang['settingsPlayoutBehaviourCardHelp'] = "Si vous choisissez 'poser la carte', Cela affecte le deuxième passage."; + +$lang['settingsVolChangePercent'] = "Changement du volume %"; +$lang['settingsMaxVol'] = "Volume maximum"; +$lang['settingsStartupVol'] = "Volume au démarrage"; +$lang['settingsBootVol'] = "Volume après reboot"; +$lang['settingsWifiRestart'] = "Les changements sur la configuration Wifi nécessitent un redémarrage."; +$lang['settingsWifiSsidPlaceholder'] = "ex: PhonieHomie"; +$lang['settingsWifiSsidHelp'] = "Le nom de votre réseau Wifi 'mon super réseau'"; +$lang['settingsWifiPassHelp'] = "Mot de passe Wifi (8 caractères minimum)"; +$lang['settingsWifiPrioHelp'] = "Priorité du Wifi (0-100). Si plusieurs Wifi sont détéctés la box se connectera à celui qui a la priorité la plus haute."; +$lang['settingsSecondSwipe'] = "Deuxième passage de carte"; +$lang['settingsSecondSwipeInfo'] = "Que se passe t'il lors du deuuxième passage d'une même carte ? Lecture / Pause ?"; +$lang['settingsSecondSwipeRestart'] = "Reprendre la playlist au début"; +$lang['settingsSecondSwipeSkipnext'] = "Piste suivante"; +$lang['settingsSecondSwipePause'] = "Pause / Lecture"; +$lang['settingsSecondSwipePlay'] = "Reprendre"; +$lang['settingsSecondSwipeNoAudioPlay'] = "Ignorer les déclenchements automatiques, uniquement pour les commandes systeme"; +$lang['settingsSecondSwipePauseInfo'] = "Ignorer le scan des nouvelle carte pour :"; +$lang['second'] = "seconde"; +$lang['seconds'] = "secondes"; +$lang['settingsSecondSwipePauseControlsInfo'] = "Certain type de carte (ex augmentation et diminution du volume, piste suivante et précedente, reculer / avancer) ne devraient pas avoir de délai :"; +$lang['settingsSecondSwipePauseControlsOn'] = "Utiliser la carte immédiatement"; +$lang['settingsSecondSwipePauseControlsOff'] = "Utiliser la carte après un délai (secondes)"; +$lang['settingsWebInterface'] = "Interface web"; +$lang['settingsCoverInfo'] = "Voulez vous afficher les couvertures de vos playlist et titres ?"; +$lang['settingsShowCoverON'] = "Afficher la couverture"; +$lang['settingsShowCoverOFF'] = "Ne pas afficher la couverture"; +$lang['settingsMessageLangfileNewItems'] = "Il y a des nouveautés pour le fichier de langue <em>lang-fr-FR.php</em>. Envoyer vos modiffications sur Github :)"; +$lang['settingsWlanSendNav'] = "Envoyer l'IP par mail"; +$lang['settingsWlanSendInfo'] = "Envoyer l'IP par mail après reboot ? (pratique si vous êtes en IP dynamique et qe vous souhaitez vous connecter)"; +$lang['settingsWlanSendQuest'] = "Envoyer l'IP par mail ?"; +$lang['settingsWlanSendEmail'] = "email"; +$lang['settingsWlanSendON'] = "Oui, envoyer par mail"; +$lang['settingsWlanSendOFF'] = "Non, ne pas envoyer par mail"; + +$lang['settingsVolumeManager'] = "Sélectionner le gestionnaire de volume"; + +$lang['settingsWlanReadNav'] = "Lecture de l'IP"; +$lang['settingsWlanReadInfo'] = "Récupérer l'IP (wifi) après chaque reboot ? (pratique si vous êtes en IP dynamique et qe vous souhaitez vous connecter)"; +$lang['settingsWlanReadQuest'] = "Lire mon IP réseau ?"; +$lang['settingsWlanReadON'] = "Oui, lire mon IP."; +$lang['settingsWlanReadOFF'] = "Non, ne pas lire mon IP."; + +/* +* System info +*/ +$lang['infoOsDistrib'] = "Distribtion Linux"; +$lang['infoOsCodename'] = "Version de l'OS"; +$lang['infoOsTemperature'] = "Température"; +$lang['infoOsThrottle'] = "Throttling"; +$lang['infoStorageUsed'] = "Utilisation disque"; +$lang['infoMopidyStatus'] = "Etat du serveur Mopidy"; +$lang['infoMPDStatus'] = "Etat du serveur MPD"; +$lang['infoDebugLogTail'] = "<b>Fichier debug</b>: Les 40 dernières lignes"; +$lang['infoDebugLogClear'] = "Effacer le contenu du fichier debug.log"; +$lang['infoDebugLogSettings'] = "Paramètres de debug"; +$lang['infoAudioActive'] = "Périphériques audio activés"; +$lang['infoBluetoothStatus'] = "Etat du Bluetooth"; + +/* +* Folder Management and File Upload +*/ +$lang['manageFilesFoldersTitle'] = "Dossier & Fichier"; +$lang['manageFilesFoldersUploadFilesLabel'] = "Sélection du fichier depuis votre PC"; +$lang['manageFilesFoldersUploadLegend'] = "Uploader un fichier"; +$lang['manageFilesFoldersUploadLabel'] = "Sélectionner un dossier ou en créer un nouveau"; +$lang['manageFilesFoldersUploadFolderHelp'] = "Si vous selectionnez un dossier ET que vous en créez un, le nouveau dossier sera inclus dans celui selectionné."; +$lang['manageFilesFoldersNewFolderTitle'] = "Créer un nouveau dossier"; +$lang['manageFilesFoldersNewFolderPositionLegend'] = "Position du dossier"; +$lang['manageFilesFoldersNewFolderPositionDefault'] = "Le nouveau dossier peut être à la racine ou inclus dans un dossier existant"; +$lang['manageFilesFoldersErrorNewFolderName'] = "<p>Nom du dossier invalide.</p>"; +$lang['manageFilesFoldersErrorNewFolder'] = "<p>Aucun dossier selectionné ou aucun dossier valide renseigné.</p>"; +$lang['manageFilesFoldersErrorNoNewFolder'] = "<p>Aucun dossier selectionné ou aucun dossier valide renseigné.</p>"; +$lang['manageFilesFoldersErrorNewFolderExists'] = "<p>Le dossier existe deja.</p>"; +$lang['manageFilesFoldersErrorNewFolderNotParent'] = "<p>Le dossier parent est absent.</p>"; +$lang['manageFilesFoldersSuccessNewFolder'] = "Création du nouveau dossier ok: "; +$lang['manageFilesFoldersSelectDefault'] = "Faites défiler pour choisir un dossier existant ou créez en un nouveau"; + +$lang['manageFilesFoldersRenewDB'] = "Renouvellement de la base"; +$lang['manageFilesFoldersLocalScan'] = "Scanner la bibliothèque"; +$lang['manageFilesFoldersRenewDBinfo'] = "Il est conseillé de scanner votre librairie après chaque ajout de fichier ou modification de dossier. Seules les nouvelles musiques ou les modifications seront scannées. Modipy sera stoppé lors du scan et relancé automatiquement à la fin du scan."; + +/* +* File search +*/ +$lang['searchTitle'] = "Recherche de fichiers audio"; +$lang['searchExample'] = "ex Stromae"; +$lang['searchSend'] = "Rechercher"; +$lang['searchResult'] = "Resultats:"; + +/* +* Filter +*/ +$lang['filterall'] = "Tout afficher"; +$lang['filterfile'] = "Fichiers"; +$lang['filterlivestream'] = "Livestream"; +$lang['filterpodcast'] = "Podcast"; +$lang['filterspotify'] = "Spotify"; +$lang['filteryoutube'] = "YouTube"; +?> From 5a6b99c0deab84ca3bd67849c1b01b3b6234f70c Mon Sep 17 00:00:00 2001 From: Peter Grauvogel <petschni@users.noreply.github.com> Date: Sun, 27 Mar 2022 13:58:46 +0200 Subject: [PATCH 181/206] fix(install): mopidy for spotify install (#1792) * fix(install): mopidy for spotify install * applying mopidy install fix here as well --- .../installscripts/buster-install-default-with-autohotspot.sh | 2 +- scripts/installscripts/buster-install-default.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/installscripts/buster-install-default-with-autohotspot.sh b/scripts/installscripts/buster-install-default-with-autohotspot.sh index 30f4de60a..db75c6ca3 100755 --- a/scripts/installscripts/buster-install-default-with-autohotspot.sh +++ b/scripts/installscripts/buster-install-default-with-autohotspot.sh @@ -828,7 +828,7 @@ install_main() { # keep major verson 3 of mopidy echo -e "Package: mopidy\nPin: version 3.*\nPin-Priority: 1001" | sudo tee /etc/apt/preferences.d/mopidy - wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add - + sudo wget -q -O /usr/local/share/keyrings/mopidy-archive-keyring.gpg https://apt.mopidy.com/mopidy.gpg sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/buster.list ${apt_get} update ${apt_get} upgrade diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index 1d9760fe6..34d49a342 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -834,7 +834,7 @@ install_main() { # keep major verson 3 of mopidy echo -e "Package: mopidy\nPin: version 3.*\nPin-Priority: 1001" | sudo tee /etc/apt/preferences.d/mopidy - wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add - + sudo wget -q -O /usr/local/share/keyrings/mopidy-archive-keyring.gpg https://apt.mopidy.com/mopidy.gpg sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/buster.list ${apt_get} update ${apt_get} upgrade From c0586f6edb63d98bb43cb1707b2df1d0665cb70d Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Thu, 19 May 2022 20:27:56 +0200 Subject: [PATCH 182/206] Create dependabot.yml --- .github/dependabot.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..6d3773dd0 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,16 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "pip" + directory: "/" + schedule: + interval: "daily" + + - package-ecosystem: "composer" + directory: "/" + schedule: + interval: "daily" From f71bf4a55a86338a3eff44fcffc400cd6b6293e6 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Thu, 19 May 2022 20:36:42 +0200 Subject: [PATCH 183/206] Update dependabot.yml --- .github/dependabot.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 6d3773dd0..de5e8ce51 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -8,9 +8,14 @@ updates: - package-ecosystem: "pip" directory: "/" schedule: - interval: "daily" + interval: "monthly" - package-ecosystem: "composer" directory: "/" schedule: - interval: "daily" + interval: "monthly" + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "monthly" From 3673065e2866318603582883b5ecd8bc8b71cb5f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 May 2022 20:53:33 +0200 Subject: [PATCH 184/206] Bump actions/setup-python from 1 to 3 (#1821) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 1 to 3. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v1...v3) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/pythonpackage.yml | 2 +- .github/workflows/pythonpackage_future3.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index 262748e99..55ddc42c5 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -17,7 +17,7 @@ jobs: steps: - uses: actions/checkout@v1 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v1 + uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} - name: Install dependencies diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index c53756ca7..2d1b574e9 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -28,7 +28,7 @@ jobs: steps: - uses: actions/checkout@v1 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v1 + uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} - name: Install dependencies From 8c8a13c553eeb9386f2bf91b4fdc27c5de0d0488 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 May 2022 20:53:55 +0200 Subject: [PATCH 185/206] Bump actions/checkout from 2 to 3 (#1822) Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/codeql-analysis.yml | 2 +- .github/workflows/dockerimage.yml | 2 +- .github/workflows/pythonpackage.yml | 2 +- .github/workflows/pythonpackage_future3.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index df6b2837a..8e49a6673 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -35,7 +35,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff --git a/.github/workflows/dockerimage.yml b/.github/workflows/dockerimage.yml index 9ce6317a5..ce0e8f766 100644 --- a/.github/workflows/dockerimage.yml +++ b/.github/workflows/dockerimage.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Build Docker image and run tests run: | docker build . --file ./ci/Dockerfile.buster.test_install.amd64 --tag rpi-jukebox-rfid-buster:latest diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index 55ddc42c5..68baad933 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -15,7 +15,7 @@ jobs: python-version: [3.6, 3.7, 3.8] steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v3 with: diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index 2d1b574e9..de9a849f4 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -26,7 +26,7 @@ jobs: python-version: [3.7, 3.8] steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v3 with: From 81a01ffa78654d47355f07dff779e0a43be79c1a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 May 2022 20:55:05 +0200 Subject: [PATCH 186/206] Bump github/codeql-action from 1 to 2 (#1820) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 1 to 2. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v1...v2) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/codeql-analysis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 8e49a6673..1a365a93c 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -39,7 +39,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v1 + uses: github/codeql-action/init@v2 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -50,7 +50,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v1 + uses: github/codeql-action/autobuild@v2 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -64,4 +64,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 + uses: github/codeql-action/analyze@v2 From 7a5d3f885b6e737724116ef9b510bf47bea030a8 Mon Sep 17 00:00:00 2001 From: David K <david@binder-kagerer.de> Date: Sun, 29 May 2022 19:26:46 +0000 Subject: [PATCH 187/206] fix reported duration attribute via mqtt (#1787) * fix reportet duration via mqtt this adjusts the regex to get the duration attribute from the status object. * feat: use for duration the fallback time attribute In some cases mpd does not report the duration of a track in the mpd status response but usually a rounded value in the time attribute. So lets use this as fallback value. --- .../MQTT-protocol/daemon_mqtt_client.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py index 60c8ca38d..f13a14581 100644 --- a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py +++ b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py @@ -476,6 +476,19 @@ def regex(needle, hay, exception="-"): else: return exception +def getDuration(status): + """ Find the duration of the track in the output from mpd status""" + + # try to get the duration value + duration = regex("\nduration: (.*)\n", status) + + if duration == "-": + # if the duration attribute is missing try to get the time + # this attribute value is split into two parts by ":" + # first is the elapsed time and the second part is the duration + duration = regex("\ntime: .*:(.*)\n", status, "0") + + return int(float(duration)) def fetchData(): # use global refreshInterval as this function is run as a thread through the paho-mqtt loop @@ -523,7 +536,7 @@ def fetchData(): int(hours), int(minutes), int(seconds) ) - duration = int(float(regex("\nduration: (.*)\n", status, "0"))) + duration = getDuration(status) hours, remainder = divmod(duration, 3600) minutes, seconds = divmod(remainder, 60) result["duration"] = "{:02}:{:02}:{:02}".format( From a63bc8f2930b644a54c7b2e22d04055d4709bfd0 Mon Sep 17 00:00:00 2001 From: Micz Flor <micz.flor@web.de> Date: Tue, 31 May 2022 21:12:38 +0200 Subject: [PATCH 188/206] Update README.md --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index 8d646243c..c18ac3108 100755 --- a/README.md +++ b/README.md @@ -8,6 +8,19 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podcasts, web streams and spotify triggered by RFID cards. All plug and play via USB, no soldering iron needed. Update: if you must, it now also features a howto for adding GPIO buttons controls. +**IMPORTANT NOTICE REGARDING SPOTIFY INTEGRATION** + +>Spotify has [disabled access to libspotify on May 16, 2022](https://developer.spotify.com/community/news/2022/04/12/libspotify-sunset/). +This means Phoniebox can not communicate with Spotify via libspotify anymore. +The problem is not our code but the cut off by Spotify. + +We want Phoniebox users to be able to connect their box to their Spotify accounts and play their content. +The possibilities Spotify offers are -- at first glance -- not supporting an integration with Phoniebox. +Third party projects like [librespot-java](https://github.com/librespot-org/librespot-java) enter a grey zone regarding violation of Spotify's *Terms of Services* -- and even state that they (quote) "If you're brave enough to put at risk this entire project, just don't publish it". +This leaves us in a pickle and we are happy to hear from developer talent in the Phoniebox community on how to move forward regarding Phoniebox. +We are also curious to learn about alternative services we can connect with and which you would like to see supported -- or have developed support for already. + + ## The Phoniebox Calendar 2022 is here!!! Another bunch of wonderful designs! 2022 is the fourth Phoniebox calendar. If you are interested, you can see the [2019, 2020 and 2021 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). Download [the printable PDF of 2022 here](https://mi.cz/static/2022-Phoniebox-Calendar.pdf). From b09284910c0269e182aa00f4077dfd18932c74a8 Mon Sep 17 00:00:00 2001 From: Micz Flor <micz.flor@web.de> Date: Wed, 1 Jun 2022 08:45:21 +0200 Subject: [PATCH 189/206] Update README.md --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c18ac3108..80db2e444 100755 --- a/README.md +++ b/README.md @@ -11,14 +11,16 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podc **IMPORTANT NOTICE REGARDING SPOTIFY INTEGRATION** >Spotify has [disabled access to libspotify on May 16, 2022](https://developer.spotify.com/community/news/2022/04/12/libspotify-sunset/). -This means Phoniebox can not communicate with Spotify via libspotify anymore. +This means Phoniebox can not communicate with Spotify via libspotify (and mopidy-spotify) anymore. The problem is not our code but the cut off by Spotify. We want Phoniebox users to be able to connect their box to their Spotify accounts and play their content. The possibilities Spotify offers are -- at first glance -- not supporting an integration with Phoniebox. -Third party projects like [librespot-java](https://github.com/librespot-org/librespot-java) enter a grey zone regarding violation of Spotify's *Terms of Services* -- and even state that they (quote) "If you're brave enough to put at risk this entire project, just don't publish it". +Third party projects like [librespot-java](https://github.com/librespot-org/librespot-java) enter a grey zone regarding violation of Spotify's *Terms of Services* (ToS). For a potential Spotify re-integration, we are committed to a Spotify ToS compliant way of doing so (both in Version 2 and Version 3). This means looking into the (relatively new) Spotify Playback API, which is going to take an unknown amount of time. + This leaves us in a pickle and we are happy to hear from developer talent in the Phoniebox community on how to move forward regarding Phoniebox. -We are also curious to learn about alternative services we can connect with and which you would like to see supported -- or have developed support for already. +We are also curious to learn about alternative services we can connect with and which you would like to see supported -- or have developed support for already: +https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions/1835 ## The Phoniebox Calendar 2022 is here!!! From 43c30193baa1f5430824f0727687941f86ac61ee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Jul 2022 22:21:28 +0200 Subject: [PATCH 190/206] Bump actions/setup-python from 3 to 4 (#1856) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 3 to 4. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/pythonpackage.yml | 2 +- .github/workflows/pythonpackage_future3.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index 68baad933..d4109874f 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -17,7 +17,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies diff --git a/.github/workflows/pythonpackage_future3.yml b/.github/workflows/pythonpackage_future3.yml index de9a849f4..cf5005fd2 100644 --- a/.github/workflows/pythonpackage_future3.yml +++ b/.github/workflows/pythonpackage_future3.yml @@ -28,7 +28,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v3 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies From 9d9f6909cac584f749ab5d9850f1bb1d2f29a1ab Mon Sep 17 00:00:00 2001 From: notapirate <notapirate@users.noreply.github.com> Date: Sat, 2 Jul 2022 22:23:33 +0200 Subject: [PATCH 191/206] flexible php version in variable php_ini (#1849) Follow-up for commit "facilitate transition to bullseye". Bug: Since bullseye uses php7.4, php.ini will not be replaced by the sample Solution: Read folder name in /etc/php and use it in variable php_ini, keeping compatibility with buster --- scripts/installscripts/buster-install-default.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index 34d49a342..1488d38e0 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -693,7 +693,7 @@ samba_config() { web_server_config() { local lighthttpd_conf="/etc/lighttpd/lighttpd.conf" local fastcgi_php_conf="/etc/lighttpd/conf-available/15-fastcgi-php.conf" - local php_ini="/etc/php/7.3/cgi/php.ini" + local php_ini="/etc/php/$(ls -1 /etc/php)/cgi/php.ini" local sudoers="/etc/sudoers" echo "Configuring web server..." From 40f7019f83962c5bf7a5a1683e2a6733353cd206 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Sat, 20 Aug 2022 14:03:01 +0200 Subject: [PATCH 192/206] Run CI also on PRs (#1845) * Update dockerimage.yml * Update pythonpackage.yml --- .github/workflows/dockerimage.yml | 3 +++ .github/workflows/pythonpackage.yml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.github/workflows/dockerimage.yml b/.github/workflows/dockerimage.yml index ce0e8f766..6cdce896a 100644 --- a/.github/workflows/dockerimage.yml +++ b/.github/workflows/dockerimage.yml @@ -4,6 +4,9 @@ on: push: branches-ignore: - 'future3/**' + pull_request: + # The branches below must be a subset of the branches above + branches: [ develop ] jobs: diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml index d4109874f..b61b46aff 100644 --- a/.github/workflows/pythonpackage.yml +++ b/.github/workflows/pythonpackage.yml @@ -4,6 +4,9 @@ on: push: branches-ignore: - 'future3/**' + pull_request: + # The branches below must be a subset of the branches above + branches: [ develop ] jobs: build: From 9e578c32118d59cbe70e01d81c6bea56f6c76d3d Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Mon, 22 Aug 2022 12:16:51 +0200 Subject: [PATCH 193/206] Linting markdown and Python (#1830) * fix flake8 warnings * fix markdownlint --- CONTRIBUTING.md | 13 ++-- README.md | 76 ++++++++++--------- .../buttons_usb_encoder.py | 1 + .../map_buttons_usb_encoder.py | 3 + 4 files changed, 50 insertions(+), 43 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index aa562fdfc..fe4f5ca6d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -33,7 +33,7 @@ Inside the root folder or the repo, these folders are important: * `components` * contains sub- und subsubfolders for additional features, services, hardware * **subfolders** are for categories (e.g. displays, soundcards) and are plural, even if there is only one - * **subsubfolders** are specific hardware, services, features, protocols, etc. + * **subsubfolders** are specific hardware, services, features, protocols, etc. # How to contribute @@ -62,7 +62,6 @@ git pull The preferred way of code contributions are [pull requests (follow this link for a small howto)](https://www.digitalocean.com/community/tutorials/how-to-create-a-pull-request-on-github). And ideally pull requests using the "running code" on the `develop` branch of your Phoniebox. Alternatively, feel free to post tweaks, suggestions and snippets in the ["issues" section](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues). - ## Making Changes * Create a topic branch from where you want to base your work. @@ -91,9 +90,10 @@ The preferred way of code contributions are [pull requests (follow this link for Update: This time without the need to create an extra random.txt file.and uptodate with the master branch. ~~~ + ## Making Trivial Changes -For changes of a trivial nature, it is not always necessary to create a new issue. +For changes of a trivial nature, it is not always necessary to create a new issue. In this case, it is appropriate to start the first line of a commit with one of `(docs)`, `(maint)`, or `(packaging)` instead of a ticket number. @@ -121,15 +121,16 @@ to detect in advance. If the code change results in a test failure, we will make our best effort to correct the error. If a fix cannot be determined and committed within 24 hours of its discovery, the commit(s) responsible _may_ be reverted, at the -discretion of the committer and Phonie maintainers. -The original contributor will be notified of the revert. +discretion of the committer and Phonie maintainers. +The original contributor will be notified of the revert. ### Summary * Changes resulting in test failures will be reverted if they cannot be resolved within one business day. -## Guidelines ## +## Guidelines + * Currently Phoniebox runs on Raspian **Buster** . Therefore all Python code should work with **Python 3.7**. * For GPIO all code should work with **RPi.GPIO**. gpiozero is currently not intended to use. diff --git a/README.md b/README.md index 80db2e444..f32353cbc 100755 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ +# Phoniebox: the RPi-Jukebox-RFID +  -  +  [](https://gitter.im/phoniebox) -# Phoniebox: the RPi-Jukebox-RFID - A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podcasts, web streams and spotify triggered by RFID cards. All plug and play via USB, no soldering iron needed. Update: if you must, it now also features a howto for adding GPIO buttons controls. **IMPORTANT NOTICE REGARDING SPOTIFY INTEGRATION** @@ -25,7 +25,7 @@ https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions/1835 ## The Phoniebox Calendar 2022 is here!!! -Another bunch of wonderful designs! 2022 is the fourth Phoniebox calendar. If you are interested, you can see the [2019, 2020 and 2021 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). Download [the printable PDF of 2022 here](https://mi.cz/static/2022-Phoniebox-Calendar.pdf). +Another bunch of wonderful designs! 2022 is the fourth Phoniebox calendar. If you are interested, you can see the [2019, 2020 and 2021 calendars in the docs folder](https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/docs). Download [the printable PDF of 2022 here](https://mi.cz/static/2022-Phoniebox-Calendar.pdf).  @@ -33,12 +33,12 @@ Another bunch of wonderful designs! 2022 is the fourth Phoniebox calendar. If yo ## Install latest Phoniebox version -If you are looking for **the latest stable version**, use the [install script for Raspberry Pi OS Stretch](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch). +If you are looking for **the latest stable version**, use the [install script for Raspberry Pi OS](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch). If you dare to go where only few have gone before, **become an alpha-tester, bug reporter, contributor** for the exciting, totally re-written, up and coming, yet feature incomplete and unstable version 3 of the Phoniebox code base: ## 🔥 Version 3 is coming ... -#### Newest release: V3.2.0 Beta -> 7. Feb 2022 +### Newest release: V3.2.0 Beta -> 7. Feb 2022 * New GPIO backend based on GPIOZero including more sophisticated controls for inputs and outputs * Bluetooth Headset support with device buttons @@ -74,7 +74,7 @@ If you seek the adventure, your support will be more then welcome. Before contri * **Discussions forums** we use Github's Discussions feature for a more forum style. Please ask general questions in [Discussions](https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions), bugs and enhancements should still be in [Issues](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues). * **Phoniebox [future3 Beta](https://rpi-jukebox-rfid.readthedocs.io/en/latest/) released (2022-02)** -* **Gitter Community** we got ourselves a gitter community; chat us up at https://gitter.im/phoniebox +* **Gitter Community** we got ourselves a gitter community; chat us up at <https://gitter.im/phoniebox> * **Phoniebox [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) released (2021-08-12)** @@ -94,19 +94,20 @@ The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) rel * Lots of fixed bugs and minor improvements... **What's still hot?** + * :fire: **Fixed location of gpio_settings.ini** for [GPIO control](components/gpio_control/README.md) * Added support for files with embedded chapters metada (like m4a) enhancement * Added customizable poweroff command bash enhancement * Finally fixed resume function... * Lots of fixed bugs and minor improvements... - * Status LED, Rotary Button, Volume Up/Down, custom music directory for +Spotify, Startup sound volume + * Status LED, Rotary Button, Volume Up/Down, custom music directory for +Spotify, Startup sound volume * The constantly improved **one-line install script** handles both **Classic** and **+Spotify** when [setting up your Phoniebox](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch#one-line-install-command) - * integrated improved [GPIO control](components/gpio_control/README.md) - * integrated selection of RFID readers and uses [multiple readers](https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/1012#issue-434052529) simultaneously - * features *non-interactive* installs based on a config file + * integrated improved [GPIO control](components/gpio_control/README.md) + * integrated selection of RFID readers and uses [multiple readers](https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/1012#issue-434052529) simultaneously + * features *non-interactive* installs based on a config file * **[WiFi management](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/MANUAL#wifi-settings)** - * RFID cards to **toggle Wifi** (or switch it on/off) - * Read out the Wifi IP address (if you are connecting to a new network and don't know where to point your browser) + * RFID cards to **toggle Wifi** (or switch it on/off) + * Read out the Wifi IP address (if you are connecting to a new network and don't know where to point your browser) * **Hotspot** Phoniebox: [ad-hoc hotspot](https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/967) if no known network found (IP: 10.0.0.5 SSID: phoniebox Password: PlayItLoud) * **Touchscreen** LCD display Player (file: `index-lcd.php`in web app) * Integrate your [Phoniebox in your Smart Home](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Smart-Home-remote-control-with-MQTT). @@ -122,13 +123,13 @@ The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) rel * Support for **[Spotify](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Spotify-FAQ)** and **[Google Play Music](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Enable-Google-Play-Music-GMusic)** integration. * **Podcasts!** More for myself than anybody else, I guess, I added the [podcast feature for Phoniebox](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/MANUAL#podcasts) (2018-05-09) * [Buttons](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Using-GPIO-hardware-buttons) and [knobs / dials](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Audio-RotaryKnobVolume) to control your **Phoniebox via GPIO**. - + ### Quick install - + [One line install script](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch#one-line-install-command) for Raspbian `buster` available. * **MUST READ for users of [Phoniebox +Spotify Edition](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Spotify-FAQ)** -* This install script combines the two versions *Classic* and *+ Spotify*. +* This install script combines the two versions *Classic* and *+ Spotify*. * *Phoniebox Classic* supports local audio, web radio, podcasts, YouTube (download and convert), GPIO and/or RFID Documentation can be found in the [GitHub wiki for Phoniebox](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki). Please try to add content in the wiki regarding special hardware, software tweaks and the like. @@ -149,7 +150,7 @@ The PDF is about 6MB and will print well on A2 paper size, but it should also lo <!--a href="https://www.paypal.com" target="_blank"><img src="https://www.paypalobjects.com/digitalassets/c/website/logo/full-text/pp_fc_hl.svg" width="auto" height="30px"></a--> If you like your Phoniebox, consider to [buy me a coffee](https://www.buymeacoffee.com/MiczFlor) -or donate via [PayPal](https://www.paypal.com) to micz.flor@web.de using the *friends* option. +or donate via [PayPal](https://www.paypal.com) to micz.flor@web.de using the *friends* option. --- @@ -163,7 +164,7 @@ or donate via [PayPal](https://www.paypal.com) to micz.flor@web.de using the *fr | --- | --- | --- | | <a href="https://youtu.be/spHDGSxckmw" target="_blank"><img src="https://i.ytimg.com/vi/spHDGSxckmw/hqdefault.jpg"><br>Installation und Hardware</a> | <a href="https://youtu.be/9ZSKFoWr9WY" target="_blank"><img src="https://i.ytimg.com/vi/9ZSKFoWr9WY/hqdefault.jpg"><br>Web App and Audio / Spotify</a> | <a href="https://youtu.be/YucQuwUD7XE" target="_blank"><img src="https://i.ytimg.com/vi/YucQuwUD7XE/hqdefault.jpg"><br>The finished Phoniebox in action</a> | -A new video screencast about +A new video screencast about **What makes this Phoniebox easy to install and use:** @@ -190,13 +191,13 @@ The **web app** runs on any device and is mobile optimised. It provides: | | | | | | | | --- | --- | --- | --- | --- | --- | -|  |  |  |  |  |  | +|  |  |  |  |  |  | **See more innovation, upcycling and creativity in the [Phoniebox Gallery](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/GALLERY) or visit and share the project's homepage at [phoniebox.de](http://phoniebox.de/). There is also an [english Phoniebox page](http://phoniebox.de/index.php?l=en).** ## Sustainability -You might be surprised how easy and affordable you can get a RaspberryPi or an "appropriate" housing for your Phoniebox **second hand**. Think about the planet before you buy a new one. +You might be surprised how easy and affordable you can get a RaspberryPi or an "appropriate" housing for your Phoniebox **second hand**. Think about the planet before you buy a new one. Creating a Phoniebox may be sustainable for the following reasons: * You **buy things second hand** or **do upcycling on unused objects** and reduce newly produced products @@ -207,7 +208,7 @@ Creating a Phoniebox may be sustainable for the following reasons: ## <a name="install"></a>Installation -* Installation instructions for Raspbian (https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch). +* Installation instructions for Raspbian (<https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch>). * You can also use the [headless installation over ssh](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch#ssh-install) straight from a fresh SD card. * For a quick install procedure, take a look at the [bash one line install script for stretch and buster](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch#one-line-install-command). This should get you started quickly. * If you choose the step by step installation, you need to walk through the configuration steps for [Stretch](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/CONFIGURE-stretch). @@ -236,16 +237,17 @@ Read the [CONTRIBUTING.md](CONTRIBUTING.md) file for [more infos on how to contr ## Reporting bugs -To make maintenance easier for everyone, please run the following script -and post the results when reporting a bug. +To make maintenance easier for everyone, please run the following script and post the results when reporting a bug. (Note: the results contain some personal information like IP or SSID. You might want to erase some of it before sharing with the bug report.) -~~~ + +~~~bash /home/pi/RPi-Jukebox-RFID/scripts/helperscripts/Analytics_AfterInstallScript.sh ~~~ + Just copy this line and paste it into your terminal on the pi. -If you find something that doesn't work. And you tried and tried again, but it still doesn't work, please report your issue in the ["issues" section](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues). Make sure to include information about the system and hardware you are using, like: +If you find something that doesn't work. And you tried and tried again, but it still doesn't work, please report your issue in the ["issues" section](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues). Make sure to include information about the system and hardware you are using, like: *Raspberry ZERO, OS Jessie, Card reader lists as (insert here) when running scripts/RegisterDevice.py, installed Phoniebox version 0.9.3 (or: using latest master branch).* @@ -302,12 +304,12 @@ Here is a list of equipment needed. You can find a lot second hand online (save ### RFID Reader and cards / fobs * RFID Card Reader (USB): [Neuftech USB RFID Reader ID](https://amzn.to/2RrqScm) using 125 kHz - make sure to buy compatible cards, RFID stickers or key fobs working with the same frequency as the reader. **Important notice:** the hardware of the reader that I had linked here for a long times seems to have changed and suddenly created problems with the Phoniebox installation. The reader listed now has worked and was recommended by two Phoniebox makers (2018 Oct 4). I can not guarantee that this will not change and invite you to give [RFID Reader feedback in this thread](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/231). - * RFID cards: [125 KHz EM4100](https://amzn.to/37pjy9q) make sure the frequency matches the RFID card reader !!! - * RFID fobs / key rings: [EM4100 RFID-Transponder-Schlüsselring, 125 KHz](https://amzn.to/3hsuvLO) make sure the frequency matches the RFID card reader !!! + * RFID cards: [125 KHz EM4100](https://amzn.to/37pjy9q) make sure the frequency matches the RFID card reader !!! + * RFID fobs / key rings: [EM4100 RFID-Transponder-Schlüsselring, 125 KHz](https://amzn.to/3hsuvLO) make sure the frequency matches the RFID card reader !!! + +* RFID Kit RC522: [RC522 Reader, Chip, Card for Raspberry Pi 13.56MHz] (<https://amzn.to/2C7YZCZ>) + * RFID sticker / tags: [MIFARE RFID NFC Tags](https://amzn.to/30GfLDg) untested by me personally, but reported to work with work with RC522 and PN532 card readers. -* RFID Kit RC522: [RC522 Reader, Chip, Card for Raspberry Pi 13.56MHz] (https://amzn.to/2C7YZCZ) - * RFID sticker / tags: [MIFARE RFID NFC Tags](https://amzn.to/30GfLDg) untested by me personally, but reported to work with work with RC522 and PN532 card readers. - ### Speakers / amps * [USB Stereo Speaker Set (6 Watt, 3,5mm jack, USB-powered) black](http://amzn.to/2kXrard) | This USB powered speaker set sounds good for its size, is good value for money and keeps this RPi project clean and without the need of a soldering iron :) @@ -318,17 +320,17 @@ Here is a list of equipment needed. You can find a lot second hand online (save * [USB Interface for Arcade buttons](https://amzn.to/3nRAtIS) if you insist on not soldering hardware. (23rd Nov 2020: GPIO control script not yet part of the repo) * Arcade Buttons / Sensors (one of these might suit you) - * [Arcade Buttons / Schalter in various colours](https://amzn.to/2QMxe9r) if you want buttons for the GPIO control. - * [Arcade Buttons wit LED and custom icons](https://amzn.to/2MWQ6hq) as used by [@splitti](https://splittscheid.de/selfmade-phoniebox/#3C). - * [Set: Arcade Buttons / Tasten / Schalter ](https://amzn.to/2T81JTZ) GPIO Extension Board Starter Kit including cables and breadboard. - * [Touch Sensor / Kapazitive Touch Tasten ](https://amzn.to/2Vc4ntx) these are not buttons to press but to touch as GPIO controls. + * [Arcade Buttons / Schalter in various colours](https://amzn.to/2QMxe9r) if you want buttons for the GPIO control. + * [Arcade Buttons wit LED and custom icons](https://amzn.to/2MWQ6hq) as used by [@splitti](https://splittscheid.de/selfmade-phoniebox/#3C). + * [Set: Arcade Buttons / Tasten / Schalter](https://amzn.to/2T81JTZ) GPIO Extension Board Starter Kit including cables and breadboard. + * [Touch Sensor / Kapazitive Touch Tasten](https://amzn.to/2Vc4ntx) these are not buttons to press but to touch as GPIO controls. ### Special hardware -These are links to additional items, which will add an individual flavour to your Phoniebox setup. Consult the issue threads to see if your idea has been realised already. +These are links to additional items, which will add an individual flavour to your Phoniebox setup. Consult the issue threads to see if your idea has been realised already. -* [Ground Loop Isolator / Entstörfilter Audio](https://amzn.to/2Kseo0L) this seems to [get rid off crackles in the audio out (a typical RPi problem)](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/341) +* [Ground Loop Isolator / Entstörfilter Audio](https://amzn.to/2Kseo0L) this seems to [get rid off crackles in the audio out (a typical RPi problem)](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/341) * [Mechanical audio switch](https://amzn.to/35oOSCS) if you want to connect differen audio devices, this is the easiest way (in connection with the *Ground Loop Isolator* you will get good results) -* [Rotary Encoder / Drehregler / Dial](https://amzn.to/2J34guF) for volume control. Read here for more information on how to [integrate the rotary dial](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/267) +* [Rotary Encoder / Drehregler / Dial](https://amzn.to/2J34guF) for volume control. Read here for more information on how to [integrate the rotary dial](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/267) * [HiFiBerry DAC+ Soundcard](https://amzn.to/2J36cU9) Read here for more information on how to [HifiBerry Soundcard integration](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/MANUAL#hifiberry-dac-soundcard-details) * [HDMI zu HDMI + Optisches SPDIF mit 3,5-mm-Stereo-HDMI Audio-Extractor | HDMI zu SPDIF Konverter](https://amzn.to/2N8KP8C) If you plan to use video, this might be the better solution than a USB soundcard or the hifiberry. If takes up some space, but will work with the HDMI audio out and split the signal to deliver audio through 3.5mm jack. diff --git a/components/controls/buttons_usb_encoder/buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/buttons_usb_encoder.py index 3935395e8..e5b56acfb 100644 --- a/components/controls/buttons_usb_encoder/buttons_usb_encoder.py +++ b/components/controls/buttons_usb_encoder/buttons_usb_encoder.py @@ -9,6 +9,7 @@ from io_buttons_usb_encoder import button_map, current_device from components.gpio_control.function_calls import phoniebox_function_calls +sys.path.append(".") logger = logging.getLogger(__name__) diff --git a/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py b/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py index 5dafca7eb..40b094135 100644 --- a/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py +++ b/components/controls/buttons_usb_encoder/map_buttons_usb_encoder.py @@ -8,6 +8,9 @@ from io_buttons_usb_encoder import current_device, write_button_map import components.gpio_control.function_calls +sys.path.append(".") + + try: functions = list( filter(lambda function_name: function_name.startswith("functionCall"), From 23798def6050758075b9f57c3ee33638712f4912 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Wed, 26 Oct 2022 23:33:55 +0200 Subject: [PATCH 194/206] Fix code scanning alert (#1802) Fixes https://github.com/MiczFlor/RPi-Jukebox-RFID/security/code-scanning/1 --- htdocs/_assets/bootstrap-3/js/collapse.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/_assets/bootstrap-3/js/collapse.js b/htdocs/_assets/bootstrap-3/js/collapse.js index 12038693d..386aa7af3 100755 --- a/htdocs/_assets/bootstrap-3/js/collapse.js +++ b/htdocs/_assets/bootstrap-3/js/collapse.js @@ -160,7 +160,7 @@ var target = $trigger.attr('data-target') || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7 - return $(target) + return $.find(target) } From 7c00de192fbfcb44278312951780190031159438 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Wed, 26 Oct 2022 23:35:09 +0200 Subject: [PATCH 195/206] Update version to 2.4 --- settings/version-number | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings/version-number b/settings/version-number index bb576dbde..6b4950e3d 100755 --- a/settings/version-number +++ b/settings/version-number @@ -1 +1 @@ -2.3 +2.4 From 0307407e86e9a349c0b98f9bccd36d994b96a03e Mon Sep 17 00:00:00 2001 From: Feras Al-Kassar <en.feras@hotmail.com> Date: Wed, 26 Oct 2022 14:38:56 -0700 Subject: [PATCH 196/206] Fix Command Injection and XSS vulnerabilities in trackEdit.php (#1862) Signed-off-by: AL-KASSAR <feras.al-kassar@sap.com> --- htdocs/trackEdit.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/trackEdit.php b/htdocs/trackEdit.php index 19784f6d6..19be521cd 100755 --- a/htdocs/trackEdit.php +++ b/htdocs/trackEdit.php @@ -247,7 +247,7 @@ * read metadata */ $fileName = Files::buildPath($post['folder'], $post['filename']); -$exec = "mid3v2 -l '" .$fileName ."'" ; +$exec = "mid3v2 -l '" .escapeshellarg($fileName) ."'" ; $res = shell_exec($exec); $lines = explode(PHP_EOL, $res); foreach($lines as $line) { From ff565cb08760f49cc6877165231c762524cab58d Mon Sep 17 00:00:00 2001 From: David K <david@binder-kagerer.de> Date: Wed, 26 Oct 2022 23:48:01 +0200 Subject: [PATCH 197/206] feature: add repeat mode attribute to mqtt (#1807) * feat: add repeat mode to mqtt attributes * refactor: removes duplicated function * docs: adds repeat_mode attribute to README * refactor: extract method outside of main function * chore: remove more duplicated code --- .../MQTT-protocol/README.md | 1 + .../MQTT-protocol/daemon_mqtt_client.py | 50 ++++++++----------- 2 files changed, 21 insertions(+), 30 deletions(-) diff --git a/components/smart-home-automation/MQTT-protocol/README.md b/components/smart-home-automation/MQTT-protocol/README.md index aa76da5bd..c1093a0fd 100644 --- a/components/smart-home-automation/MQTT-protocol/README.md +++ b/components/smart-home-automation/MQTT-protocol/README.md @@ -52,6 +52,7 @@ MQTT clients can (additionally to the periodic updates) request an attribute of - volume - mute - repeat +- repeat_mode [off / single / playlist] - random - state - file diff --git a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py index f13a14581..b99b89eab 100644 --- a/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py +++ b/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py @@ -86,6 +86,7 @@ "volume", "mute", "repeat", + "repeat_mode", "random", "state", "file", @@ -112,31 +113,6 @@ ] -def watchForNewCard(): - i = inotify.adapters.Inotify() - i.add_watch(path + "/../settings/Latest_RFID") - - # wait for inotify events - for event in i.event_gen(yield_nones=False): - if event is not None: - # fetch event attributes - (e_header, e_type_names, e_path, e_filename) = event - - # file was closed and written => a new card was swiped - if "IN_CLOSE_WRITE" in e_type_names: - # fetch card ID - cardid = readfile(path + "/../settings/Latest_RFID") - - # publish event "card_swiped" - client.publish( - config.get("mqttBaseTopic") + "/event/card_swiped", payload=cardid - ) - print(" --> Publishing event card_swiped = " + cardid) - - # process all attributes - processGet("all") - - def watchForNewCard(): i = inotify.adapters.Inotify() i.add_watch(path + "/../settings/Latest_RFID") @@ -490,6 +466,24 @@ def getDuration(status): return int(float(duration)) +REPEAT_MODE_OFF = "off" +REPEAT_MODE_SINGLE = "single" +REPEAT_MODE_PLAYLIST = "playlist" + + +def get_repeat_mode(repeat, status): + """ Returns the repeat mode that is selected in mpd """ + + if repeat == "false": + return REPEAT_MODE_OFF + + single = regex("\nsingle: (.*)\n", status) + if single == "0": + return REPEAT_MODE_PLAYLIST + + return REPEAT_MODE_SINGLE + + def fetchData(): # use global refreshInterval as this function is run as a thread through the paho-mqtt loop global refreshInterval @@ -507,6 +501,7 @@ def fetchData(): result["state"] = regex("\nstate: (.*)\n", status).lower() result["volume"] = regex("\nvolume: (.*)\n", status) result["repeat"] = normalizeTrueFalse(regex("\nrepeat: (.*)\n", status)) + result["repeat_mode"] = get_repeat_mode(result["repeat"], status) result["random"] = normalizeTrueFalse(regex("\nrandom: (.*)\n", status)) # interpret mute state based on volume @@ -649,11 +644,6 @@ def fetchData(): tWatchForNewCard.setDaemon(True) tWatchForNewCard.start() -# register thread for watchForNewCard -tWatchForNewCard = Thread(target=watchForNewCard) -tWatchForNewCard.setDaemon(True) -tWatchForNewCard.start() - # start endless loop client.loop_start() while True: From ddc652adba9c0154eb1f7fddd94ee5c8032bec37 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Oct 2022 23:50:14 +0200 Subject: [PATCH 198/206] Bump php-mock/php-mock-phpunit from 2.5.0 to 2.6.1 (#1891) Bumps [php-mock/php-mock-phpunit](https://github.com/php-mock/php-mock-phpunit) from 2.5.0 to 2.6.1. - [Release notes](https://github.com/php-mock/php-mock-phpunit/releases) - [Commits](https://github.com/php-mock/php-mock-phpunit/compare/2.5.0...2.6.1) --- updated-dependencies: - dependency-name: php-mock/php-mock-phpunit dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.lock | 1227 ++++++++++++++++++------------------------------- 1 file changed, 438 insertions(+), 789 deletions(-) diff --git a/composer.lock b/composer.lock index 6ea7069b9..f4eb95386 100644 --- a/composer.lock +++ b/composer.lock @@ -4,156 +4,37 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ff4fb5fbea0b5d58eceb058fe5439afb", + "content-hash": "859b300285a679de774d435ff8c5c002", "packages": [], "packages-dev": [ - { - "name": "badoo/soft-mocks", - "version": "2.0.6", - "source": { - "type": "git", - "url": "https://github.com/badoo/soft-mocks.git", - "reference": "1cc854697c5e2569282f9db1d29cd0766d889989" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/badoo/soft-mocks/zipball/1cc854697c5e2569282f9db1d29cd0766d889989", - "reference": "1cc854697c5e2569282f9db1d29cd0766d889989", - "shasum": "" - }, - "require": { - "nikic/php-parser": "3.0.6", - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "^6.5.5", - "vaimo/composer-patches": "3.23.1" - }, - "type": "library", - "extra": { - "patches": { - "phpunit/phpunit": [ - { - "label": "phpunit run file", - "source": "patches/phpunit4.x/phpunit_phpunit.patch", - "version": "^4.8.0", - "level": "1" - }, - { - "label": "phpunit run file", - "source": "patches/phpunit5.x/phpunit_phpunit.patch", - "version": "^5.7.0", - "level": "1" - }, - { - "label": "phpunit run file", - "source": "patches/phpunit6.x/phpunit_phpunit.patch", - "version": "^6.5.0", - "level": "1" - }, - { - "label": "Add ability to set custom filename rewrite callbacks #1", - "source": "patches/phpunit4.x/phpunit_add_ability_to_set_custom_filename_rewrite_callbacks_1.patch", - "version": "^4.8.0", - "level": "1" - }, - { - "label": "Add ability to set custom filename rewrite callbacks #1", - "source": "patches/phpunit5.x/phpunit_add_ability_to_set_custom_filename_rewrite_callbacks_1.patch", - "version": "^5.7.0", - "level": "1" - }, - { - "label": "Add ability to set custom filename rewrite callbacks #1", - "source": "patches/phpunit6.x/phpunit_add_ability_to_set_custom_filename_rewrite_callbacks_1.patch", - "version": "^6.5.0", - "level": "1" - }, - { - "label": "Add ability to set custom filename rewrite callbacks #2", - "source": "patches/phpunit4.x/phpunit_add_ability_to_set_custom_filename_rewrite_callbacks_2.patch", - "version": "^4.8.0", - "level": "1" - }, - { - "label": "Add ability to set custom filename rewrite callbacks #2", - "source": "patches/phpunit5.x/phpunit_add_ability_to_set_custom_filename_rewrite_callbacks_2.patch", - "version": "^5.7.0", - "level": "1" - }, - { - "label": "Add ability to set custom filename rewrite callbacks #2", - "source": "patches/phpunit6.x/phpunit_add_ability_to_set_custom_filename_rewrite_callbacks_2.patch", - "version": "^6.5.0", - "level": "1" - } - ], - "phpunit/php-code-coverage": [ - { - "label": "Add ability to set custom filename rewrite callbacks", - "source": "patches/phpunit4.x/php-code-coverage_add_ability_to_set_custom_filename_rewrite_callbacks.patch", - "version": "^2.1.0", - "level": "1" - }, - { - "label": "Add ability to set custom filename rewrite callbacks", - "source": "patches/phpunit5.x/php-code-coverage_add_ability_to_set_custom_filename_rewrite_callbacks.patch", - "version": "^4.0.4", - "level": "1" - }, - { - "label": "Add ability to set custom filename rewrite callbacks", - "source": "patches/phpunit6.x/php-code-coverage_add_ability_to_set_custom_filename_rewrite_callbacks.patch", - "version": "^5.3.0", - "level": "1" - } - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Badoo Development" - } - ], - "description": "The idea behind \"Soft Mocks\" - as opposed to \"hardcore\" mocks that work on the level of the PHP interpreter (runkit and uopz) - is to rewrite class code on the spot so that it can be inserted in any place. It works by rewriting code on the fly during file inclusion instead of using extensions like runkit or uopz.", - "time": "2019-05-29T13:16:17+00:00" - }, { "name": "doctrine/instantiator", - "version": "1.3.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", - "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", + "doctrine/coding-standard": "^9", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.13", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-shim": "^0.11", - "phpunit/phpunit": "^7.0" + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.22" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" @@ -167,7 +48,7 @@ { "name": "Marco Pivetta", "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "homepage": "https://ocramius.github.io/" } ], "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", @@ -176,154 +57,60 @@ "constructor", "instantiate" ], - "time": "2019-10-21T16:45:58+00:00" - }, - { - "name": "hamcrest/hamcrest-php", - "version": "v2.0.0", - "source": { - "type": "git", - "url": "https://github.com/hamcrest/hamcrest-php.git", - "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/776503d3a8e85d4f9a1148614f95b7a608b046ad", - "reference": "776503d3a8e85d4f9a1148614f95b7a608b046ad", - "shasum": "" - }, - "require": { - "php": "^5.3|^7.0" - }, - "replace": { - "cordoval/hamcrest-php": "*", - "davedevelopment/hamcrest-php": "*", - "kodova/hamcrest-php": "*" - }, - "require-dev": { - "phpunit/php-file-iterator": "1.3.3", - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "^1.0" + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.1" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "hamcrest" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD" - ], - "description": "This is the PHP port of Hamcrest Matchers", - "keywords": [ - "test" - ], - "time": "2016-01-20T08:20:44+00:00" - }, - { - "name": "mockery/mockery", - "version": "1.2.4", - "source": { - "type": "git", - "url": "https://github.com/mockery/mockery.git", - "reference": "b3453f75fd23d9fd41685f2148f4abeacabc6405" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/b3453f75fd23d9fd41685f2148f4abeacabc6405", - "reference": "b3453f75fd23d9fd41685f2148f4abeacabc6405", - "shasum": "" - }, - "require": { - "hamcrest/hamcrest-php": "~2.0", - "lib-pcre": ">=7.0", - "php": ">=5.6.0" - }, - "require-dev": { - "phpunit/phpunit": "~5.7.10|~6.5|~7.0|~8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "psr-0": { - "Mockery": "library/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, { - "name": "Pádraic Brady", - "email": "padraic.brady@gmail.com", - "homepage": "http://blog.astrumfutura.com" + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" }, { - "name": "Dave Marshall", - "email": "dave.marshall@atstsolutions.co.uk", - "homepage": "http://davedevelopment.co.uk" + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" } ], - "description": "Mockery is a simple yet flexible PHP mock object framework", - "homepage": "https://github.com/mockery/mockery", - "keywords": [ - "BDD", - "TDD", - "library", - "mock", - "mock objects", - "mockery", - "stub", - "test", - "test double", - "testing" - ], - "time": "2019-09-30T08:30:27+00:00" + "time": "2022-03-03T08:28:38+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.9.3", + "version": "1.11.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea" + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/007c053ae6f31bba39dfa19a7726f56e9763bbea", - "reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.1 || ^8.0" }, - "replace": { - "myclabs/deep-copy": "self.version" + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", "autoload": { - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - }, "files": [ "src/DeepCopy/deep_copy.php" - ] + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -337,83 +124,43 @@ "object", "object graph" ], - "time": "2019-08-09T12:45:53+00:00" - }, - { - "name": "nikic/php-parser", - "version": "v3.0.6", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "0808939f81c1347a3c8a82a5925385a08074b0f1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0808939f81c1347a3c8a82a5925385a08074b0f1", - "reference": "0808939f81c1347a3c8a82a5925385a08074b0f1", - "shasum": "" + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" }, - "require": { - "ext-tokenizer": "*", - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "~4.0|~5.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ + "funding": [ { - "name": "Nikita Popov" + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" } ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "time": "2017-06-28T20:53:48+00:00" + "time": "2022-03-03T13:19:32+00:00" }, { "name": "phar-io/manifest", - "version": "1.0.3", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", "shasum": "" }, "require": { "ext-dom": "*", "ext-phar": "*", - "phar-io/version": "^2.0", - "php": "^5.6 || ^7.0" + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -443,24 +190,28 @@ } ], "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2018-07-08T19:23:20+00:00" + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.3" + }, + "time": "2021-07-20T11:28:43+00:00" }, { "name": "phar-io/version", - "version": "2.0.1", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.2 || ^8.0" }, "type": "library", "autoload": { @@ -490,37 +241,45 @@ } ], "description": "Library for handling version information and constraints", - "time": "2018-07-08T19:19:57+00:00" + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" }, { "name": "php-mock/php-mock", - "version": "2.1.2", + "version": "2.3.1", "source": { "type": "git", "url": "https://github.com/php-mock/php-mock.git", - "reference": "35379d7b382b787215617f124662d9ead72c15e3" + "reference": "9a55bd8ba40e6da2e97a866121d2c69dedd4952b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-mock/php-mock/zipball/35379d7b382b787215617f124662d9ead72c15e3", - "reference": "35379d7b382b787215617f124662d9ead72c15e3", + "url": "https://api.github.com/repos/php-mock/php-mock/zipball/9a55bd8ba40e6da2e97a866121d2c69dedd4952b", + "reference": "9a55bd8ba40e6da2e97a866121d2c69dedd4952b", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0", - "phpunit/php-text-template": "^1" + "php": "^5.6 || ^7.0 || ^8.0", + "phpunit/php-text-template": "^1 || ^2" }, "replace": { "malkusch/php-mock": "*" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.0" + "phpunit/phpunit": "^5.7 || ^6.5 || ^7.5 || ^8.0 || ^9.0", + "squizlabs/php_codesniffer": "^3.5" }, "suggest": { "php-mock/php-mock-phpunit": "Allows integration into PHPUnit testcase with the trait PHPMock." }, "type": "library", "autoload": { + "files": [ + "autoload.php" + ], "psr-4": { "phpmock\\": [ "classes/", @@ -551,29 +310,39 @@ "test", "test double" ], - "time": "2019-06-05T20:10:01+00:00" + "support": { + "issues": "https://github.com/php-mock/php-mock/issues", + "source": "https://github.com/php-mock/php-mock/tree/2.3.1" + }, + "funding": [ + { + "url": "https://github.com/michalbundyra", + "type": "github" + } + ], + "time": "2022-02-07T18:57:52+00:00" }, { "name": "php-mock/php-mock-integration", - "version": "2.0.0", + "version": "2.1.0", "source": { "type": "git", "url": "https://github.com/php-mock/php-mock-integration.git", - "reference": "5a0d7d7755f823bc2a230cfa45058b40f9013bc4" + "reference": "003d585841e435958a02e9b986953907b8b7609b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-mock/php-mock-integration/zipball/5a0d7d7755f823bc2a230cfa45058b40f9013bc4", - "reference": "5a0d7d7755f823bc2a230cfa45058b40f9013bc4", + "url": "https://api.github.com/repos/php-mock/php-mock-integration/zipball/003d585841e435958a02e9b986953907b8b7609b", + "reference": "003d585841e435958a02e9b986953907b8b7609b", "shasum": "" }, "require": { "php": ">=5.6", - "php-mock/php-mock": "^2", - "phpunit/php-text-template": "^1" + "php-mock/php-mock": "^2.2", + "phpunit/php-text-template": "^1 || ^2" }, "require-dev": { - "phpunit/phpunit": "^4|^5" + "phpunit/phpunit": "^5.7.27 || ^6 || ^7 || ^8 || ^9" }, "type": "library", "autoload": { @@ -604,26 +373,33 @@ "test", "test double" ], - "time": "2017-02-17T21:31:34+00:00" + "support": { + "issues": "https://github.com/php-mock/php-mock-integration/issues", + "source": "https://github.com/php-mock/php-mock-integration/tree/2.1.0" + }, + "time": "2020-02-08T14:40:25+00:00" }, { "name": "php-mock/php-mock-phpunit", - "version": "2.5.0", + "version": "2.6.1", "source": { "type": "git", "url": "https://github.com/php-mock/php-mock-phpunit.git", - "reference": "7df4bd123ce196bbba19f142c4906c20be8ec546" + "reference": "b9ba2db21e7e1c7deba98bc86dcfc6425fb4647d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-mock/php-mock-phpunit/zipball/7df4bd123ce196bbba19f142c4906c20be8ec546", - "reference": "7df4bd123ce196bbba19f142c4906c20be8ec546", + "url": "https://api.github.com/repos/php-mock/php-mock-phpunit/zipball/b9ba2db21e7e1c7deba98bc86dcfc6425fb4647d", + "reference": "b9ba2db21e7e1c7deba98bc86dcfc6425fb4647d", "shasum": "" }, "require": { "php": ">=7", - "php-mock/php-mock-integration": "^2", - "phpunit/phpunit": "^6 || ^7 || ^8" + "php-mock/php-mock-integration": "^2.1", + "phpunit/phpunit": "^6 || ^7 || ^8 || ^9" + }, + "require-dev": { + "phpspec/prophecy": "^1.10.3" }, "type": "library", "autoload": { @@ -658,242 +434,39 @@ "test", "test double" ], - "time": "2019-10-05T21:44:04+00:00" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "2.0.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a", - "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "require-dev": { - "phpunit/phpunit": "~6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "time": "2018-08-07T13:53:10+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "4.3.2", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/b83ff7cfcfee7827e1e78b637a5904fe6a96698e", - "reference": "b83ff7cfcfee7827e1e78b637a5904fe6a96698e", - "shasum": "" - }, - "require": { - "php": "^7.0", - "phpdocumentor/reflection-common": "^1.0.0 || ^2.0.0", - "phpdocumentor/type-resolver": "~0.4 || ^1.0.0", - "webmozart/assert": "^1.0" - }, - "require-dev": { - "doctrine/instantiator": "^1.0.5", - "mockery/mockery": "^1.0", - "phpunit/phpunit": "^6.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.x-dev" - } + "support": { + "issues": "https://github.com/php-mock/php-mock-phpunit/issues", + "source": "https://github.com/php-mock/php-mock-phpunit/tree/2.6.1" }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": [ - "src/" - ] - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + "funding": [ { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" + "url": "https://github.com/michalbundyra", + "type": "github" } ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2019-09-12T14:27:41+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", - "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", - "shasum": "" - }, - "require": { - "php": "^7.1", - "phpdocumentor/reflection-common": "^2.0" - }, - "require-dev": { - "ext-tokenizer": "^7.1", - "mockery/mockery": "~1", - "phpunit/phpunit": "^7.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "time": "2019-08-22T18:11:29+00:00" - }, - { - "name": "phpspec/prophecy", - "version": "1.9.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/f6811d96d97bdf400077a0cc100ae56aa32b9203", - "reference": "f6811d96d97bdf400077a0cc100ae56aa32b9203", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", - "sebastian/comparator": "^1.1|^2.0|^3.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0" - }, - "require-dev": { - "phpspec/phpspec": "^2.5|^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.8.x-dev" - } - }, - "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "time": "2019-10-03T11:07:50+00:00" + "time": "2022-09-07T20:40:07+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "7.0.8", + "version": "7.0.15", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "aa0d179a13284c7420fc281fc32750e6cc7c9e2f" + "reference": "819f92bba8b001d4363065928088de22f25a3a48" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/aa0d179a13284c7420fc281fc32750e6cc7c9e2f", - "reference": "aa0d179a13284c7420fc281fc32750e6cc7c9e2f", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/819f92bba8b001d4363065928088de22f25a3a48", + "reference": "819f92bba8b001d4363065928088de22f25a3a48", "shasum": "" }, "require": { "ext-dom": "*", "ext-xmlwriter": "*", - "php": "^7.2", + "php": ">=7.2", "phpunit/php-file-iterator": "^2.0.2", "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.1.1", + "phpunit/php-token-stream": "^3.1.3 || ^4.0", "sebastian/code-unit-reverse-lookup": "^1.0.1", "sebastian/environment": "^4.2.2", "sebastian/version": "^2.0.1", @@ -934,27 +507,37 @@ "testing", "xunit" ], - "time": "2019-09-17T06:24:36+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/7.0.15" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-07-26T12:20:09+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "2.0.2", + "version": "2.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "050bedf145a257b1ff02746c31894800e5122946" + "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", - "reference": "050bedf145a257b1ff02746c31894800e5122946", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", + "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -984,7 +567,17 @@ "filesystem", "iterator" ], - "time": "2018-09-13T20:33:42+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-12-02T12:42:26+00:00" }, { "name": "phpunit/php-text-template", @@ -1025,27 +618,31 @@ "keywords": [ "template" ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" + }, "time": "2015-06-21T13:50:34+00:00" }, { "name": "phpunit/php-timer", - "version": "2.1.2", + "version": "2.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" + "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662", + "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -1074,33 +671,43 @@ "keywords": [ "timer" ], - "time": "2019-06-07T04:22:29+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:20:02+00:00" }, { "name": "phpunit/php-token-stream", - "version": "3.1.1", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff" + "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff", - "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/a853a0e183b9db7eed023d7933a858fa1c8d25a3", + "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": "^7.1" + "php": "^7.3 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1123,52 +730,59 @@ "keywords": [ "tokenizer" ], - "time": "2019-09-17T06:23:10+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", + "source": "https://github.com/sebastianbergmann/php-token-stream/tree/master" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "abandoned": true, + "time": "2020-08-04T08:28:15+00:00" }, { "name": "phpunit/phpunit", - "version": "8.4.3", + "version": "8.5.30", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "67f9e35bffc0dd52d55d565ddbe4230454fd6a4e" + "reference": "4fd448df9affda65a5faa58f8b93087d415216ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/67f9e35bffc0dd52d55d565ddbe4230454fd6a4e", - "reference": "67f9e35bffc0dd52d55d565ddbe4230454fd6a4e", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4fd448df9affda65a5faa58f8b93087d415216ce", + "reference": "4fd448df9affda65a5faa58f8b93087d415216ce", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.2.0", + "doctrine/instantiator": "^1.3.1", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.9.1", - "phar-io/manifest": "^1.0.3", - "phar-io/version": "^2.0.1", - "php": "^7.2", - "phpspec/prophecy": "^1.8.1", - "phpunit/php-code-coverage": "^7.0.7", - "phpunit/php-file-iterator": "^2.0.2", + "myclabs/deep-copy": "^1.10.0", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=7.2", + "phpunit/php-code-coverage": "^7.0.12", + "phpunit/php-file-iterator": "^2.0.4", "phpunit/php-text-template": "^1.2.1", "phpunit/php-timer": "^2.1.2", - "sebastian/comparator": "^3.0.2", + "sebastian/comparator": "^3.0.5", "sebastian/diff": "^3.0.2", - "sebastian/environment": "^4.2.2", - "sebastian/exporter": "^3.1.1", + "sebastian/environment": "^4.2.3", + "sebastian/exporter": "^3.1.5", "sebastian/global-state": "^3.0.0", "sebastian/object-enumerator": "^3.0.3", "sebastian/resource-operations": "^2.0.1", "sebastian/type": "^1.1.3", "sebastian/version": "^2.0.1" }, - "require-dev": { - "ext-pdo": "*" - }, "suggest": { "ext-soap": "*", "ext-xdebug": "*", @@ -1180,7 +794,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "8.4-dev" + "dev-master": "8.5-dev" } }, "autoload": { @@ -1206,27 +820,45 @@ "testing", "xunit" ], - "time": "2019-11-06T09:42:23+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.30" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2022-09-25T03:43:00+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": ">=5.6" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -1251,29 +883,39 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2017-03-04T06:30:41+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:15:22+00:00" }, { "name": "sebastian/comparator", - "version": "3.0.2", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" + "reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dc7ceb4a24aede938c7af2a9ed1de09609ca770", + "reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770", "shasum": "" }, "require": { - "php": "^7.1", + "php": ">=7.1", "sebastian/diff": "^3.0", "sebastian/exporter": "^3.1" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -1291,6 +933,10 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, { "name": "Jeff Welch", "email": "whatthejeff@gmail.com" @@ -1302,10 +948,6 @@ { "name": "Bernhard Schussek", "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" } ], "description": "Provides the functionality to compare PHP values for equality", @@ -1315,24 +957,34 @@ "compare", "equality" ], - "time": "2018-07-12T15:12:46+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T12:31:48+00:00" }, { "name": "sebastian/diff", - "version": "3.0.2", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" + "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211", + "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { "phpunit/phpunit": "^7.5 || ^8.0", @@ -1354,13 +1006,13 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" } ], "description": "Diff implementation", @@ -1371,24 +1023,34 @@ "unidiff", "unified diff" ], - "time": "2019-02-04T06:01:07+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:59:04+00:00" }, { "name": "sebastian/environment", - "version": "4.2.2", + "version": "4.2.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404" + "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/f2a2c8e1c97c11ace607a7a667d73d47c19fe404", - "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", + "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { "phpunit/phpunit": "^7.5" @@ -1424,29 +1086,39 @@ "environment", "hhvm" ], - "time": "2019-05-05T09:05:15+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/4.2.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:53:42+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.2", + "version": "3.1.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" + "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/73a9676f2833b9a7c36968f9d882589cd75511e6", + "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6", "shasum": "" }, "require": { - "php": "^7.0", + "php": ">=7.0", "sebastian/recursion-context": "^3.0" }, "require-dev": { "ext-mbstring": "*", - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -1491,24 +1163,34 @@ "export", "exporter" ], - "time": "2019-09-14T09:02:43+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T06:00:17+00:00" }, { "name": "sebastian/global-state", - "version": "3.0.0", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4" + "reference": "de036ec91d55d2a9e0db2ba975b512cdb1c23921" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", - "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/de036ec91d55d2a9e0db2ba975b512cdb1c23921", + "reference": "de036ec91d55d2a9e0db2ba975b512cdb1c23921", "shasum": "" }, "require": { - "php": "^7.2", + "php": ">=7.2", "sebastian/object-reflector": "^1.1.1", "sebastian/recursion-context": "^3.0" }, @@ -1545,24 +1227,34 @@ "keywords": [ "global state" ], - "time": "2019-02-01T05:30:01+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-02-10T06:55:38+00:00" }, { "name": "sebastian/object-enumerator", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", + "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", "shasum": "" }, "require": { - "php": "^7.0", + "php": ">=7.0", "sebastian/object-reflector": "^1.1.1", "sebastian/recursion-context": "^3.0" }, @@ -1592,24 +1284,34 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-08-03T12:35:26+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:40:27+00:00" }, { "name": "sebastian/object-reflector", - "version": "1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" + "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.0" }, "require-dev": { "phpunit/phpunit": "^6.0" @@ -1637,24 +1339,34 @@ ], "description": "Allows reflection of object attributes, including inherited and non-public ones", "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-29T09:07:27+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:37:18+00:00" }, { "name": "sebastian/recursion-context", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.0" }, "require-dev": { "phpunit/phpunit": "^6.0" @@ -1675,14 +1387,14 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, { "name": "Adam Harvey", "email": "aharvey@php.net" @@ -1690,24 +1402,34 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-03T06:23:57+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:34:24+00:00" }, { "name": "sebastian/resource-operations", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" + "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", + "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "type": "library", "extra": { @@ -1732,24 +1454,34 @@ ], "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2018-10-04T04:07:39+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:30:19+00:00" }, { "name": "sebastian/type", - "version": "1.1.3", + "version": "1.1.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3" + "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/3aaaa15fa71d27650d62a948be022fe3b48541a3", - "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0150cfbc4495ed2df3872fb31b26781e4e077eb4", + "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4", "shasum": "" }, "require": { - "php": "^7.2" + "php": ">=7.2" }, "require-dev": { "phpunit/phpunit": "^8.2" @@ -1778,7 +1510,17 @@ ], "description": "Collection of value objects that represent the types of the PHP type system", "homepage": "https://github.com/sebastianbergmann/type", - "time": "2019-07-02T08:10:15+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/1.1.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:25:11+00:00" }, { "name": "sebastian/version", @@ -1821,85 +1563,31 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", - "time": "2016-10-03T07:35:21+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.12.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "550ebaac289296ce228a706d0867afc34687e3f4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/550ebaac289296ce228a706d0867afc34687e3f4", - "reference": "550ebaac289296ce228a706d0867afc34687e3f4", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/master" }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.12-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, - "files": [ - "bootstrap.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "time": "2019-08-06T08:03:45+00:00" + "time": "2016-10-03T07:35:21+00:00" }, { "name": "theseer/tokenizer", - "version": "1.1.3", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", - "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", "shasum": "" }, "require": { "ext-dom": "*", "ext-tokenizer": "*", "ext-xmlwriter": "*", - "php": "^7.0" + "php": "^7.2 || ^8.0" }, "type": "library", "autoload": { @@ -1919,57 +1607,17 @@ } ], "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "time": "2019-06-13T22:48:21+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.5.0", - "source": { - "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/88e6d84706d09a236046d686bbea96f07b3a34f4", - "reference": "88e6d84706d09a236046d686bbea96f07b3a34f4", - "shasum": "" - }, - "require": { - "php": "^5.3.3 || ^7.0", - "symfony/polyfill-ctype": "^1.8" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.36 || ^7.5.13" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.3-dev" - } + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" }, - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ + "funding": [ { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" + "url": "https://github.com/theseer", + "type": "github" } ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "time": "2019-08-24T08:43:50+00:00" + "time": "2021-07-28T10:34:58+00:00" } ], "aliases": [], @@ -1978,5 +1626,6 @@ "prefer-stable": false, "prefer-lowest": false, "platform": [], - "platform-dev": [] + "platform-dev": [], + "plugin-api-version": "2.3.0" } From aae371e10cf2c96746134517e5b4d4fa72294a34 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Oct 2022 19:56:40 +0200 Subject: [PATCH 199/206] Bump phpunit/phpunit from 8.5.30 to 9.5.25 (#1899) Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 8.5.30 to 9.5.25. - [Release notes](https://github.com/sebastianbergmann/phpunit/releases) - [Changelog](https://github.com/sebastianbergmann/phpunit/blob/main/ChangeLog-8.5.md) - [Commits](https://github.com/sebastianbergmann/phpunit/compare/8.5.30...9.5.25) --- updated-dependencies: - dependency-name: phpunit/phpunit dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.json | 2 +- composer.lock | 741 +++++++++++++++++++++++++++++++++++--------------- 2 files changed, 530 insertions(+), 213 deletions(-) diff --git a/composer.json b/composer.json index 87c8028a3..1fe5789bf 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { "require-dev": { - "phpunit/phpunit": "^8", + "phpunit/phpunit": "^9", "php-mock/php-mock-phpunit": "^2.5" } } diff --git a/composer.lock b/composer.lock index f4eb95386..fcdacad0e 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "859b300285a679de774d435ff8c5c002", + "content-hash": "6d659550344086ef6e414765a7a1a227", "packages": [], "packages-dev": [ { @@ -136,6 +136,62 @@ ], "time": "2022-03-03T13:19:32+00:00" }, + { + "name": "nikic/php-parser", + "version": "v4.15.1", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1" + }, + "time": "2022-09-04T07:30:47+00:00" + }, { "name": "phar-io/manifest", "version": "2.0.3", @@ -448,40 +504,44 @@ }, { "name": "phpunit/php-code-coverage", - "version": "7.0.15", + "version": "9.2.17", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "819f92bba8b001d4363065928088de22f25a3a48" + "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/819f92bba8b001d4363065928088de22f25a3a48", - "reference": "819f92bba8b001d4363065928088de22f25a3a48", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/aa94dc41e8661fe90c7316849907cba3007b10d8", + "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-xmlwriter": "*", - "php": ">=7.2", - "phpunit/php-file-iterator": "^2.0.2", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.1.3 || ^4.0", - "sebastian/code-unit-reverse-lookup": "^1.0.1", - "sebastian/environment": "^4.2.2", - "sebastian/version": "^2.0.1", - "theseer/tokenizer": "^1.1.3" + "nikic/php-parser": "^4.14", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" }, "require-dev": { - "phpunit/phpunit": "^8.2.2" + "phpunit/phpunit": "^9.3" }, "suggest": { - "ext-xdebug": "^2.7.2" + "ext-pcov": "*", + "ext-xdebug": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "7.0-dev" + "dev-master": "9.2-dev" } }, "autoload": { @@ -509,7 +569,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/7.0.15" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.17" }, "funding": [ { @@ -517,32 +577,32 @@ "type": "github" } ], - "time": "2021-07-26T12:20:09+00:00" + "time": "2022-08-30T12:24:04+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "2.0.5", + "version": "3.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5" + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", - "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -569,7 +629,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.5" + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" }, "funding": [ { @@ -577,26 +637,38 @@ "type": "github" } ], - "time": "2021-12-02T12:42:26+00:00" + "time": "2021-12-02T12:48:52+00:00" }, { - "name": "phpunit/php-text-template", - "version": "1.2.1", + "name": "phpunit/php-invoker", + "version": "3.1.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", - "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, "autoload": { "classmap": [ "src/" @@ -613,41 +685,47 @@ "role": "lead" } ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", "keywords": [ - "template" + "process" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" }, - "time": "2015-06-21T13:50:34+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" }, { - "name": "phpunit/php-timer", - "version": "2.1.3", + "name": "phpunit/php-text-template", + "version": "2.0.4", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662" + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662", - "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.1-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -666,14 +744,14 @@ "role": "lead" } ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", "keywords": [ - "timer" + "template" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.3" + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" }, "funding": [ { @@ -681,33 +759,32 @@ "type": "github" } ], - "time": "2020-11-30T08:20:02+00:00" + "time": "2020-10-26T05:33:50+00:00" }, { - "name": "phpunit/php-token-stream", - "version": "4.0.4", + "name": "phpunit/php-timer", + "version": "5.0.3", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3" + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/a853a0e183b9db7eed023d7933a858fa1c8d25a3", - "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", "shasum": "" }, "require": { - "ext-tokenizer": "*", - "php": "^7.3 || ^8.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^9.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -722,17 +799,18 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" + "email": "sebastian@phpunit.de", + "role": "lead" } ], - "description": "Wrapper around PHP's tokenizer extension.", - "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", "keywords": [ - "tokenizer" + "timer" ], "support": { - "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", - "source": "https://github.com/sebastianbergmann/php-token-stream/tree/master" + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" }, "funding": [ { @@ -740,21 +818,20 @@ "type": "github" } ], - "abandoned": true, - "time": "2020-08-04T08:28:15+00:00" + "time": "2020-10-26T13:16:10+00:00" }, { "name": "phpunit/phpunit", - "version": "8.5.30", + "version": "9.5.25", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "4fd448df9affda65a5faa58f8b93087d415216ce" + "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4fd448df9affda65a5faa58f8b93087d415216ce", - "reference": "4fd448df9affda65a5faa58f8b93087d415216ce", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d", + "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d", "shasum": "" }, "require": { @@ -765,28 +842,30 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.0", + "myclabs/deep-copy": "^1.10.1", "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", - "php": ">=7.2", - "phpunit/php-code-coverage": "^7.0.12", - "phpunit/php-file-iterator": "^2.0.4", - "phpunit/php-text-template": "^1.2.1", - "phpunit/php-timer": "^2.1.2", - "sebastian/comparator": "^3.0.5", - "sebastian/diff": "^3.0.2", - "sebastian/environment": "^4.2.3", - "sebastian/exporter": "^3.1.5", - "sebastian/global-state": "^3.0.0", - "sebastian/object-enumerator": "^3.0.3", - "sebastian/resource-operations": "^2.0.1", - "sebastian/type": "^1.1.3", - "sebastian/version": "^2.0.1" + "php": ">=7.3", + "phpunit/php-code-coverage": "^9.2.13", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.8", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.5", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^3.2", + "sebastian/version": "^3.0.2" }, "suggest": { "ext-soap": "*", - "ext-xdebug": "*", - "phpunit/php-invoker": "^2.0.0" + "ext-xdebug": "*" }, "bin": [ "phpunit" @@ -794,10 +873,13 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "8.5-dev" + "dev-master": "9.5-dev" } }, "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], "classmap": [ "src/" ] @@ -822,7 +904,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.30" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.25" }, "funding": [ { @@ -838,32 +920,144 @@ "type": "tidelift" } ], - "time": "2022-09-25T03:43:00+00:00" + "time": "2022-09-25T03:44:45+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", - "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", "shasum": "" }, "require": { - "php": ">=5.6" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -885,7 +1079,7 @@ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", "support": { "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2" + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" }, "funding": [ { @@ -893,34 +1087,34 @@ "type": "github" } ], - "time": "2020-11-30T08:15:22+00:00" + "time": "2020-09-28T05:30:19+00:00" }, { "name": "sebastian/comparator", - "version": "3.0.5", + "version": "4.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770" + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dc7ceb4a24aede938c7af2a9ed1de09609ca770", - "reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", "shasum": "" }, "require": { - "php": ">=7.1", - "sebastian/diff": "^3.0", - "sebastian/exporter": "^3.1" + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -959,7 +1153,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.5" + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" }, "funding": [ { @@ -967,33 +1161,90 @@ "type": "github" } ], - "time": "2022-09-14T12:31:48+00:00" + "time": "2022-09-14T12:41:17+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.7", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:52:27+00:00" }, { "name": "sebastian/diff", - "version": "3.0.3", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211" + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211", - "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^7.5 || ^8.0", - "symfony/process": "^2 || ^3.3 || ^4" + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1025,7 +1276,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/3.0.3" + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" }, "funding": [ { @@ -1033,27 +1284,27 @@ "type": "github" } ], - "time": "2020-11-30T07:59:04+00:00" + "time": "2020-10-26T13:10:38+00:00" }, { "name": "sebastian/environment", - "version": "4.2.4", + "version": "5.1.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0" + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", - "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^7.5" + "phpunit/phpunit": "^9.3" }, "suggest": { "ext-posix": "*" @@ -1061,7 +1312,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.2-dev" + "dev-master": "5.1-dev" } }, "autoload": { @@ -1088,7 +1339,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/4.2.4" + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4" }, "funding": [ { @@ -1096,34 +1347,34 @@ "type": "github" } ], - "time": "2020-11-30T07:53:42+00:00" + "time": "2022-04-03T09:37:03+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.5", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6" + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/73a9676f2833b9a7c36968f9d882589cd75511e6", - "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", "shasum": "" }, "require": { - "php": ">=7.0", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" }, "require-dev": { "ext-mbstring": "*", - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1158,14 +1409,14 @@ } ], "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "http://www.github.com/sebastianbergmann/exporter", + "homepage": "https://www.github.com/sebastianbergmann/exporter", "keywords": [ "export", "exporter" ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.5" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" }, "funding": [ { @@ -1173,30 +1424,30 @@ "type": "github" } ], - "time": "2022-09-14T06:00:17+00:00" + "time": "2022-09-14T06:03:37+00:00" }, { "name": "sebastian/global-state", - "version": "3.0.2", + "version": "5.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "de036ec91d55d2a9e0db2ba975b512cdb1c23921" + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/de036ec91d55d2a9e0db2ba975b512cdb1c23921", - "reference": "de036ec91d55d2a9e0db2ba975b512cdb1c23921", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", "shasum": "" }, "require": { - "php": ">=7.2", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { "ext-dom": "*", - "phpunit/phpunit": "^8.0" + "phpunit/phpunit": "^9.3" }, "suggest": { "ext-uopz": "*" @@ -1204,7 +1455,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -1229,7 +1480,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.2" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" }, "funding": [ { @@ -1237,34 +1488,91 @@ "type": "github" } ], - "time": "2022-02-10T06:55:38+00:00" + "time": "2022-02-14T08:28:10+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.6", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+00:00" }, { "name": "sebastian/object-enumerator", - "version": "3.0.4", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", - "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", "shasum": "" }, "require": { - "php": ">=7.0", - "sebastian/object-reflector": "^1.1.1", - "sebastian/recursion-context": "^3.0" + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1286,7 +1594,7 @@ "homepage": "https://github.com/sebastianbergmann/object-enumerator/", "support": { "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.4" + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" }, "funding": [ { @@ -1294,32 +1602,32 @@ "type": "github" } ], - "time": "2020-11-30T07:40:27+00:00" + "time": "2020-10-26T13:12:34+00:00" }, { "name": "sebastian/object-reflector", - "version": "1.1.2", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", - "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", "shasum": "" }, "require": { - "php": ">=7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -1341,7 +1649,7 @@ "homepage": "https://github.com/sebastianbergmann/object-reflector/", "support": { "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.2" + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" }, "funding": [ { @@ -1349,32 +1657,32 @@ "type": "github" } ], - "time": "2020-11-30T07:37:18+00:00" + "time": "2020-10-26T13:14:26+00:00" }, { "name": "sebastian/recursion-context", - "version": "3.0.1", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", - "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", "shasum": "" }, "require": { - "php": ">=7.0" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^6.0" + "phpunit/phpunit": "^9.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0.x-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1404,7 +1712,7 @@ "homepage": "http://www.github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.1" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" }, "funding": [ { @@ -1412,29 +1720,32 @@ "type": "github" } ], - "time": "2020-11-30T07:34:24+00:00" + "time": "2020-10-26T13:17:30+00:00" }, { "name": "sebastian/resource-operations", - "version": "2.0.2", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", - "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -1456,7 +1767,7 @@ "homepage": "https://www.github.com/sebastianbergmann/resource-operations", "support": { "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.2" + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" }, "funding": [ { @@ -1464,32 +1775,32 @@ "type": "github" } ], - "time": "2020-11-30T07:30:19+00:00" + "time": "2020-09-28T06:45:17+00:00" }, { "name": "sebastian/type", - "version": "1.1.4", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4" + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0150cfbc4495ed2df3872fb31b26781e4e077eb4", - "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", "shasum": "" }, "require": { - "php": ">=7.2" + "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^8.2" + "phpunit/phpunit": "^9.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -1512,7 +1823,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/1.1.4" + "source": "https://github.com/sebastianbergmann/type/tree/3.2.0" }, "funding": [ { @@ -1520,29 +1831,29 @@ "type": "github" } ], - "time": "2020-11-30T07:25:11+00:00" + "time": "2022-09-12T14:47:03+00:00" }, { "name": "sebastian/version", - "version": "2.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019" + "reference": "c6c1022351a901512170118436c764e473f6de8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019", - "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", "shasum": "" }, "require": { - "php": ">=5.6" + "php": ">=7.3" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -1565,9 +1876,15 @@ "homepage": "https://github.com/sebastianbergmann/version", "support": { "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/master" + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" }, - "time": "2016-10-03T07:35:21+00:00" + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" }, { "name": "theseer/tokenizer", From eba47fbc3653fab028cd99f518fe994fa06f2447 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Fri, 28 Oct 2022 22:39:18 +0200 Subject: [PATCH 200/206] Fix missing ps package --- scripts/installscripts/buster-install-default.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/installscripts/buster-install-default.sh b/scripts/installscripts/buster-install-default.sh index 1488d38e0..f010c8b17 100755 --- a/scripts/installscripts/buster-install-default.sh +++ b/scripts/installscripts/buster-install-default.sh @@ -799,7 +799,7 @@ install_main() { ${apt_get} ${allow_downgrades} install raspberrypi-kernel-headers fi - ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php-common php-cgi php at mpd mpc mpg123 git ffmpeg resolvconf spi-tools netcat alsa-utils lsof + ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php-common php-cgi php at mpd mpc mpg123 git ffmpeg resolvconf spi-tools netcat alsa-utils lsof procps # restore backup of /etc/resolv.conf in case installation of resolvconf cleared it sudo cp /etc/resolv.conf.orig /etc/resolv.conf From dbf8ef8cb38d22246a782ae020cfd045a3b9adaf Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Fri, 28 Oct 2022 22:44:41 +0200 Subject: [PATCH 201/206] Fix badges --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f32353cbc..f70cde6f4 100755 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@  -  +[](https://github.com/MiczFlor/RPi-Jukebox-RFID/actions/workflows/pythonpackage.yml) [](https://github.com/MiczFlor/RPi-Jukebox-RFID/actions/workflows/dockerimage.yml) [](https://github.com/MiczFlor/RPi-Jukebox-RFID/actions/workflows/codeql-analysis.yml) [](https://gitter.im/phoniebox) From ab998c6e0861fa436810ff684ec75a052a252cd2 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Mon, 31 Oct 2022 23:14:59 +0100 Subject: [PATCH 202/206] fix markdown warnings (#1902) * fix flake8 warnings * fix markdownlint * fix markdown lint warnings --- CONTRIBUTING.md | 38 ++--- README.md | 3 +- ci/README.md | 13 +- components/audio/PirateAudioHAT/README.md | 14 +- components/bluetooth-sink-switch/README.md | 52 +++--- .../buttons-bluetooth-headphone/README.md | 24 ++- components/displays/HD44780-i2c/README.md | 123 +++++++------- .../dot-matrix-module-MAX7219/README.md | 48 +++--- components/gpio_control/README.md | 84 ++++++---- components/rfid-reader/PN532/README.md | 2 - .../MQTT-protocol/README.md | 155 +++++++++--------- docs/FIRMWARE_UPDATE.md | 23 ++- docs/GPIO-BUTTONS.md | 18 +- docs/INSTALL-COMPLETE-GUIDE.md | 90 ++++++---- docs/UPGRADE.md | 24 ++- docs/WLAN-ACCESS-POINT.md | 87 +++++++--- 16 files changed, 465 insertions(+), 333 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fe4f5ca6d..eb1212ad1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,32 +8,32 @@ # Naming conventions * **Files & folder names** - * all **lower case** - * separate words with **dashes** `-` (less keystrokes, better autocomplete recognition, in HTML links dashes can not be confused) not camel/PascalCaps or underscores - * be **descriptive** in your wording (e.g. `raspberry`, not `juicy-red-thing`) - * move **from general to specific** (e.g. `food-fruit-raspberry`, not `raspberry-food-fruit`) - * unique and clear product IDs (e.g. MAX7219) - * the product ID should be written as is (no lowercase) - * the product ID should come last in a descriptive name (e.g. dot-matrix-module-MAX7219) - * be consistent and look at existing examples before you invent something new + * all **lower case** + * separate words with **dashes** `-` (less keystrokes, better autocomplete recognition, in HTML links dashes can not be confused) not camel/PascalCaps or underscores + * be **descriptive** in your wording (e.g. `raspberry`, not `juicy-red-thing`) + * move **from general to specific** (e.g. `food-fruit-raspberry`, not `raspberry-food-fruit`) + * unique and clear product IDs (e.g. MAX7219) + * the product ID should be written as is (no lowercase) + * the product ID should come last in a descriptive name (e.g. dot-matrix-module-MAX7219) + * be consistent and look at existing examples before you invent something new * **`README.md`** - * written in capital letters, so it's easier to spot - * every new folder of a component deserves a `README.md` file + * written in capital letters, so it's easier to spot + * every new folder of a component deserves a `README.md` file # Structure of files and folders Inside the root folder or the repo, these folders are important: * `scripts` - * this folder should contain **only actively used scripts** (controlling playout, rfid tiggers, etc.) - * some possible services and features might live in the *components* directory (see below) - * if one or more scripts are needed for the activation of a component (like daemons), they should be copied to the `scripts` directory during installation / activation - * WHY? By copying, changes will NOT affect the github repo and make it easier for users to modify their components + * this folder should contain **only actively used scripts** (controlling playout, rfid tiggers, etc.) + * some possible services and features might live in the *components* directory (see below) + * if one or more scripts are needed for the activation of a component (like daemons), they should be copied to the `scripts` directory during installation / activation + * WHY? By copying, changes will NOT affect the github repo and make it easier for users to modify their components * `components` - * contains sub- und subsubfolders for additional features, services, hardware - * **subfolders** are for categories (e.g. displays, soundcards) and are plural, even if there is only one - * **subsubfolders** are specific hardware, services, features, protocols, etc. + * contains sub- und subsubfolders for additional features, services, hardware + * **subfolders** are for categories (e.g. displays, soundcards) and are plural, even if there is only one + * **subsubfolders** are specific hardware, services, features, protocols, etc. # How to contribute @@ -52,7 +52,7 @@ Development is done on the git branch `develop`. How to move to that branch, see * Use the online line install script to get the box installed. * By default this will get you to the `master` branch. You will move to the `develop` branch, do this: -~~~ +~~~bash cd /home/pi/RPi-Jukebox-RFID git checkout develop git fetch origin @@ -120,7 +120,7 @@ to detect in advance. If the code change results in a test failure, we will make our best effort to correct the error. If a fix cannot be determined and committed within 24 hours -of its discovery, the commit(s) responsible _may_ be reverted, at the +of its discovery, the commit(s) responsible *may* be reverted, at the discretion of the committer and Phonie maintainers. The original contributor will be notified of the revert. diff --git a/README.md b/README.md index f70cde6f4..2bb532e68 100755 --- a/README.md +++ b/README.md @@ -20,8 +20,7 @@ Third party projects like [librespot-java](https://github.com/librespot-org/libr This leaves us in a pickle and we are happy to hear from developer talent in the Phoniebox community on how to move forward regarding Phoniebox. We are also curious to learn about alternative services we can connect with and which you would like to see supported -- or have developed support for already: -https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions/1835 - +<https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions/1835> ## The Phoniebox Calendar 2022 is here!!! diff --git a/ci/README.md b/ci/README.md index 2cabfd10b..9bb4e874f 100644 --- a/ci/README.md +++ b/ci/README.md @@ -11,7 +11,7 @@ This is a work in progress so expect things to fail or being flaky. * Flash its sd card with **raspbian buster lite** * use raspi-config to resize the filesystem to the whole sd card (menu: 7 -> A1) * install some tools and reboot: -``` +```bash sudo apt-get update sudo apt-get -y dist-upgrade sudo apt-get -y install docker.io git @@ -20,25 +20,25 @@ This is a work in progress so expect things to fail or being flaky. ``` * login to your RPi * clone this repo and cd into its local clone: -``` +```bash git clone https://github.com/MiczFlor/RPi-Jukebox-RFID.git cd /home/pi/RPi-Jukebox-RFID/ ``` * build the docker image: * **on normal PCs:** - ``` + ```bash docker build -t rpi-jukebox-rfid-stretch:latest -f ci/Dockerfile.stretch.amd64 . docker build -t rpi-jukebox-rfid-buster:latest -f ci/Dockerfile.buster.amd64 . ``` * **on a raspberry pi:** - ``` + ```bash docker build -t rpi-jukebox-rfid-stretch:latest -f ci/Dockerfile.stretch.armv7 . docker build -t rpi-jukebox-rfid-buster:latest -f ci/Dockerfile.buster.armv7 . ``` * get something to drink or eat * run the freshly built docker image and start testing. For example: - ``` + ```bash docker run --rm -ti rpi-jukebox-rfid-buster:latest /bin/bash cd /home/pi/ cp /code/scripts/installscripts/buster-install-default.sh /home/pi/ @@ -48,14 +48,13 @@ This is a work in progress so expect things to fail or being flaky. NOTE: Get familiar with docker and its flags - `--rm` for example will remove the container after you log out of it and all changes will be lost. - ### mount hosts code as volume The created image now contains all the code in the directory `/code` - if you do not want to rebuild the image after each code-change you can 'mount' the RPi's code version into the container: -``` +```bash git clone https://github.com/MiczFlor/RPi-Jukebox-RFID.git cd /home/pi/RPi-Jukebox-RFID/ docker build -t rpi-jukebox-rfid-buster:latest -f ci/Dockerfile . diff --git a/components/audio/PirateAudioHAT/README.md b/components/audio/PirateAudioHAT/README.md index 191105984..adebac7ef 100644 --- a/components/audio/PirateAudioHAT/README.md +++ b/components/audio/PirateAudioHAT/README.md @@ -24,7 +24,8 @@ NOTE: changes to the installation should find their way into the script `setup_p `gpio=25=op,dh` `dtoverlay=hifiberry-dac` 5. Add settings to /etc/asound.conf (create it, if it does not exist yet) - ``` + + ```bash pcm.hifiberry { type softvol slave.pcm "plughw:CARD=sndrpihifiberry,DEV=0" @@ -40,8 +41,10 @@ NOTE: changes to the installation should find their way into the script `setup_p card 1 } ``` + 6. Add the following section to /etc/mpd.conf - ``` + + ```bash audio_output { enabled "yes" type "alsa" @@ -53,6 +56,7 @@ NOTE: changes to the installation should find their way into the script `setup_p dop "no" } ``` + 7. Set mixer_control name in /etc/mpd.conf `mixer_control "Master"` 8. Enable SPI @@ -62,7 +66,8 @@ NOTE: changes to the installation should find their way into the script `setup_p 10. Install Mopidy plugins `sudo pip3 install Mopidy-PiDi pidi-display-pil pidi-display-st7789 mopidy-raspberry-gpio` 11. Add the following sections to /etc/mopidy/mopidy.conf: - ``` + + ```bash [raspberry-gpio] enabled = true bcm5 = play_pause,active_low,150 @@ -74,6 +79,7 @@ NOTE: changes to the installation should find their way into the script `setup_p enabled = true display = st7789 ``` + 12. Enable access for modipy user `sudo usermod -a -G spi,i2c,gpio,video mopidy` -13. Reboot Raspberry Pi \ No newline at end of file +13. Reboot Raspberry Pi diff --git a/components/bluetooth-sink-switch/README.md b/components/bluetooth-sink-switch/README.md index 532f40565..16fabde10 100644 --- a/components/bluetooth-sink-switch/README.md +++ b/components/bluetooth-sink-switch/README.md @@ -1,4 +1,4 @@ -## Neatly switch between soundcard and bluetooth audio output +# Neatly switch between soundcard and bluetooth audio output **Wouldn't it be nice to have regular speakers and Bluetooth headphones on your Phoniebox and choose the desired output on a spur of the moment?** @@ -24,14 +24,15 @@ This looks lengthy, but I the major deal is setting up your audio output devices #### Step 1) Setting up asound.conf -You need to set up both audio sinks and make sure they work. This is pretty much a prerequisite for everything that follows. +You need to set up both audio sinks and make sure they work. This is pretty much a prerequisite for everything that follows. Follow the instructions for your soundcard. Configure `/etc/asound.conf`correctly. And make sure it works! Then follow the instructions on the [Wiki on how to connect the bluetooth device](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Bluetooth). We diverge where we set up two audio sinks instead of one: Just **add** the `pcm.btspeaker` section described in the wiki to `/etc/asound.conf` (choose a name to your liking). Do **not** touch the mpd.conf yet! The new entry should end up looking like this: -~~~ + +~~~bash pcm.btheadphone { type plug slave.pcm { @@ -51,7 +52,8 @@ pcm.btheadphone { In case of doubt, reboot. Test the new audio device (mine is called `pcm.btheadphone`). Also test the soundcard (here `pcm.hifiberry` for the regular speakers). -~~~sh + +~~~bash $ aplay -D btheadphone /usr/share/sounds/alsa/Front_Center.wav $ aplay -D hifiberry /usr/share/sounds/alsa/Front_Center.wav ~~~ @@ -60,7 +62,7 @@ $ aplay -D hifiberry /usr/share/sounds/alsa/Front_Center.wav You need to set up two audio_output sections. **The order is important**: the first entry must relate to the soundcard setup, the second entry must relate to the bluetooth setup. Give meaningful names, as they will show up in the Web Interface. -~~~ +~~~bash # The first entry should match your soundcard. If you have a working setup, there is most likly no need to change it! # As an exanple, here is my configuration for my HifiBerry MiniAmp. audio_output { @@ -84,7 +86,7 @@ audio_output { } ~~~ -Restarting the mpd.service or else reboot. +Restarting the mpd.service or else reboot. Check the setup: @@ -105,7 +107,6 @@ $ cd components/bluetooth-sink-switch $ ./install-bt-sink-switch.sh ~~~ - #### Step 4) Fine-tuning **Status LED** @@ -114,7 +115,7 @@ An optional status LED will be turned on if the audio sink is set to bluetooth. **Important note**: Correct capitalization of [BluetoothToggleLed] is important! -~~~ +~~~bash [BluetoothToggleLed] enabled: True led_pin: 13 @@ -124,7 +125,7 @@ led_pin: 13 If you want to toggle from a GPIO button (e.g. on GPIO5), add these lines to your `RPi-Jukebox-RFID/settings/gpio_settings.ini`. Create it, if it does not exist. -~~~ +~~~bash [BluetoothToggle] enabled: True Type: Button @@ -138,7 +139,7 @@ functionCall: functionCallBluetoothToggle If you want to toggle by RFID card swipe, set the card id in `rfid_trigger_play.conf`, e.g.: -~~~ +~~~bash ### Toggle between speakers and bluetooth headphones CMDBLUETOOTHTOGGLE="1364237231134" ~~~ @@ -149,9 +150,9 @@ Speakers and Headphones can have very different maximum volume levels. This some The solution is adding a `softvol` component to the /etc/asound.conf. You may already have one set up, if your soundcard does not have a hardware volume control. Then it is easy! The `softvol` copmonent adds a systemwide ALSA-based volume control for a hardware soundcard. You will need to give it a name, that does **not** exist! Check with `$ amixer scontrols` first, which names are already taken. Here, I have choosen *Master*. This will work even if your soundcard has a hardware volume control. -The `softvol` component has a feature called *max_db* to limit the maximum volume, which we are going to utilize here. With that we are limiting the maximum volume of the speakers systemwide and independent of MPD or other Phoniebox settings. +The `softvol` component has a feature called *max_db* to limit the maximum volume, which we are going to utilize here. With that we are limiting the maximum volume of the speakers systemwide and independent of MPD or other Phoniebox settings. -~~~ +~~~bash # Add the sofvol section pcm.hifiberry { type softvol @@ -184,26 +185,31 @@ ctl.!default { - Change the mixer control to the new iFace name: `mixer_control "Master"` - Ensure that it is there is no entry mixer_type or that it is `mixer_type "hardware"` -See example [mpd.conf](#step-2-setting-up-mpdconf) above! +See example [mpd.conf](#step-2-setting-up-mpdconf) above! + +Also change the Phoniebox setting with -Also change the Phoniebox setting with ~~~sh $ echo "Master" > RPi-Jukebox-RFID/settings/Audio_iFace_Name ~~~ + and reboot! Test the setup with running speaker test in one console -~~~ + +~~~bash $ speaker-test -D hifiberry ~~~ + and changing the default volume control in another console -~~~ + +~~~bash $ alsamixer ~~~ If you are experimenting with a softvol and want to get rid of it again - that is not an easy task. Most promising approach is to insert the SD-Card into a different Linux machine delete the file `/var/lib/alsa/asound.state`. This must be done from a different computer, as this file gets written during shutdown. More infos about the softvol may be found [here](https://alsa.opensrc.org/Softvol) -## Troubleshooting +## Troubleshooting Troubleshooting comes in three major sub-tasks: @@ -213,24 +219,24 @@ Troubleshooting comes in three major sub-tasks: ## Some background -https://alsa.opensrc.org/Softvol +<https://alsa.opensrc.org/Softvol> -https://alsa.opensrc.org/How_to_use_softvol_to_control_the_master_volume +<https://alsa.opensrc.org/How_to_use_softvol_to_control_the_master_volume> -https://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html +<https://www.alsa-project.org/alsa-doc/alsa-lib/pcm_plugins.html> ## Example config For reference, this is my /etc/asound.conf in full (it also sets up an equalizer). The corresponding [mpd.conf](#step-2-setting-up-mpdconf) excerpt is the one given above. -~~~ +~~~bash pcm.btheadphone { type plug slave.pcm { type bluealsa service "org.bluealsa" - device "00:1B:66:A1:56:8D" - profile "a2dp" + device "00:1B:66:A1:56:8D" + profile "a2dp" delay -20000 } hint { diff --git a/components/controls/buttons-bluetooth-headphone/README.md b/components/controls/buttons-bluetooth-headphone/README.md index 28c141fd9..8d9397df0 100644 --- a/components/controls/buttons-bluetooth-headphone/README.md +++ b/components/controls/buttons-bluetooth-headphone/README.md @@ -1,13 +1,13 @@ -## Contol Phoniebox via Buttons from Bluetooth Headset +## Control Phoniebox via Buttons from Bluetooth Headset -Many bluetooth headsets or bluetooth speaker sets have buttons for controlling the music stream. **Let's make use of them!** +Many bluetooth headsets or bluetooth speaker sets have buttons for controlling the music stream. **Let's make use of them!** This component provides support for controlling your Phoniebox through these buttons on your bluetooth headset (or speaker set). ### Installation 1. Make sure your bluetooth headset is connected to the Phoniebox. Follow the instructions in the [Wiki](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Bluetooth). 2. Execute `$ ./install-bt-buttons.sh. It will ask you to identify your headset and set up appropriate user rights, and registers the script as a service. It should work immediatly. In case of doubt, reboot. - - If later changing the headset, re-run `$ ./register-device.py`. Reboot or restart the service with `sudo systemctl restart phoniebox-bt-buttons.service ` + - If later changing the headset, re-run `$ ./register-device.py`. Reboot or restart the service with `sudo systemctl restart phoniebox-bt-buttons.service` ### Supported Buttons @@ -27,7 +27,7 @@ If the feature [bluetooth-sink-switch](../../bluetooth-sink-switch) is enabled, *Note:* On-connect actions may take up to 4 seconds - please be patient (bluetooth connection is only checked every two seconds, bluetooth stream needs to be buffered, etc...) -You can **customize** the behaviour by editing the functions +You can **customize** the behaviour by editing the functions - `bt_on_connect(mpd_support=0)` - `bt_on_disconnect(mpd_support=0)` @@ -48,7 +48,8 @@ This feature has been tested with PowerLocus Buddy and Sennheiser Momentum M2 AE - Run the [preparatory steps](#preparation) - Check headset is connected and listed as input event device with `$ cat /proc/bus/input/devices`. Note the device name. - In the script's debug output you should see something like this. Here the MAC address is the device name -~~~ + +~~~bash 30.12.2020 21:44:41 - bt-buttons.py - DEBUG: bt_get_device_name() -> C4:FB:20:63:A7:F2 30.12.2020 21:45:05 - bt-buttons.py - DEBUG: bt_open_device(C4:FB:20:63:A7:F2): Device 'C4:FB:20:63:A7:F2' search success 30.12.2020 21:45:05 - bt-buttons.py - DEBUG: device /dev/input/event1, name "C4:FB:20:63:A7:F2", phys "" @@ -57,12 +58,16 @@ This feature has been tested with PowerLocus Buddy and Sennheiser Momentum M2 AE - If you see discrepancies, re-run `$ ./register-device.py`(see above) #### Add key codes / change actions + - Run the [preparatory steps](#preparation) - Press the buttons on the headset and check for these debug outputs. Note down the keycode. The **163** is the keycode, you are looking for. Go through all the buttons. Also try short/long press. On my headphones, they result in different keycodes -``` + +~~~bash 30.12.2020 21:45:59 - bt-buttons.py - DEBUG: key event at 1609361159.529679, 163 (KEY_NEXTSONG), down -``` +~~~ + - Go into the source code and adjust these lines for desired behaviour + ~~~python if event.code == bt_keycode_play: proc = subprocess.run(f"{path}/../../../scripts/playout_controls.sh -c=playerpause", shell=True, check=False, @@ -74,9 +79,10 @@ This feature has been tested with PowerLocus Buddy and Sennheiser Momentum M2 AE ~~~ #### Still having trouble? -Check the basics: test the event input. Make sure the headphones are connected beforehand. Replace event*X* with the event number obtained from `$ cat /proc/bus/input/devices`. + +Check the basics: test the event input. Make sure the headphones are connected beforehand. Replace event*X* with the event number obtained from `$ cat /proc/bus/input/devices`. ```$ cat /dev/input/eventX``` Press some buttons on the headset. Not all buttons will be forwarded, e.g. vol up/down may also be handled only in the headset. - Try also long/short press. The output will look wired. Don't worry - the important thing is that you are seeing something on the console. Now go back to [Troubleshooting](#troubleshooting). \ No newline at end of file +Try also long/short press. The output will look wired. Don't worry - the important thing is that you are seeing something on the console. Now go back to [Troubleshooting](#troubleshooting). diff --git a/components/displays/HD44780-i2c/README.md b/components/displays/HD44780-i2c/README.md index 2c61903c9..17b6a719a 100755 --- a/components/displays/HD44780-i2c/README.md +++ b/components/displays/HD44780-i2c/README.md @@ -4,89 +4,90 @@ *([Permission to use this code for the Phoniebox project](https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/859#discussion_r408667007) on April 15th 2020 by author [Denis Pleic](https://github.com/DenisFromHR). Original [code on https://gist.github.com/DenisFromHR/cc863375a6e19dce359d](https://gist.github.com/DenisFromHR/cc863375a6e19dce359d))* The following files allow using LCD displays based on HD44780 connected via i2c bus for this project. The following displays have been used for testing: - -- 2x16 display -- 4x20 display (recommended as more information can be displayed) - -Various informations such as artist, album, track_number, track_title, track_time and many more can be displayed see main script for more display options. - -The required files are: - -- components/displays/HD44780-i2c/i2c_lcd.py -- components/displays/HD44780-i2c/i2c_lcd_driver.py -- components/displays/HD44780-i2c/i2c-lcd.service.default.sample -- components/displays/HD44780-i2c/README.md - - -The first file is the main LCD script that makes use of I2C_LCD_driver.py. - -The second file is the library needed to drive the LCD via i2c, originates from DenisFromHR (Denis Pleic) see http://www.circuitbasics.com/raspberry-pi-i2c-lcd-set-up-and-programming - -The third is used as sample service file that runs the i2c_lcd.py main script at boot-up if the service is properly installed (install description can be found below.). - -The fourth file is this file which describes the features, usage and installation of the code. - -### Installation - + +- 2x16 display +- 4x20 display (recommended as more information can be displayed) + +Various informations such as artist, album, track_number, track_title, track_time and many more can be displayed see main script for more display options. + +The required files are: + +- components/displays/HD44780-i2c/i2c_lcd.py +- components/displays/HD44780-i2c/i2c_lcd_driver.py +- components/displays/HD44780-i2c/i2c-lcd.service.default.sample +- components/displays/HD44780-i2c/README.md + +The first file is the main LCD script that makes use of I2C_LCD_driver.py. + +The second file is the library needed to drive the LCD via i2c, originates from DenisFromHR (Denis Pleic) see <http://www.circuitbasics.com/raspberry-pi-i2c-lcd-set-up-and-programming> + +The third is used as sample service file that runs the i2c_lcd.py main script at boot-up if the service is properly installed (install description can be found below.). + +The fourth file is this file which describes the features, usage and installation of the code. + +### Installation + * You need to install additional python libraries. Run the following two command in the command line: - -`sudo apt-get install i2c-tools python-smbus python3-numpy python-mpdclient python-mpd` -`pip install smbus numpy python-mpd2` +`sudo apt-get install i2c-tools python-smbus python3-numpy python-mpdclient python-mpd` + +`pip install smbus numpy python-mpd2` + +* You need to know which I2C bus your Raspberry Pi has available on GPIOs: -* You need to know which I2C bus your Raspberry Pi has available on GPIOs: +`ls /dev/i2c-*` -`ls /dev/i2c-*` +It'll output "/dev/i2c-x", where x is your bus number. Note this bus number as you will need it in step 6. -It'll output "/dev/i2c-x", where x is your bus number. Note this bus number as you will need it in step 6. -* Now detect the adapter by using the i2cdetect command, inserting your bus number: +* Now detect the adapter by using the i2cdetect command, inserting your bus number: -`sudo i2cdetect -y bus_number` +`sudo i2cdetect -y bus_number` -The I2C address of my LCD is 27. Take note of this number, it will be need in step 6. +The I2C address of my LCD is 27. Take note of this number, it will be need in step 6. -* if i2cdetect is not found install i2c-tools +* if i2cdetect is not found install i2c-tools -`sudo apt-get update` +`sudo apt-get update` -`sudo apt-get install i2c-tools` +`sudo apt-get install i2c-tools` -* Next we need to install SMBUS, which gives the Python library we’re going to use access to the I2C bus on the Pi. At the command prompt, enter +* Next we need to install SMBUS, which gives the Python library we’re going to use access to the I2C bus on the Pi. At the command prompt, enter -`sudo apt-get install python-smbus` +`sudo apt-get install python-smbus` -* Modify "i2c_lcd_driver.py" line 19 which reads "I2CBUS = 1" and adapt it to your bus number (see step 2.) Furthermore modify line 22 which reads "ADDRESS = 0x27" and adapt it to your I2C address (see step 3.) +* Modify "i2c_lcd_driver.py" line 19 which reads "I2CBUS = 1" and adapt it to your bus number (see step 2.) Furthermore modify line 22 which reads "ADDRESS = 0x27" and adapt it to your I2C address (see step 3.) * Modify "i2c_lcd.py" to adapt it yo your specific display e.g. 2x16 or 4x20 (default). The lines 15-19 look like the following: - + +```bash +################# CHANGE YOUR SETTINGS HERE!!! ########################################### +## Display settings ## +n_cols = 20 # EDIT!!! <-- number of cols your display has ## +n_rows = 4 # EDIT!!! <-- number of rows your display has ## +val_delay = 0.4 # EDIT!!! <-- speed of the scolling text ## ``` -################# CHANGE YOUR SETTINGS HERE!!! ########################################### -## Display settings ## -n_cols = 20 # EDIT!!! <-- number of cols your display has ## -n_rows = 4 # EDIT!!! <-- number of rows your display has ## -val_delay = 0.4 # EDIT!!! <-- speed of the scolling text ## -``` -Check if "n_cols" and "n_rows" need to be changed and modify them if necessary. The "val_delay" constant leave for the time being. Lower values will speed up things but will make the text less visible/readable. - -* next install and start "i2c-lcd.service" -`sudo cp /home/pi/RPi-Jukebox-RFID/components/displays/HD44780-i2c/i2c-lcd.service.default.sample /etc/systemd/system/i2c-lcd.service` +Check if "n_cols" and "n_rows" need to be changed and modify them if necessary. The "val_delay" constant leave for the time being. Lower values will speed up things but will make the text less visible/readable. + +* next install and start "i2c-lcd.service" -* register service by running, it will thereby start on the next boot-up +`sudo cp /home/pi/RPi-Jukebox-RFID/components/displays/HD44780-i2c/i2c-lcd.service.default.sample /etc/systemd/system/i2c-lcd.service` -`sudo systemctl enable i2c-lcd` +* register service by running, it will thereby start on the next boot-up -* Reboot and enjoy! +`sudo systemctl enable i2c-lcd` + +* Reboot and enjoy! --- -For test purposes you can use the following command to start and stop the service without rebooting -to start the service instantly run +For test purposes you can use the following command to start and stop the service without rebooting +to start the service instantly run + +`sudo systemctl start i2c-lcd` -`sudo systemctl start i2c-lcd` +to stop the service instantly run -to stop the service instantly run +`sudo systemctl stop i2c-lcd` -`sudo systemctl stop i2c-lcd` - -Best regards, -Simon \ No newline at end of file +Best regards, +Simon diff --git a/components/displays/dot-matrix-module-MAX7219/README.md b/components/displays/dot-matrix-module-MAX7219/README.md index c52bf2bad..766addcf6 100644 --- a/components/displays/dot-matrix-module-MAX7219/README.md +++ b/components/displays/dot-matrix-module-MAX7219/README.md @@ -1,26 +1,26 @@ -# MAX7219 Dot Matrix Display - -## Items needed - -* [NodeMCU ESP8266, CPU/WLAN](https://amzn.to/2urDAky) -* [MAX7219 dot matrix module microcontroller module 4 in one display](https://amzn.to/2Sa5Scx) - -## Configuration - -In the [display.ino](display.ino#L48-L50) there is following configuration part: - - const char* ssid = "foo"; - const char* password = "foo"; - const char* host = "192.168.42.42"; - -`ssid` is your local WiFi network. -`password` is the password for your WiFi network. +# MAX7219 Dot Matrix Display + +## Items needed + +* [NodeMCU ESP8266, CPU/WLAN](https://amzn.to/2urDAky) +* [MAX7219 dot matrix module microcontroller module 4 in one display](https://amzn.to/2Sa5Scx) + +## Configuration + +In the [display.ino](display.ino#L48-L50) there is following configuration part: + + const char* ssid = "foo"; + const char* password = "foo"; + const char* host = "192.168.42.42"; + +`ssid` is your local WiFi network. +`password` is the password for your WiFi network. `host` is the **static** IP of your Phoniebox. - -For flashing the ESP, you can use the [Arduino IDE](https://en.wikipedia.org/wiki/Arduino_IDE). But there are a few more other possibilities to do this. - -## Pics - - - + +For flashing the ESP, you can use the [Arduino IDE](https://en.wikipedia.org/wiki/Arduino_IDE). But there are a few more other possibilities to do this. + +## Pics + + + diff --git a/components/gpio_control/README.md b/components/gpio_control/README.md index 9e4477cbe..0c92ca6f5 100644 --- a/components/gpio_control/README.md +++ b/components/gpio_control/README.md @@ -4,21 +4,24 @@ This service enables the control of different GPIO input & output devices for co It uses to a configuration file to configure the active devices. ## How to create and run the service? + * The service can be activated during installation with the installscript. * If the service was not activated during installation, you can alternatively use `sudo install.sh` in this folder (`components/gpio_control`). ## How to edit configuration files? -The configuration file is located here: `~/RPi-Jukebox-RFID/settings/gpio_settings.ini` + +The configuration file is located here: `~/RPi-Jukebox-RFID/settings/gpio_settings.ini` Editing the configuration file and restarting the service with `sudo systemctl restart phoniebox-gpio-control` will activate the new settings. -In the following the different devices are described. +In the following the different devices are described. Each device can have actions which correspond to function calls. Up to now the following input devices are implemented: -* **Button**: - A simple button with optional long-press actions like hold and repeat functionality or delayed action. + +* **Button**: + A simple button with optional long-press actions like hold and repeat functionality or delayed action. Its main parameters are: `Pin` (use GPIO number here) and `functionCall`. For additional options, see [extended documentation below](#doc_button). -* **ShutdownButton**: +* **ShutdownButton**: A specialized implementation for a shutdown button with integrated (but optional) LED support. It initializes a shutdown if the button is pressed more than `time_pressed` seconds and a (optional) LED on GPIO `led_pin` is flashing until that time is reached. For additional information, see [extended documentation below](#doc_sdbutton). * **RotaryEncoder**: @@ -36,28 +39,33 @@ Each section needs to be activated by setting `enabled: True`. Many example files are located in `~/RPi-Jukebox-RFID/components/gpio_control/example_configs/`. # Extended documentation + This section provides some extended documentation and guideline. Especially some exemplary configurations are introduced showing how these controls can be set up in the configuration file `~/RPi-Jukebox-RFID/settings/gpio_settings.ini`. -## Button<a name="doc_button"></a> +## Button<a name="doc_button"></a> + At the most basic level, a button can be created using an `ini` entry like this: -``` + +```bash [PlayPause] enabled: True Type: Button Pin: 27 functionCall: functionCallPlayerPause ``` + * **enabled**: This needs to be `True` for the button to work. * **Pin**: GPIO number * **functionCall**: The function that you want to be called on a button press. See [function documentation below](#doc_funcs). However, a button has more parameters than these. In the following comprehensive list you can also find the default values which are used automatically if you leave out these settings: + * **hold_mode**: Specifies what shall happen if the button is held pressed for longer than `hold_time`: - * `None` (Default): Nothing special will happen. - * `Repeat`: The configured `functionCall` is repeated after each `hold_time` interval. - * `Postpone`: The function will not be called before `hold_time`, i.e. the button needs to be pressed this long to activate the function - * `SecondFunc`: Holding the button for at least `hold_time` will additionally execute the function `functionCall2`. - * `SecondFuncRepeat`: Like SecondFunc, but `functionCall2` is repeated after each `hold_time` interval. + * `None` (Default): Nothing special will happen. + * `Repeat`: The configured `functionCall` is repeated after each `hold_time` interval. + * `Postpone`: The function will not be called before `hold_time`, i.e. the button needs to be pressed this long to activate the function + * `SecondFunc`: Holding the button for at least `hold_time` will additionally execute the function `functionCall2`. + * `SecondFuncRepeat`: Like SecondFunc, but `functionCall2` is repeated after each `hold_time` interval. In every `hold_mode` except `Postpone`, the main action `functionCall` gets executed instantly. @@ -78,9 +86,11 @@ However, a button has more parameters than these. In the following comprehensive Note: If you prefer, you may also use `Type: SimpleButton` instead of `Type: Button` - this makes no difference. -## ShutdownButton<a name="doc_sdbutton"></a> +## ShutdownButton<a name="doc_sdbutton"></a> + An extended ShutdownButton can be created using an `ini` entry like these: -``` + +```bash [Shutdown_without_LED] enabled: True Type: ShutdownButton @@ -92,11 +102,13 @@ Type: ShutdownButton Pin: 3 led_pin: 17 ``` + * **enabled**: This needs to be `True` for the extended shutdown button to work. * **Pin**: GPIO number of the button * **led_pin**: GPIO number of the LED (Default is `None`). Note that you should not attach LEDs to GPIO ports without a matching resistor in line. Again, there are more parameters than these. In the following comprehensive list you can also find the default values which are used automatically if you leave out these settings: + * **hold_time**: This parameter controls how many seconds (default: `3.0`) the button has to be hold until shutdown will be initiated. * **iteration_time**: This parameter determines the flashing speed of the LED indicator. Default value is `0.2` seconds. * **functionCall**: While the default action is `functionCallShutdown`, you might use this button type even with other functions than system shutdown (again, see [function documentation below](#doc_funcs) for a list of available functions). @@ -105,7 +117,7 @@ Furthermore, the following settings can be used as described for the [regular bu Note that using a ShutdownButton without a LED can also be implemented with a normal button like this: -``` +```bash [Shutdown] enabled: True Type: Button @@ -115,10 +127,11 @@ hold_time: 3.0 functionCall: functionCallShutdown ``` -## TwoButtonControl<a name="doc_twobutton"></a> +## TwoButtonControl<a name="doc_twobutton"></a> + A TwoButtonControl can be created using an `ini` entry like this: -``` +```bash [PrevNextStop] enabled: True Type: TwoButtonControl @@ -128,10 +141,12 @@ functionCall1: functionCallPlayerNext functionCall2: functionCallPlayerPrev functionCallTwoButtons: functionCallPlayerStop ``` + In this example, you can navigate to the previous or, respectively next track by pushing the respective button. If you push both buttons simultaneously, the player stops. It is possible to combine the TwoButtonControl with the Repeat mode, e.g. to increment the volume further while the button keeps getting held: -``` + +```bash [VolumeControl] enabled: True Type: TwoButtonControl @@ -143,14 +158,16 @@ functionCall1: functionCallVolU functionCall2: functionCallVolD functionCallTwoButtons: functionCallVol0 ``` + In this example, the volume will be in-/decreased step-wise using intervals of 0.3 seconds while the respective button is held. If both buttons are pushed simultaneously, the player is muted (volume 0). In this example, Pin1 is used for increasing the volume, while Pin2 decreases it. Furthermore, the following settings can be used as described for the [regular buttons](#doc_button): **pull_up_down**, **edge**, **bouncetime**, **antibouncehack** +## RotaryEncoder<a name="doc_rotary"></a> -## RotaryEncoder<a name="doc_rotary"></a> A RotaryEncoder can be created using an `ini` entry like this: -``` + +```bash [VolumeControl] enabled: True Type: RotaryEncoder @@ -164,25 +181,30 @@ functionCall2: functionCallVolD Pin1 and FunctionCall1 correspond to rotary direction "up", while Pin2 and FunctionCall2 correspond to "down". Note that the old configuration entries PinUp/PinDown and functionCallUp/functionCallDown are deprecated and might stop working in future. -## StatusLED<a name="doc_sled"></a> +## StatusLED<a name="doc_sled"></a> + A StatusLED can be created using an `ini` entry like this: -``` + +```bash [StatusLED] enabled: True Type: StatusLED Pin: 14 ``` + * **Pin**: GPIO number of the LED (mandatory option). Note that you should not attach LEDs to GPIO ports without a matching resistor in line. Note: If you prefer, you may also use `Type: MPDStatusLED` instead of `Type: StatusLED` - this makes no difference. ## Further examples + By tapping the potential of the features presented above, you can create buttons like this: ### Play random tracks or folders + If you have buttons to navigate to the next/previous track it might be a good idea to define that holding these buttons for a certain time (e.g. 2 seconds) will activate a random (surpise!) track or even folder/card. This might look like this -``` +```bash [NextOrRand] enabled: True Type: Button @@ -205,8 +227,10 @@ functionCall2: functionCallPlayerRandomFolder ``` ### Short and long jumps + If you are using two buttons to jump backwards or forwards within the current track, you can use the repeated hold action to allow larger jumps: -``` + +```bash [SkipForward] enabled: True Type: Button @@ -217,12 +241,14 @@ hold_mode: SecondFuncRepeat functionCall: functionCallPlayerSeekFwd functionCall2: functionCallPlayerSeekFarFwd ``` + In this example, a short press initiates a short jump forward by 10 seconds (functionCallPlayerSeekFwd) while holding the button will cause further, longer jumps. In this case it will cause a jump of 1 minute forward (functionCallPlayerSeekFarFwd) every 5 seconds. If you wish, you can adjust these values in `components/gpio_control/function_calls.py`. For jumping backwards, this can be done equivalently (see [function list below](#doc_funcs)). +## Functions<a name="doc_funcs"></a> -## Functions<a name="doc_funcs"></a> The available functions are defined/implemented in `components/gpio_control/function_calls.py`: + * **functionCallShutdown**: System shutdown * **functionCallVolU**: Volume up * **functionCallVolD**: Volume down @@ -244,10 +270,11 @@ The available functions are defined/implemented in `components/gpio_control/func * **functionCallPlayerRandomCard**: Activate a random card * **functionCallPlayerRandomFolder**: Play a random folder -## Troubleshooting<a name="doc_trouble"></a> +## Troubleshooting<a name="doc_trouble"></a> + If you encounter bouncing effects with your buttons like unrequested/double actions after releasing a button, you can try to set `antibouncehack` to True: -``` +```bash [NextSong] enabled: True Type: Button @@ -258,8 +285,7 @@ antibouncehack: True Instead of adding this to each button, you can also define it as default for all elements, by inserting the statement into the `Default` section which can be found at the beginning of the `~/RPi-Jukebox-RFID/settings/gpio_settings.ini` file: - -``` +```bash [DEFAULT] enabled: True antibouncehack: True diff --git a/components/rfid-reader/PN532/README.md b/components/rfid-reader/PN532/README.md index ab8a2fead..6cf747c29 100644 --- a/components/rfid-reader/PN532/README.md +++ b/components/rfid-reader/PN532/README.md @@ -8,7 +8,6 @@ Similar shields/breakout boards, based on the same chip might work, but have not It has been tested with the I2C interface. Using SPI might work as well, but it has not been tested. - 1. Connect the PN532 RFID reader to the GPIO pins | PN532 | Raspberry Pi | Raspi Pins | @@ -33,7 +32,6 @@ It has been tested with the I2C interface. Using SPI might work as well, but it - check `sudo i2cdetect -y 1` - output should look like this: - 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- diff --git a/components/smart-home-automation/MQTT-protocol/README.md b/components/smart-home-automation/MQTT-protocol/README.md index c1093a0fd..da00394b7 100644 --- a/components/smart-home-automation/MQTT-protocol/README.md +++ b/components/smart-home-automation/MQTT-protocol/README.md @@ -6,16 +6,17 @@ This module will integrate Phoniebox into a Smart Home environment and make it r # Use Cases * let your Smart Home control Phoniebox based on time schedules - * disable wifi in the evening when Phoniebox is used as a sleeping device - * shutdown at night when it's finally bedtime - * lower the volume in the mornings (to keep you asleep) + * disable wifi in the evening when Phoniebox is used as a sleeping device + * shutdown at night when it's finally bedtime + * lower the volume in the mornings (to keep you asleep) * control Phoniebox via Voice Assistants like [Rhasspy](https://github.com/rhasspy/rhasspy) (which also uses MQTT!), Google Home, Amazon Echo,... * let Phoniebox play an informational note to your kids that the weather outside is great and they should consider going outside (if your Smart Home has weather-based sensors) * run statistics on when and how your kid uses Phoniebox - * arrange terms with your kid how long the Phoniebox can be used (e.g. max. 2h per day) - * monitor if your kid complies with those terms or enforce them if need be + * arrange terms with your kid how long the Phoniebox can be used (e.g. max. 2h per day) + * monitor if your kid complies with those terms or enforce them if need be # How it works + Phoniebox' MQTT client connects to the MQTT server that is defined in the `SETTINGS` section of the script itself. It is able to connect by authenticating... 1) with username and password @@ -26,121 +27,129 @@ Please check your MQTT server configuration regarding which authentication metho Phoniebox' MQTT client will do the following things: 1. at startup send state and version info about Phoniebox to - - `phoniebox/version` (e.g. 1.2-rc1) - - `phoniebox/edition` (e.g. classic) - - `phoniebox/state` (online) - - `phoniebox/disk_total` (disk size in Gigabytes) - - `phoniebox/disk_avail` (available disk size in Gigabytes) + * `phoniebox/version` (e.g. 1.2-rc1) + * `phoniebox/edition` (e.g. classic) + * `phoniebox/state` (online) + * `phoniebox/disk_total` (disk size in Gigabytes) + * `phoniebox/disk_avail` (available disk size in Gigabytes) 2. at shutdown send state info to - - `phoniebox/state` (offline) + * `phoniebox/state` (offline) 3. periodically send *all* attributes to `phoniebox/attribute/$attributeName` (this interval can be defined through `refreshIntervalPlaying` and `refreshIntervalIdle` in the `SETTINGS` section) 4. send specific events to `phoniebox/event/$eventName` right away 5. listen for attribute requests on `phoniebox/get/$attribute` 6. listen for commands on `phoniebox/cmd/$command` (if a command needs a parameter it has to be provided via payload) ## Topic: phoniebox/event/$event + This is a read-only topic. The following events trigger immediate messages through this topic: -- card_swiped +* card_swiped Use these topics to get notified of time-critical events right away rather than having to wait for the periodic send of all attributes or requesting an attribute through the get topic. Currently the only event triggering a message is the "card_swiped" event with the obvious use-case of letting your smart home react upon swiped cards. These cards needn't be configured in Phoniebox as the MQTT daemon will just relay any swiped card to the MQTT server. So it's possible to have a "dim lights" card that will not trigger any Phoniebox action but is picked up by your smart home to dim the lights. ## Topic: phoniebox/get/$attribute -MQTT clients can (additionally to the periodic updates) request an attribute of Phoniebox. Sending an empty payload to `phoniebox/get/volume` will trigger Phoniebox' MQTT client to fetch the current volume from MPD and send the result to `phoniebox/attribute/volume`. + +MQTT clients can (additionally to the periodic updates) request an attribute of Phoniebox. Sending an empty payload to `phoniebox/get/volume` will trigger Phoniebox' MQTT client to fetch the current volume from MPD and send the result to `phoniebox/attribute/volume`. ### Possible attributes -- volume -- mute -- repeat -- repeat_mode [off / single / playlist] -- random -- state -- file -- artist -- albumartist -- title -- album -- track -- elapsed -- duration -- trackdate -- last_card -- maxvolume -- volstep -- idletime -- rfid (status of rfid service [true/false]) -- gpio (status of gpio service [true/false]) -- remaining_stopafter [minutes left until "stop" is triggered] -- remaining_shutdownafter [minutes left until shutdown] -- remaining_idle [minutes left for the idle shutdown timer] -- throttling -- temperature + +* volume +* mute +* repeat +* repeat_mode [off / single / playlist] +* random +* state +* file +* artist +* albumartist +* title +* album +* track +* elapsed +* duration +* trackdate +* last_card +* maxvolume +* volstep +* idletime +* rfid (status of rfid service [true/false]) +* gpio (status of gpio service [true/false]) +* remaining_stopafter [minutes left until "stop" is triggered] +* remaining_shutdownafter [minutes left until shutdown] +* remaining_idle [minutes left for the idle shutdown timer] +* throttling +* temperature ### Help + Sending empty payload to `phoniebox/get/help` will be responded by a list of all possible attributes to `phoniebox/available_attributes` ## Topic: phoniebox/cmd/$command + MQTT clients can send commands to Phoniebox. Sending an empty payload to `phoniebox/cmd/volumeup` will trigger Phoniebox' MQTT client to execute that command. If the command needs a parameter it has to be provided in the payload (e.g. for `setmaxvolume` a payload with the maximum volume is required). ### Possible commands -- volumeup -- volumedown -- mute -- playerplay -- playerpause -- playernext -- playerprev -- playerstop -- playerrewind -- playershuffle -- playerreplay -- scan -- shutdown -- shutdownsilent -- reboot -- disablewifi + +* volumeup +* volumedown +* mute +* playerplay +* playerpause +* playernext +* playerprev +* playerstop +* playerrewind +* playershuffle +* playerreplay +* scan +* shutdown +* shutdownsilent +* reboot +* disablewifi ### Possible commands (that require a parameter!) -- setvolume [0-100] -- setvolstep [0-100] -- setmaxvolume [0-100] -- setidletime [in minutes] -- playerseek [e.g. +20 for 20sec ahead or -12 for 12sec back] -- shutdownafter [in minutes; 0 = remove timer] -- playerstopafter [in minutes] -- playerrepeat [off / single / playlist] -- rfid [start / stop] -- gpio [start / stop] -- swipecard [card ID] -- playfolder [folder name (not path)] -- playfolderrecursive [folder name (not path)] + +* setvolume [0-100] +* setvolstep [0-100] +* setmaxvolume [0-100] +* setidletime [in minutes] +* playerseek [e.g. +20 for 20sec ahead or -12 for 12sec back] +* shutdownafter [in minutes; 0 = remove timer] +* playerstopafter [in minutes] +* playerrepeat [off / single / playlist] +* rfid [start / stop] +* gpio [start / stop] +* swipecard [card ID] +* playfolder [folder name (not path)] +* playfolderrecursive [folder name (not path)] ### Help + Sending empty payload to `phoniebox/cmd/help` will be responded by a list of all possible commands to `phoniebox/available_commands` and `phoniebox/available_commands_with_params` # Installation Install missing python packages for MQTT: -~~~ +~~~bash sudo python3 -m pip install --upgrade --force-reinstall -q -r requirements.txt ~~~ All relevant files can be found in the folder: -~~~ +~~~bash components/smart-home-automation/MQTT-protocol/ ~~~ ## Auto-Starting the daemon at bootup * The daemon is run by executing the script `daemon_mqtt_client.py` which will run in an endless loop. -* There's a sample service file (`phoniebox-mqtt-client.service.stretch-default.sample`) that can be used to register the daemon to be run at bootup. +* There's a sample service file (`phoniebox-mqtt-client.service.stretch-default.sample`) that can be used to register the daemon to be run at bootup. * It is currently not integrated into the one-line-install script so please run the following commands to do it manually. First step: copy files to destination locations: -~~~ +~~~bash # First copy the daemon script and service config file to the correct directory: sudo cp /home/pi/RPi-Jukebox-RFID/components/smart-home-automation/MQTT-protocol/daemon_mqtt_client.py /home/pi/RPi-Jukebox-RFID/scripts/ sudo cp /home/pi/RPi-Jukebox-RFID/components/smart-home-automation/MQTT-protocol/phoniebox-mqtt-client.service.stretch-default.sample /etc/systemd/system/phoniebox-mqtt-client.service @@ -148,7 +157,7 @@ sudo cp /home/pi/RPi-Jukebox-RFID/components/smart-home-automation/MQTT-protocol Now edit the `SETTINGS` section in `/home/pi/RPi-Jukebox-RFID/scripts/daemon_mqtt_client.py` to match your environment (MQTT connection details etc.). Now continue and activate the service. -~~~ +~~~bash # Now systemd has to be notified that there's a new service file: sudo systemctl daemon-reload diff --git a/docs/FIRMWARE_UPDATE.md b/docs/FIRMWARE_UPDATE.md index ac88c3fae..d3ad0f879 100644 --- a/docs/FIRMWARE_UPDATE.md +++ b/docs/FIRMWARE_UPDATE.md @@ -3,26 +3,37 @@ **This has not been tested yet**: The analogue audio out quality of the RPi3 is horrible. Learn more about the [impact of the firmware update in the raspberry forum](https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=167934). In the same forum you can find information on the [firmaware update effect on the analogue audio out](https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=136445). If you were to try to update the firmware, now would be the right moment. I tried the firmware update successfully, but haven't yet built a Phoniebox on top of it. So if you are new to the RPi, skip the following lines and go to the next chapter, configuring your keyboard. Open a terminal window and update the firmware typing: -~~~~ + +~~~~bash sudo rpi-update ~~~~ + Then reboot the machine: -~~~~ + +~~~~bash sudo reboot ~~~~ + Now open the terminal window again. The howto suggests to switch off the HDMI audio out: -~~~~ + +~~~~bash amixer cset numid=3 1 ~~~~ + Open the config file with: -~~~~ + +~~~~bash sudo nano /boot/config.txt ~~~~ + and add the following line: -~~~~ + +~~~~bash audio_pwm_mode=2 ~~~~ + Better safe than sorry, reboot the machine once more: -~~~~ + +~~~~bash sudo reboot ~~~~ diff --git a/docs/GPIO-BUTTONS.md b/docs/GPIO-BUTTONS.md index 813d83dcc..134cb8df2 100644 --- a/docs/GPIO-BUTTONS.md +++ b/docs/GPIO-BUTTONS.md @@ -1,5 +1,7 @@ Deprecated, please see [wiki](/wiki) for the latest version + --------------------------------------------- + # Control Jukebox with buttons / GPIO (Other docs: [Installation](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch) | @@ -9,7 +11,7 @@ Deprecated, please see [wiki](/wiki) for the latest version **Add buttons to your jukebox to control volume, skip tracks and more.** Before we start: -One of the plus points about this projects, at least in my mind, +One of the plus points about this projects, at least in my mind, was the fact that you don't need a soldering iron to build it. Everything is USB, plug and play, thank you, boot and go. @@ -22,7 +24,7 @@ confirmation that this works :) Enough said, here we go. ---- +--------------------------------------------- ## Pin numbering on the RPi @@ -73,22 +75,22 @@ There are a number of different ways to connect a button. The easiest one is wel We need to run [GPIO Zero](https://gpiozero.readthedocs.io/en/stable/), a simple interface to GPIO devices with Raspberry Pi. GPIO Zero is installed by default in Raspbian Jessie. To install see the [installing](https://gpiozero.readthedocs.io/en/stable/installing.html) chapter on their site. Better safe than sorry, so lets install the packages on our machine: -~~~ -$ sudo apt-get install python3-gpiozero python-gpiozero +~~~bash +sudo apt-get install python3-gpiozero python-gpiozero ~~~ **Note**: No harm done to install both, python3 and python2. This needs trimming later on. Make a copy of the [python script for the GPIO buttons](../misc/sampleconfigs/gpio-buttons.py.sample) into the scripts folder. This way you are free to make changes to the script without changing your github repo. -~~~ -$ sudo cp /home/pi/RPi-Jukebox-RFID/misc/sampleconfigs/gpio-buttons.py.sample /home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons.py +~~~bash +sudo cp /home/pi/RPi-Jukebox-RFID/misc/sampleconfigs/gpio-buttons.py.sample /home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons.py ~~~ And change the copy to be executable -~~~ -$ sudo chmod +x /home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons.py +~~~bash +sudo chmod +x /home/pi/RPi-Jukebox-RFID/scripts/gpio-buttons.py ~~~ **Note**: work in progress: the [python script for the GPIO buttons](../misc/sampleconfigs/gpio-buttons.py.sample) will be explained when I get to it. diff --git a/docs/INSTALL-COMPLETE-GUIDE.md b/docs/INSTALL-COMPLETE-GUIDE.md index c7dd7c829..696d2d813 100644 --- a/docs/INSTALL-COMPLETE-GUIDE.md +++ b/docs/INSTALL-COMPLETE-GUIDE.md @@ -1,14 +1,15 @@ # How to set up a Phoniebox from scratch -1. [What you need](#1-what-you-need) -1. [Install Raspberry Pi OS](#2-install-raspberry-pi-os) -1. [Initial Boot](#3-initial-boot) -1. [Prepare hardware](#4-prepare-hardware) -1. [Audio](#5-audio) - * [a) On-board headphone](#5a-on-board-headphone) - * [b) USB sound card](#5b-usb-sound-card) -1. [Install Phoniebox software](#6-install-phoniebox-software) -1. [Verify Phoniebox setup](#7-verify-phoniebox-setup) +- [How to set up a Phoniebox from scratch](#how-to-set-up-a-phoniebox-from-scratch) + - [1. What you need](#1-what-you-need) + - [2. Install Raspberry Pi OS](#2-install-raspberry-pi-os) + - [3. Initial Boot](#3-initial-boot) + - [4. Prepare hardware](#4-prepare-hardware) + - [5. Audio](#5-audio) + - [5a. On-board headphone](#5a-on-board-headphone) + - [5b. USB sound card](#5b-usb-sound-card) + - [6. Install Phoniebox software](#6-install-phoniebox-software) + - [7. Verify Phoniebox setup](#7-verify-phoniebox-setup) --- @@ -18,26 +19,26 @@ All parts marked with a star (*) are optional but improve the overall experience 1. [Micro SD Card](https://amzn.to/3do7KJr) (e.g. 32 GB) 1. Raspberry Pi - * [Model 3 B+](https://amzn.to/2NGL7Fa) - recommended - * [Model 4 B](https://amzn.to/2M0xtfJ) - could be a little overhead - * (Model 1, 2, 3 and Zero are possible, but they are slower...) + - [Model 3 B+](https://amzn.to/2NGL7Fa) - recommended + - [Model 4 B](https://amzn.to/2M0xtfJ) - could be a little overhead + - (Model 1, 2, 3 and Zero are possible, but they are slower...) 1. [USB RFID Reader](https://amzn.to/3s47Iun) 1. [RFID Chips](https://amzn.to/3k78F2j) or [RFID Cards](https://amzn.to/3dplljG) 1. [Speakers with 3.5mm jack](https://amzn.to/3dnhmnV) To improve the sound, we recommend: -* [Ground Loop Isolator](https://amzn.to/37nyZjK) * +- [Ground Loop Isolator](https://amzn.to/37nyZjK) * Alternatively you can use an external sound card, but sometimes that doesn't seem to improve much: -* [USB Sound Card](https://amzn.to/3djaKqC) * - [Alternative](https://amzn.to/3u8guth) +- [USB Sound Card](https://amzn.to/3djaKqC) * - [Alternative](https://amzn.to/3u8guth) --- ## 2. Install Raspberry Pi OS -Before you can install the Phoniebox software, you need to prepare your Raspberry Pi and install +Before you can install the Phoniebox software, you need to prepare your Raspberry Pi and install 1. Connect your Micro SD card (through a card reader) to your computer 1. [Download](https://www.raspberrypi.org/software/) the [Raspberry Pi Imager](https://www.raspberrypi.org/blog/raspberry-pi-imager-imaging-utility/) and open it @@ -56,20 +57,27 @@ You will need a terminal, like PuTTY for Windows or the Terminal for Mac to proc 1. Insert your card again if it has been ejected automatically 1. Navigate to your SC card e.g., `cd /Volumes/boot` for Mac or `D:` for Windows 1. Enable SSH by adding a simple file - ``` + + ```bash $ touch ssh ``` + 1. Set up your Wifi connection - * Mac - ``` + - Mac + + ```bash $ nano wpa_supplicant.conf ``` - * Windows - ``` + + - Windows + + ```bash D:\> notepad wpa_supplicant.conf ``` + 1. Insert the following content, update your country, Wifi credentials and save the file. - ``` + + ```bash country=DE ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 @@ -79,27 +87,36 @@ You will need a terminal, like PuTTY for Windows or the Terminal for Mac to proc psk="network-password" } ``` + 1. Eject your SD card and insert it into your Raspberry Pi 1. Start your Raspberry Pi by attaching a power supply 1. Login into your Raspberry Pi, username is `pi` and password is `raspberry`. If `raspberrypi.local` does not work, find out your Raspberry Pi's IP address from your router. - ``` + + ```bash $ ssh pi@raspberrypi.local ``` + 1. Update the Pi's software. This may take a bit - ``` + + ```bash $ sudo apt update && sudo apt full-upgrade ``` + 1. Reboot with `sudo reboot` 1. Login again with SSH and open the Raspberry Pi config - ``` + + ```bash $ sudo raspi-config ``` + 1. Update the following settings - ``` + + ```bash 1 System Options S5 Boot / Auto Login -> B2 Console Autologin S6 Network at Boot -> Yes ``` + 1. Close the settings panel with `<Finish>` 1. Shutdown your Raspberry Pi with `sudo shutdown` @@ -112,7 +129,8 @@ You will need a terminal, like PuTTY for Windows or the Terminal for Mac to proc 1. Plug in the 3.5" speakers with the Ground Loop Isolator in between. If you have chosen the example speakers from above, you can power them either through the Raspberry Pi or through an external power source. 1. Boot your Raspberry Pi 1. Open a terminal in your second computer and login via SSH using the `pi` user and default password `raspberry`. If you see a question about authentication and fingerprint, type `yes` and hit `enter` - ``` + + ```bash ssh pi@raspberrypi.local ``` @@ -128,22 +146,28 @@ Also see [Troubleshooting: headphone audio unavailable after unplugging HDMI](ht ### 5b. USB sound card 1. Open the Raspberry Pi config - ``` + + ```bash $ sudo raspi-config ``` 1. Update the following settings - ``` + + ```bash 1 System Options S2 Audio -> 1 USB Audio ``` + 1. Close the settings panel with `<Finish>` 1. Make your soundcard the primary sound device. To update the sound card priority order, edit the following file: - ``` + + ```bash $ sudo nano /usr/share/alsa/alsa.conf ``` + 1. Find the following variables and change their value from `0` to `1` - ``` + + ```bash defaults.ctl.card 0 defaults.pcm.card 0 @@ -152,9 +176,11 @@ Also see [Troubleshooting: headphone audio unavailable after unplugging HDMI](ht defaults.ctl.card 1 defaults.pcm.card 1 ``` + 1. Reboot 1. Test your audio! Check if you hear white noise in stereo when running the following command from your connected speakers. If not, refer to this [resource](https://learn.adafruit.com/usb-audio-cards-with-a-raspberry-pi/instructions) to troubleshoot. - ``` + + ```bash speaker-test -c2 ``` @@ -166,7 +192,7 @@ If you want to install the **Spotify+ version**, [read this first](https://githu Run the following command in your SSH terminal and follow the instructions -``` +```bash cd; rm buster-install-*; wget https://raw.githubusercontent.com/MiczFlor/RPi-Jukebox-RFID/master/scripts/installscripts/buster-install-default.sh; chmod +x buster-install-default.sh; ./buster-install-default.sh ``` diff --git a/docs/UPGRADE.md b/docs/UPGRADE.md index 69d00aa90..f7e173255 100755 --- a/docs/UPGRADE.md +++ b/docs/UPGRADE.md @@ -25,7 +25,7 @@ We introduce Phoniebox Editions. To distinguish them, we call them "Phoniebox Cl **Please use our [spotify thread](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/18) to post improvements regarding this feature.** -~~~ +~~~bash cd /home/pi/RPi-Jukebox-RFID git checkout master git fetch origin @@ -110,7 +110,7 @@ Not much has changed in the core of this version. There is the new feature: Inte Upgrading is therefore fairly simple. The following will overwrite any local changes to your code but NOT to your configruation files and systemd services, GPIO and the like. Only core code: -~~~ +~~~bash cd /home/pi/RPi-Jukebox-RFID git checkout master git fetch origin @@ -120,12 +120,12 @@ git pull # Upgrade from Version 1.1.1 to 1.1.6 -A few important bug fixes. And a new design. +A few important bug fixes. And a new design. And the option to decide what the 'second swipe' of a card does (see settings in the web app). The following should get you all you need, without running the install script if you -only want to upgrade. +only want to upgrade. -~~~ +~~~bash cd /home/pi/RPi-Jukebox-RFID git checkout master git fetch origin @@ -146,7 +146,8 @@ sudo systemctl enable rfid-reader # Upgrade from Version 1.0.0 to 1.1.1 This upgrade brings the web app UI for file management, recursive folder management, wifi switch off and more. The latest [one-line Phoniebox install script](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/CONFIGURE-stretch#oneLineInstall) contains all the necessary steps, but will treat your upgrade like a new install. Manual upgrade: -~~~ + +~~~bash cd cd /home/pi/RPi-Jukebox-RFID git fetch @@ -168,6 +169,7 @@ sudo service php7.0-fpm restart As of version 1.0 there is a much simpler install procedure: copy and paste one line into your terminal and hit *enter*. Find out more about the [one-line Phoniebox install script](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/CONFIGURE-stretch#oneLineInstall). # Upgrade from 0.9.5 to 0.9.7 + * Adding a *Settings* page in the web app to control features like 'idle shutdown' and 'max volume' and toggle systemd services * Documentation / troubleshooting / tricks: how to install via ssh, improve on board audio quality and the like * Adding auto shutdown when idle for longer than x minutes (see [manual](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/MANUAL#settings) for details) @@ -175,7 +177,8 @@ As of version 1.0 there is a much simpler install procedure: copy and paste one * Fixing bug: settings volume for stereo audio iFace * Fixing bug: bash code compatible with all shells * Web app enhancements (audio level, display 'playing now') -~~~ + +~~~bash # services to launch after boot using systmed sudo cp /home/pi/RPi-Jukebox-RFID/misc/sampleconfigs/phoniebox-idle-watchdog.service.sample /etc/systemd/system/phoniebox-idle-watchdog.service sudo chown root:root /etc/systemd/system/phoniebox-idle-watchdog.service @@ -188,11 +191,12 @@ sudo systemctl start phoniebox-idle-watchdog.service ~~~ # Upgrade from 0.9.4 to 0.9.5 + * Configuration of RFID card control in extra file `settings/rfid_trigger_play.conf` * Playout control config now uses `settings` folder to store iFace value (e.g. PCM) and percentage of relative volume change * both bash scripts `scripts/rfid_trigger_play.sh` and `scripts/playout_controls.sh` are not created from `.sample` versions anymore, because the config has been moved to external files. -~~~ +~~~bash # make backups of the current scripts mv /home/pi/RPi-Jukebox-RFID/scripts/rfid_trigger_play.sh /home/pi/RPi-Jukebox-RFID/scripts/rfid_trigger_play.sh.backup.0.9.4 mv /home/pi/RPi-Jukebox-RFID/scripts/playout_controls.sh /home/pi/RPi-Jukebox-RFID/scripts/playout_controls.sh.backup.0.9.4 @@ -210,9 +214,11 @@ sudo chmod 775 /home/pi/RPi-Jukebox-RFID/settings/rfid_trigger_play.conf ~~~ # Upgrade to 0.9.4 + * The following script refers to the OS version 'Stretch' in some places but this should also work for 'Jessie'. * OS 'Stretch' and 'Jessie' require different `lighttpd.conf` parameters. Samples can be found in `misc/sampleconfigs` -~~~ + +~~~bash # make backups of the current scripts cp /home/pi/RPi-Jukebox-RFID/scripts/rfid_trigger_play.sh /home/pi/RPi-Jukebox-RFID/scripts/rfid_trigger_play.sh.backup.0.9.3 cp /home/pi/RPi-Jukebox-RFID/scripts/playout_controls.sh /home/pi/RPi-Jukebox-RFID/scripts/playout_controls.sh.backup.0.9.3 diff --git a/docs/WLAN-ACCESS-POINT.md b/docs/WLAN-ACCESS-POINT.md index 32049c809..8558f6f42 100644 --- a/docs/WLAN-ACCESS-POINT.md +++ b/docs/WLAN-ACCESS-POINT.md @@ -14,21 +14,26 @@ supports this mode. RPi3 does. Install two packages we need later. Later meaning: when we might not have Internet anymore. Because the wlan0 interface will be set to a static IP to create the access point. -``` + +```bash sudo apt-get update sudo apt-get install dnsmasq hostapd ``` + ## Configure the network Using jessie, dhcpd is activated by default. This dhcp daemon is assigning IP addresses to devices which want to connect to the Phoniebox. Set the IP address for the wlan card by opening: -``` + +```bash sudo nano /etc/network/interfaces ``` + Replace the existing content with the following lines: -``` + +```bash # Localhost auto lo iface lo inet loopback @@ -43,16 +48,21 @@ iface wlan0 inet static address 192.168.1.1 netmask 255.255.255.0 ``` + Now, the wlan is set to the IP address `192.168.1.1`. We add one line to the dhcpd config file: -``` + +```bash sudo nano /etc/dhcpcd.conf ``` + Append the line: -``` + +```bash denyinterfaces wlan0 ``` + Now we reboot and afterwards you should be connected to your RPi directly, not via ssh. Because if your RPi relied on a WiFi connection to the Internet, this will be cut off. Remember: we need the wlan0 interface to hook up other devices to a WiFi network the @@ -62,7 +72,7 @@ Let's check if all interfaces are up and running. We only really need the wlan0 but if eth0 is also up and is connected to the Internet, your Phoniebox will be online and all devices connected to it. Type in the command line: -``` +```bash ip a ``` @@ -73,17 +83,19 @@ monitor. Reboot. -``` +```bash sudo reboot ``` ## dhcp server configuration -``` +```bash sudo nano /etc/dnsmasq.conf ``` + The following lines are the minimal configuration required. -``` + +```bash # interface which is active interface=wlan0 @@ -99,31 +111,42 @@ dhcp-option=option:dns-server,192.168.1.1 Check the configuration before you start the dhcp server and cache. -``` + +```bash dnsmasq --test -C /etc/dnsmasq.conf ``` + This should return 'OK'. Now start `dnsmasq`: -``` + +```bash sudo systemctl restart dnsmasq ``` + Check if it is up and running: -``` + +```bash sudo systemctl status dnsmasq ``` + Now install dnsmasq to start after boot: -``` + +```bash sudo systemctl enable dnsmasq ``` ## configure hostapd + To assign ssid and password, we need to configure `hostapd`. -``` + +```bash sudo nano /etc/hostapd/hostapd.conf ``` + Replace the content of this file (if it already exists) with the following content. -``` + +```bash # interface and driver interface=wlan0 #driver=nl80211 @@ -144,24 +167,31 @@ wpa_key_mgmt=WPA-PSK rsn_pairwise=CCMP wpa_passphrase=Pl4yM3N0w ``` + The network will be listed as `Phoniebox` and the password to connect to the network is `Pl4yM3N0w` (as in 'play me now' with a number four and a number three and a zero). If you want a different ssid and/or password, edit the lines above. This file contains a password in raw text, so make sure only root can read it. -``` + +```bash sudo chmod 600 /etc/hostapd/hostapd.conf ``` -Check if this setup is correct. Open + +Check if this setup is correct. Open the wlan host in debug mode and read through the results. -``` + +```bash sudo hostapd -dd /etc/hostapd/hostapd.conf ``` + Scroll up to see if you can find these two lines anywhere: -``` + +```bash wlan0: interface state COUNTRY_UPDATE->ENABLED wlan0: AP-ENABLED ``` + If yes, you can also try to hook up a device with the network already. See if you can find `Phoniebox` as a WiFi network. @@ -169,26 +199,33 @@ See if you can find `Phoniebox` as a WiFi network. If that works, all is well. Stop the `hostapd` daemon with `Ctrl&C`. Before we can start `hostapd` on boot, we have to add a few lines -in the config file to specify +in the config file to specify the location of the config file. -``` + +```bash sudo nano /etc/default/hostapd ``` + Add these lines: -``` + +```bash RUN_DAEMON=yes DAEMON_CONF="/etc/hostapd/hostapd.conf" ``` + And start `hostapd` with the following commands: -``` + +```bash sudo systemctl start hostapd sudo systemctl enable hostapd ``` + Check if the daemon is up and running: -``` + +```bash sudo systemctl status hostapd ``` + This concludes what we need to connect to the Phoniebox directly via WiFi. If you plan to connect the `eth0` via a cable with the Internet, you need to learn about firewall configurations. Google how to do this (I hope to replace this last paragraph with a nicer explanation and a link later, when I find the time. Apologies.) - From fcad65883a5c3c1e238a963e06755fc81b4f7658 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Nov 2022 22:07:59 +0100 Subject: [PATCH 203/206] Bump phpunit/phpunit from 9.5.25 to 9.5.26 (#1905) Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.5.25 to 9.5.26. - [Release notes](https://github.com/sebastianbergmann/phpunit/releases) - [Changelog](https://github.com/sebastianbergmann/phpunit/blob/main/ChangeLog-9.5.md) - [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.5.25...9.5.26) --- updated-dependencies: - dependency-name: phpunit/phpunit dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- composer.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/composer.lock b/composer.lock index fcdacad0e..fbcfe6e49 100644 --- a/composer.lock +++ b/composer.lock @@ -504,16 +504,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.17", + "version": "9.2.18", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8" + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/aa94dc41e8661fe90c7316849907cba3007b10d8", - "reference": "aa94dc41e8661fe90c7316849907cba3007b10d8", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/12fddc491826940cf9b7e88ad9664cf51f0f6d0a", + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a", "shasum": "" }, "require": { @@ -569,7 +569,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.17" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.18" }, "funding": [ { @@ -577,7 +577,7 @@ "type": "github" } ], - "time": "2022-08-30T12:24:04+00:00" + "time": "2022-10-27T13:35:33+00:00" }, { "name": "phpunit/php-file-iterator", @@ -822,16 +822,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.25", + "version": "9.5.26", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d" + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d", - "reference": "3e6f90ca7e3d02025b1d147bd8d4a89fd4ca8a1d", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2", "shasum": "" }, "require": { @@ -904,7 +904,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.25" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.26" }, "funding": [ { @@ -920,7 +920,7 @@ "type": "tidelift" } ], - "time": "2022-09-25T03:44:45+00:00" + "time": "2022-10-28T06:00:21+00:00" }, { "name": "sebastian/cli-parser", From afeea5ed68f9222f2ffa5de8fa996e2c912423ec Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Sun, 18 Dec 2022 22:17:04 +0100 Subject: [PATCH 204/206] Update README.md for 2.4 (#1904) * fix flake8 warnings * fix markdownlint * fix markdown lint warnings * merge recent updates in install script buster-install-default-with-autohotspot.sh * fix flake8 warnings * prepare README.md for 2.4 release and little cleanup --- README.md | 44 ++++------ scripts/Reader.py.experimental | 2 +- scripts/Reader.py.experimental.Multi | 1 + scripts/Reader.py.pcsc | 5 +- scripts/helperscripts/cli-player.py | 1 - scripts/helperscripts/organizeFiles.py | 2 +- ...buster-install-default-with-autohotspot.sh | 86 +++++++++++-------- 7 files changed, 72 insertions(+), 69 deletions(-) diff --git a/README.md b/README.md index 2bb532e68..785afb260 100755 --- a/README.md +++ b/README.md @@ -14,11 +14,11 @@ A contactless jukebox for the Raspberry Pi, playing audio files, playlists, podc This means Phoniebox can not communicate with Spotify via libspotify (and mopidy-spotify) anymore. The problem is not our code but the cut off by Spotify. -We want Phoniebox users to be able to connect their box to their Spotify accounts and play their content. +>We want Phoniebox users to be able to connect their box to their Spotify accounts and play their content. The possibilities Spotify offers are -- at first glance -- not supporting an integration with Phoniebox. Third party projects like [librespot-java](https://github.com/librespot-org/librespot-java) enter a grey zone regarding violation of Spotify's *Terms of Services* (ToS). For a potential Spotify re-integration, we are committed to a Spotify ToS compliant way of doing so (both in Version 2 and Version 3). This means looking into the (relatively new) Spotify Playback API, which is going to take an unknown amount of time. -This leaves us in a pickle and we are happy to hear from developer talent in the Phoniebox community on how to move forward regarding Phoniebox. +>This leaves us in a pickle and we are happy to hear from developer talent in the Phoniebox community on how to move forward regarding Phoniebox. We are also curious to learn about alternative services we can connect with and which you would like to see supported -- or have developed support for already: <https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions/1835> @@ -28,6 +28,8 @@ Another bunch of wonderful designs! 2022 is the fourth Phoniebox calendar. If yo  +If you want to be featured on next years calendar, please make sure to add your Phoniebox pics to the [design thread here on github](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/639). + --- ## Install latest Phoniebox version @@ -75,31 +77,25 @@ If you seek the adventure, your support will be more then welcome. Before contri * **Phoniebox [future3 Beta](https://rpi-jukebox-rfid.readthedocs.io/en/latest/) released (2022-02)** * **Gitter Community** we got ourselves a gitter community; chat us up at <https://gitter.im/phoniebox> -* **Phoniebox [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) released (2021-08-12)** +* **Phoniebox [2.4](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/7?closed=1) released (2022-11-xx)** -The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) release was pushed through the doors with many contributors: [List of all contributors](https://github.com/MiczFlor/RPi-Jukebox-RFID/graphs/contributors) +The [2.4](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/7?closed=1) release was pushed through the doors with many contributors: [List of all contributors](https://github.com/MiczFlor/RPi-Jukebox-RFID/graphs/contributors) -## What's new in version 2.3? +## What's new in version 2.4? + +* 🔥 Finally fixed the annoying `evdev` bug during installation (fixes e.g. #1721, #1653, #1618, #1501 and MANY more) +* Flexible PHP version in install script (makes sure Raspian Bullseye can be used) #1849 +* Publish "card swiped" event via MQTT #1496 +* Right now Spotify integration **still doesn't work** - please follow the discussion at <https://github.com/MiczFlor/RPi-Jukebox-RFID/discussions/1835> -* Improved [installation guide](docs/INSTALL-COMPLETE-GUIDE.md) -* Holding buttons feature fixed #1406 -* Bluetooth buttons and headphones toggle #1262 -* fixed stop on removal for RC522 #1122 -* USB Encoder buttons support for anyone who dors not want to solder... -* Improved robustness and better documentation for [GPIO control](components/gpio_control/README.md) -* Auto convert wrong Spotify URLs to a format Mopidy understands -* Support for PC/SC-readers -* Removed support for Raspian Stretch * Lots of fixed bugs and minor improvements... **What's still hot?** -* :fire: **Fixed location of gpio_settings.ini** for [GPIO control](components/gpio_control/README.md) +* [GPIO control](components/gpio_control/README.md) * Added support for files with embedded chapters metada (like m4a) enhancement * Added customizable poweroff command bash enhancement -* Finally fixed resume function... -* Lots of fixed bugs and minor improvements... - * Status LED, Rotary Button, Volume Up/Down, custom music directory for +Spotify, Startup sound volume +* Support for PC/SC-readers * The constantly improved **one-line install script** handles both **Classic** and **+Spotify** when [setting up your Phoniebox](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/INSTALL-stretch#one-line-install-command) * integrated improved [GPIO control](components/gpio_control/README.md) * integrated selection of RFID readers and uses [multiple readers](https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/1012#issue-434052529) simultaneously @@ -108,7 +104,7 @@ The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) rel * RFID cards to **toggle Wifi** (or switch it on/off) * Read out the Wifi IP address (if you are connecting to a new network and don't know where to point your browser) * **Hotspot** Phoniebox: [ad-hoc hotspot](https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/967) if no known network found (IP: 10.0.0.5 SSID: phoniebox Password: PlayItLoud) -* **Touchscreen** LCD display Player (file: `index-lcd.php`in web app) +* **Touchscreen** LCD display Player (file: `index-lcd.php` in web app) * Integrate your [Phoniebox in your Smart Home](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki/Smart-Home-remote-control-with-MQTT). * Smoother [Web App running on ajax](https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/623). * New [search form for local files](https://github.com/MiczFlor/RPi-Jukebox-RFID/pull/710) @@ -133,16 +129,6 @@ The [2.3](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/6?closed=1) rel Documentation can be found in the [GitHub wiki for Phoniebox](https://github.com/MiczFlor/RPi-Jukebox-RFID/wiki). Please try to add content in the wiki regarding special hardware, software tweaks and the like. -## The 2020 Phoniebox Calendar is out! - -Celebrating all the great designs of 2019, I put together a calendar for 2020, see picture above. If you want to be featured on next years calendar, please make sure to add your Phoniebox pics to the [design thread here on github](https://github.com/MiczFlor/RPi-Jukebox-RFID/issues/639). - -The PDF is about 6MB and will print well on A2 paper size, but it should also look good on larger poster sizes. Thanks to all the contributors, designers and makers. Have a good start into 2020 and keep up the good work! - - -* [Download the 2020 Phoniebox Calendar PDF here](https://drive.google.com/file/d/1krb8G8Td1Vrf3sYWl44nZyuoJ0DIC5vX/view?usp=sharing) -* In case you missed it, [download the 2019 Phoniebox Calendar PDF here](https://drive.google.com/file/d/1NKlertLP0nIKOsHrcqu5pxe6NZU3SfS9/view?usp=sharing) - --- <a href="https://www.buymeacoffee.com/MiczFlor" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/guidelines/download-assets-sm-2.svg"></a> diff --git a/scripts/Reader.py.experimental b/scripts/Reader.py.experimental index da73b3b5b..b34479565 100755 --- a/scripts/Reader.py.experimental +++ b/scripts/Reader.py.experimental @@ -187,7 +187,7 @@ class Reader(object): sys.exit('Please run RegisterDevice.py first') else: with open(path + '/deviceName.txt', 'r') as f: - device_name = f.read().rstrip().split(';',1)[0] + device_name = f.read().rstrip().split(';', 1)[0] if device_name == 'MFRC522': self.reader = Mfrc522Reader() diff --git a/scripts/Reader.py.experimental.Multi b/scripts/Reader.py.experimental.Multi index 326a5bd86..a4626eb5f 100644 --- a/scripts/Reader.py.experimental.Multi +++ b/scripts/Reader.py.experimental.Multi @@ -27,6 +27,7 @@ except ImportError: logger = logging.getLogger(__name__) + class EDevices(Enum): MFRC522 = 0 RDM6300 = 1 diff --git a/scripts/Reader.py.pcsc b/scripts/Reader.py.pcsc index 795b03206..dac10de7c 100755 --- a/scripts/Reader.py.pcsc +++ b/scripts/Reader.py.pcsc @@ -9,6 +9,7 @@ from smartcard.scard import * from smartcard.util import toHexString from smartcard.util import * + class Reader: reader = None @@ -53,8 +54,7 @@ class Reader: SCARD_SHARE_SHARED, SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1) - hresult, response = SCardTransmit(hcard,dwActiveProtocol,[0xFF,0xCA,0x00,0x00,0x00]) - + hresult, response = SCardTransmit(hcard, dwActiveProtocol, [0xFF, 0xCA, 0x00, 0x00, 0x00]) finally: hresult = SCardReleaseContext(hcontext) @@ -67,4 +67,3 @@ class Reader: except error as e: print(e) - diff --git a/scripts/helperscripts/cli-player.py b/scripts/helperscripts/cli-player.py index 56252a1d6..8f73b2c30 100755 --- a/scripts/helperscripts/cli-player.py +++ b/scripts/helperscripts/cli-player.py @@ -40,4 +40,3 @@ subprocess.check_output([scriptsDir + '/rfid_trigger_play.sh', '--dir=' + selectedFolder], shell=False) print("bye.") - diff --git a/scripts/helperscripts/organizeFiles.py b/scripts/helperscripts/organizeFiles.py index 90e559c5c..596ee4839 100755 --- a/scripts/helperscripts/organizeFiles.py +++ b/scripts/helperscripts/organizeFiles.py @@ -76,6 +76,7 @@ def fixBrokenShortcuts(shortcutsDir, shortcuts, audioFolders): if d not in audioFolders and d != cardid: _deleteBrokenSymlink(shortcutsDir=shortcutsDir, cardid=cardid, d=d) + def _writeFolderConf(audioDir, d, content): with open(os.path.join(audioDir, d, "folder.conf"), "w") as f: f.write(content) @@ -221,4 +222,3 @@ def findDuplicateShortcuts(shortcuts): if args.fixFoldersWithoutFolderConf: audioFolders2 = readFolders(audioDir=audioDir) fixFoldersWithoutFolderConf(audioDir=audioDir, audioFolders=audioFolders2) - diff --git a/scripts/installscripts/buster-install-default-with-autohotspot.sh b/scripts/installscripts/buster-install-default-with-autohotspot.sh index db75c6ca3..2517681fe 100755 --- a/scripts/installscripts/buster-install-default-with-autohotspot.sh +++ b/scripts/installscripts/buster-install-default-with-autohotspot.sh @@ -4,7 +4,7 @@ # # NOTE: Running automated install (without interaction): # Each install creates a file called PhonieboxInstall.conf -# in the folder /home/pi/ +# in you $HOME directory # You can install the Phoniebox using such a config file # which means you don't need to run the interactive install: # @@ -12,7 +12,7 @@ # https://github.com/MiczFlor/RPi-Jukebox-RFID/tree/develop/scripts/installscripts # (note: currently only works for buster and newer OS) # 2. make the file executable: chmod +x -# 3. place the PhonieboxInstall.conf in the folder /home/pi/ +# 3. place the PhonieboxInstall.conf in the folder $HOME # 4. run the installscript with option -a like this: # buster-install-default.sh -a @@ -28,7 +28,7 @@ DATETIME=$(date +"%Y%m%d_%H%M%S") SCRIPTNAME="$(basename $0)" JOB="${SCRIPTNAME}" -HOME_DIR="/home/pi" +HOME_DIR=$(echo $HOME) JUKEBOX_HOME_DIR="${HOME_DIR}/RPi-Jukebox-RFID" LOGDIR="${HOME_DIR}"/phoniebox_logs @@ -104,9 +104,9 @@ will guide you through the configuration. If you want to run the AUTOMATED INSTALL (non-interactive) from an existing configuration file, do the following: 1. exit this install script (press n) -2. place your PhonieboxInstall.conf in the folder /home/pi/ +2. place your PhonieboxInstall.conf in the folder ${HOME_DIR} 3. run the installscript with option -a. For example like this: - ./home/pi/buster-install-default.sh -a + .${HOME_DIR}/buster-install-default.sh -a " read -rp "Continue interactive installation? [Y/n] " response case "$response" in @@ -241,7 +241,7 @@ check_existing() { echo "Everything else will remain in a folder called 'BACKUP'. " - ### + ### # See if we find the PhonieboxInstall.conf file # We need to do this first, because if we re-use the .conf file, we need to append # the variables regarding the found content to the also found configuration file. @@ -545,7 +545,7 @@ config_audio_folder() { ##################################################### # Folder path for audio files - # default: /home/pi/RPi-Jukebox-RFID/shared/audiofolders + # default: $HOME/RPi-Jukebox-RFID/shared/audiofolders clear @@ -683,14 +683,17 @@ samba_config() { sudo chmod 644 "${smb_conf}" # for $DIRaudioFolders using | as alternate regex delimiter because of the folder path slash sudo sed -i 's|%DIRaudioFolders%|'"$DIRaudioFolders"'|' "${smb_conf}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${smb_conf}" # Samba: create user 'pi' with password 'raspberry' + # ToDo: use current user with a default password (echo "raspberry"; echo "raspberry") | sudo smbpasswd -s -a pi } web_server_config() { local lighthttpd_conf="/etc/lighttpd/lighttpd.conf" local fastcgi_php_conf="/etc/lighttpd/conf-available/15-fastcgi-php.conf" - local php_ini="/etc/php/7.3/cgi/php.ini" + local php_ini="/etc/php/$(ls -1 /etc/php)/cgi/php.ini" local sudoers="/etc/sudoers" echo "Configuring web server..." @@ -699,6 +702,8 @@ web_server_config() { sudo cp "${jukebox_dir}"/misc/sampleconfigs/lighttpd.conf.buster-default.sample "${lighthttpd_conf}" sudo chown root:root "${lighthttpd_conf}" sudo chmod 644 "${lighthttpd_conf}" + # double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${lighthttpd_conf}" # Web server PHP7 fastcgi conf # -rw-r--r-- 1 root root 398 Apr 30 09:35 /etc/lighttpd/conf-available/15-fastcgi-php.conf @@ -793,7 +798,7 @@ install_main() { ${apt_get} ${allow_downgrades} install raspberrypi-kernel-headers fi - ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php7.3-common php7.3-cgi php7.3 at mpd mpc mpg123 git ffmpeg resolvconf spi-tools netcat alsa-tools lsof + ${apt_get} ${allow_downgrades} install samba samba-common-bin gcc lighttpd php-common php-cgi php at mpd mpc mpg123 git ffmpeg resolvconf spi-tools netcat alsa-utils lsof procps # restore backup of /etc/resolv.conf in case installation of resolvconf cleared it sudo cp /etc/resolv.conf.orig /etc/resolv.conf @@ -839,14 +844,6 @@ install_main() { sudo python3 -m pip install --upgrade --force-reinstall -q -r "${jukebox_dir}"/requirements-spotify.txt fi - local raw_github="https://raw.githubusercontent.com/MiczFlor/RPi-Jukebox-RFID" - # I comment the following lines out for now. I think they come from splitti when he applied a hotfix in Feb 2020? - # Back then the master install script needed develop branch files. I think this is from that time...? - #sudo rm "${jukebox_dir}"/misc/sampleconfigs/phoniebox-rfid-reader.service.stretch-default.sample - #wget -P "${jukebox_dir}"/misc/sampleconfigs/ "${raw_github}"/develop/misc/sampleconfigs/phoniebox-rfid-reader.service.stretch-default.sample - #sudo rm "${jukebox_dir}"/scripts/RegisterDevice.py - #wget -P "${jukebox_dir}"/scripts/ "${raw_github}"/develop/scripts/RegisterDevice.py - # Install more required packages echo "Installing additional Python packages..." sudo python3 -m pip install --upgrade --force-reinstall -q -r "${jukebox_dir}"/requirements.txt @@ -878,16 +875,14 @@ install_main() { # create config file for web app from sample sudo cp "${jukebox_dir}"/htdocs/config.php.sample "${jukebox_dir}"/htdocs/config.php + # double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${jukebox_dir}"/htdocs/config.php # Starting web server and php7 sudo lighttpd-enable-mod fastcgi sudo lighttpd-enable-mod fastcgi-php sudo service lighttpd force-reload - # create copy of GPIO script - sudo cp "${jukebox_dir}"/misc/sampleconfigs/gpio-buttons.py.sample "${jukebox_dir}"/scripts/gpio-buttons.py - sudo chmod +x "${jukebox_dir}"/scripts/gpio-buttons.py - # make sure bash scripts have the right settings sudo chown pi:www-data "${jukebox_dir}"/scripts/*.sh sudo chmod +x "${jukebox_dir}"/scripts/*.sh @@ -913,13 +908,30 @@ install_main() { sudo rm "${systemd_dir}"/phoniebox-gpio-buttons.service echo "### Done with erasing old daemons. Stop ignoring errors!" # 2. install new ones - this is version > 1.1.8-beta - sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-rfid-reader.service.stretch-default.sample "${systemd_dir}"/phoniebox-rfid-reader.service + RFID_READER_SERVICE="${systemd_dir}/phoniebox-rfid-reader.service" + sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-rfid-reader.service.stretch-default.sample "${RFID_READER_SERVICE}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${RFID_READER_SERVICE}" + #startup sound now part of phoniebox-startup-scripts #sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-startup-sound.service.stretch-default.sample "${systemd_dir}"/phoniebox-startup-sound.service - sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-startup-scripts.service.stretch-default.sample "${systemd_dir}"/phoniebox-startup-scripts.service - sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-gpio-buttons.service.stretch-default.sample "${systemd_dir}"/phoniebox-gpio-buttons.service - sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-idle-watchdog.service.sample "${systemd_dir}"/phoniebox-idle-watchdog.service - [[ "${GPIOconfig}" == "YES" ]] && sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-gpio-control.service.sample "${systemd_dir}"/phoniebox-gpio-control.service + STARTUP_SCRIPT_SERVICE="${systemd_dir}/phoniebox-startup-scripts.service" + sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-startup-scripts.service.stretch-default.sample "${STARTUP_SCRIPT_SERVICE}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${STARTUP_SCRIPT_SERVICE}" + + IDLE_WATCHDOG_SERVICE="${systemd_dir}/phoniebox-idle-watchdog.service" + sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-idle-watchdog.service.sample "${IDLE_WATCHDOG_SERVICE}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${IDLE_WATCHDOG_SERVICE}" + + if [[ "${GPIOconfig}" == "YES" ]]; then + GPIO_CONTROL_SERVICE="${systemd_dir}/phoniebox-gpio-control.service" + sudo cp "${jukebox_dir}"/misc/sampleconfigs/phoniebox-gpio-control.service.sample "${GPIO_CONTROL_SERVICE}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${GPIO_CONTROL_SERVICE}" + fi + sudo chown root:root "${systemd_dir}"/phoniebox-*.service sudo chmod 644 "${systemd_dir}"/phoniebox-*.service # enable the services needed @@ -928,9 +940,6 @@ install_main() { #startup sound is part of phoniebox-startup-scripts now #sudo systemctl enable phoniebox-startup-sound sudo systemctl enable phoniebox-startup-scripts - sudo systemctl enable phoniebox-gpio-buttons - sudo systemctl enable phoniebox-rotary-encoder.service - # copy mp3s for startup and shutdown sound to the right folder cp "${jukebox_dir}"/misc/sampleconfigs/startupsound.mp3.sample "${jukebox_dir}"/shared/startupsound.mp3 cp "${jukebox_dir}"/misc/sampleconfigs/shutdownsound.mp3.sample "${jukebox_dir}"/shared/shutdownsound.mp3 @@ -956,21 +965,25 @@ install_main() { sudo sed -i 's/%spotify_client_secret%/'"$SPOTIclientsecret"'/' "${etc_mopidy_conf}" # for $DIRaudioFolders using | as alternate regex delimiter because of the folder path slash sudo sed -i 's|%DIRaudioFolders%|'"$DIRaudioFolders"'|' "${etc_mopidy_conf}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${etc_mopidy_conf}" + sed -i 's/%spotify_username%/'"$SPOTIuser"'/' "${mopidy_conf}" sed -i 's/%spotify_password%/'"$SPOTIpass"'/' "${mopidy_conf}" sed -i 's/%spotify_client_id%/'"$SPOTIclientid"'/' "${mopidy_conf}" sed -i 's/%spotify_client_secret%/'"$SPOTIclientsecret"'/' "${mopidy_conf}" # for $DIRaudioFolders using | as alternate regex delimiter because of the folder path slash sudo sed -i 's|%DIRaudioFolders%|'"$DIRaudioFolders"'|' "${mopidy_conf}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${mopidy_conf}" fi # GPIO-Control if [[ "${GPIOconfig}" == "YES" ]]; then sudo python3 -m pip install --upgrade --force-reinstall -q -r "${jukebox_dir}"/requirements-GPIO.txt sudo systemctl enable phoniebox-gpio-control.service - if [[ ! -f ~/.config/phoniebox/gpio_settings.ini ]]; then - mkdir -p ~/.config/phoniebox - cp "${jukebox_dir}"/components/gpio_control/example_configs/gpio_settings.ini ~/.config/phoniebox/gpio_settings.ini + if [[ ! -f "${jukebox_dir}"/settings/gpio_settings.ini ]]; then + cp "${jukebox_dir}"/misc/sampleconfigs/gpio_settings.ini.sample "${jukebox_dir}"/settings/gpio_settings.ini fi fi @@ -985,6 +998,8 @@ install_main() { sudo sed -i 's/%AUDIOiFace%/'"$AUDIOiFace"'/' "${mpd_conf}" # for $DIRaudioFolders using | as alternate regex delimiter because of the folder path slash sudo sed -i 's|%DIRaudioFolders%|'"$DIRaudioFolders"'|' "${mpd_conf}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${mpd_conf}" sudo chown mpd:audio "${mpd_conf}" sudo chmod 640 "${mpd_conf}" fi @@ -1104,7 +1119,10 @@ existing_assets() { # make buttons_usb_encoder.py ready to be use from phoniebox-buttons-usb-encoder service sudo chmod +x "${jukebox_dir}"/components/controls/buttons_usb_encoder/buttons_usb_encoder.py # make sure service is still enabled by registering again - sudo cp -v "${jukebox_dir}"/components/controls/buttons_usb_encoder/phoniebox-buttons-usb-encoder.service.sample /etc/systemd/system/phoniebox-buttons-usb-encoder.service + USB_BUTTONS_SERVICE="/etc/systemd/system/phoniebox-buttons-usb-encoder.service" + sudo cp -v "${jukebox_dir}"/components/controls/buttons_usb_encoder/phoniebox-buttons-usb-encoder.service.sample "${USB_BUTTONS_SERVICE}" + # Replace homedir; double quotes for variable expansion + sudo sed -i "s%/home/pi%${HOME_DIR}%g" "${USB_BUTTONS_SERVICE}" sudo systemctl start phoniebox-buttons-usb-encoder.service sudo systemctl enable phoniebox-buttons-usb-encoder.service fi @@ -1402,7 +1420,7 @@ main() { else echo "Skipping USB device setup..." echo "For manual registration of a USB card reader type:" - echo "python3 /home/pi/RPi-Jukebox-RFID/scripts/RegisterDevice.py" + echo "python3 ${HOME_DIR}/RPi-Jukebox-RFID/scripts/RegisterDevice.py" echo " " echo "Reboot is required to activate all settings!" fi From cafab5c8a7ea4c3acafad60eb11d57919f69fd26 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Sun, 18 Dec 2022 22:22:13 +0100 Subject: [PATCH 205/206] update buster-install-default-with-autohotspot.sh to recent changes (#1903) * fix flake8 warnings * fix markdownlint * fix markdown lint warnings * merge recent updates in install script buster-install-default-with-autohotspot.sh * fix flake8 warnings * dont use pytest-pythonpath anymore (obsolete) * revert last commit From 0dd0a427312cc814b0856ab1ad65a16e3eba9878 Mon Sep 17 00:00:00 2001 From: s-martin <s-martin@users.noreply.github.com> Date: Sun, 18 Dec 2022 22:27:49 +0100 Subject: [PATCH 206/206] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 785afb260..b1b0ab5f3 100755 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ If you seek the adventure, your support will be more then welcome. Before contri * **Phoniebox [future3 Beta](https://rpi-jukebox-rfid.readthedocs.io/en/latest/) released (2022-02)** * **Gitter Community** we got ourselves a gitter community; chat us up at <https://gitter.im/phoniebox> -* **Phoniebox [2.4](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/7?closed=1) released (2022-11-xx)** +* **Phoniebox [2.4](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/7?closed=1) released (2022-12-18)** The [2.4](https://github.com/MiczFlor/RPi-Jukebox-RFID/milestone/7?closed=1) release was pushed through the doors with many contributors: [List of all contributors](https://github.com/MiczFlor/RPi-Jukebox-RFID/graphs/contributors)