From 6b621714e533020422e28f533a600dbd5fb26548 Mon Sep 17 00:00:00 2001 From: Alexandre <44178713+alexbelgium@users.noreply.github.com> Date: Thu, 27 Mar 2025 13:43:26 +0100 Subject: [PATCH] update --- birdnet-pi/CHANGELOG.md | 6 +- birdnet-pi/config.json | 2 +- .../{31-checks.sh => 31-config_checks.sh} | 0 .../rootfs/etc/cont-init.d/71-newfeatures.sh | 66 ------------------- .../etc/cont-init.d/81-modifications.sh | 15 ++++- 5 files changed, 16 insertions(+), 73 deletions(-) rename birdnet-pi/rootfs/etc/cont-init.d/{31-checks.sh => 31-config_checks.sh} (100%) mode change 100755 => 100644 delete mode 100755 birdnet-pi/rootfs/etc/cont-init.d/71-newfeatures.sh diff --git a/birdnet-pi/CHANGELOG.md b/birdnet-pi/CHANGELOG.md index 71e629098..922307cf0 100644 --- a/birdnet-pi/CHANGELOG.md +++ b/birdnet-pi/CHANGELOG.md @@ -1,7 +1,5 @@ -## 2025.03.24 (21-03-2025) -- Minor bugs fixed -## 2025.03.23 (15-03-2025) -- Minor bugs fixed +- [DOCKER] Enable pulseaudio if HA is not used + ## 2025.03.22 (13-03-2025) - [ALL] Use Nachtzuster universal tflite 2.17.1 runtimes allowing full compatibility with non avx cpu diff --git a/birdnet-pi/config.json b/birdnet-pi/config.json index 6775c5b92..6803f7d65 100644 --- a/birdnet-pi/config.json +++ b/birdnet-pi/config.json @@ -121,6 +121,6 @@ "udev": true, "url": "https://github.com/alexbelgium/hassio-addons/tree/master/birdnet-pi", "usb": true, - "version": "2025.03.24", + "version": "2025.03.25", "video": true } diff --git a/birdnet-pi/rootfs/etc/cont-init.d/31-checks.sh b/birdnet-pi/rootfs/etc/cont-init.d/31-config_checks.sh old mode 100755 new mode 100644 similarity index 100% rename from birdnet-pi/rootfs/etc/cont-init.d/31-checks.sh rename to birdnet-pi/rootfs/etc/cont-init.d/31-config_checks.sh diff --git a/birdnet-pi/rootfs/etc/cont-init.d/71-newfeatures.sh b/birdnet-pi/rootfs/etc/cont-init.d/71-newfeatures.sh deleted file mode 100755 index 2523d4c3e..000000000 --- a/birdnet-pi/rootfs/etc/cont-init.d/71-newfeatures.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/command/with-contenv bashio -# shellcheck shell=bash -set -e - -################## -# ALLOW RESTARTS # -################## - -if [[ "${BASH_SOURCE[0]}" == /etc/cont-init.d/* ]]; then - mkdir -p /etc/scripts-init - sed -i "s|/etc/cont-init.d|/etc/scripts-init|g" /ha_entrypoint.sh - sed -i "/ rm/d" /ha_entrypoint.sh - cp "${BASH_SOURCE[0]}" /etc/scripts-init/ -fi - -################ -# ADD FEATURES # -################ - -bashio::log.info "Adding optional features" - -# Enable the Processed folder -############################# - -if bashio::config.true "PROCESSED_FOLDER_ENABLED" && ! grep -q "processed_size" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py; then - echo "... Enabling the Processed folder : the last 15 wav files will be stored there" - # Adapt config.php - sed -i "/GET\[\"info_site\"\]/a\ \$processed_size = \$_GET\[\"processed_size\"\];" "$HOME"/BirdNET-Pi/scripts/config.php - sed -i "/\$contents = file_get_contents/a\ \$contents = preg_replace\(\"/PROCESSED_SIZE=\.\*/\", \"PROCESSED_SIZE=\$processed_size\", \$contents\);" "$HOME"/BirdNET-Pi/scripts/config.php - sed -i "/\"success\"/i
" "$HOME"/BirdNET-Pi/scripts/config.php - sed -i "/\"success\"/i

Processed folder management

" "$HOME"/BirdNET-Pi/scripts/config.php - sed -i "/\"success\"/i " "$HOME"/BirdNET-Pi/scripts/config.php - sed -i "/\"success\"/i \"/>" "$HOME"/BirdNET-Pi/scripts/config.php - sed -i "/\"success\"/i
" "$HOME"/BirdNET-Pi/scripts/config.php - sed -i "/\"success\"/i Processed is the directory where the formerly 'Analyzed' files are moved after extractions, mostly for troubleshooting purposes.
" "$HOME"/BirdNET-Pi/scripts/config.php - sed -i "/\"success\"/i This value defines the maximum amount of files that are kept before replacement with new files.
" "$HOME"/BirdNET-Pi/scripts/config.php - sed -i "/\"success\"/i
" "$HOME"/BirdNET-Pi/scripts/config.php - sed -i "/\"success\"/i\
" "$HOME"/BirdNET-Pi/scripts/config.php - # Adapt birdnet_analysis.py - move_to_processed - sed -i "/log.info('handle_reporting_queue done')/a\ os.remove(files.pop(0))" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - sed -i "/log.info('handle_reporting_queue done')/a\ while len(files) > processed_size:" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - sed -i "/log.info('handle_reporting_queue done')/a\ files.sort(key=os.path.getmtime)" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - sed -i "/log.info('handle_reporting_queue done')/a\ files = glob.glob(os.path.join(processed_dir, '*'))" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - sed -i "/log.info('handle_reporting_queue done')/a\ os.rename(file_name, os.path.join(processed_dir, os.path.basename(file_name)))" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - sed -i "/log.info('handle_reporting_queue done')/a\ processed_dir = os.path.join(get_settings()['RECS_DIR'], 'Processed')" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - sed -i "/log.info('handle_reporting_queue done')/a\def move_to_processed(file_name, processed_size):" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - sed -i "/log.info('handle_reporting_queue done')/a\ " "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - # Adapt birdnet_analysis.py - get_processed_size - sed -i "/log.info('handle_reporting_queue done')/a\ return 0" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - sed -i "/log.info('handle_reporting_queue done')/a\ except (ValueError, TypeError):" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - sed -i "/log.info('handle_reporting_queue done')/a\ return processed_size if isinstance(processed_size, int) else 0" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - sed -i "/log.info('handle_reporting_queue done')/a\ processed_size = get_settings().getint('PROCESSED_SIZE')" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - sed -i "/log.info('handle_reporting_queue done')/a\ try:" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - sed -i "/log.info('handle_reporting_queue done')/a\def get_processed_size():" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - sed -i "/log.info('handle_reporting_queue done')/a\ " "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - # Modify calls - sed -i "/from subprocess import CalledProcessError/a\import glob" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - sed -i "/from subprocess import CalledProcessError/a\import time" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - # Modify main code - sed -i "/os.remove(file.file_name)/i\ processed_size = get_processed_size()" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - sed -i "/os.remove(file.file_name)/i\ if processed_size > 0:" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - sed -i "/os.remove(file.file_name)/i\ move_to_processed(file.file_name, processed_size)" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - sed -i "/os.remove(file.file_name)/i\ else:" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py - sed -i "/os.remove(file.file_name)/c\ os.remove(file.file_name)" "$HOME"/BirdNET-Pi/scripts/birdnet_analysis.py -fi || true - diff --git a/birdnet-pi/rootfs/etc/cont-init.d/81-modifications.sh b/birdnet-pi/rootfs/etc/cont-init.d/81-modifications.sh index 38c03a0d1..157c18f38 100755 --- a/birdnet-pi/rootfs/etc/cont-init.d/81-modifications.sh +++ b/birdnet-pi/rootfs/etc/cont-init.d/81-modifications.sh @@ -32,7 +32,7 @@ if bashio::supervisor.ping 2>/dev/null; then for file in $(grep -srl "pulseaudio --start" $HOME/BirdNET-Pi/scripts); do sed -i "s|! pulseaudio --check|pulseaudio --check|g" "$file" done - + # Check if port 80 is correctly configured if [ -n "$(bashio::addon.port "80")" ] && [ "$(bashio::addon.port "80")" != 80 ]; then bashio::log.fatal "The port 80 is enabled, but should still be 80 if you want automatic SSL certificates generation to work." @@ -134,13 +134,24 @@ if [[ -f "$HOME/BirdNET-Pi/scripts/utils/reporting.py" ]]; then fi # Correct timedatectl path -echo "updating timedatectl path" +echo "... updating timedatectl path" if [[ -f /helpers/timedatectl ]]; then mv /helpers/timedatectl /usr/bin/timedatectl chown pi:pi /usr/bin/timedatectl chmod a+x /usr/bin/timedatectl fi +# Set RECS_DIR +echo "... setting RECS_DIR to /tmp" +grep -rl "RECS_DIR" $HOME | while read -r file; do + sed -i "s|conf\['RECS_DIR'\]|'/tmp'|g" "$file" + sed -i "s|\$RECS_DIR|/tmp|g" "$file" + sed -i "s|\${RECS_DIR}|/tmp|g" "$file" + sed -i "/^RECS_DIR=/c RECS_DIR=/tmp" "$file" + sed -i "/^\$RECS_DIR=/c \$RECS_DIR=/tmp" "$file" +done +mkdir -p /tmp + # Correct language labels according to birdnet.conf echo "... adapting labels according to birdnet.conf" if export "$(grep "^DATABASE_LANG" /config/birdnet.conf)"; then