Files
hassio-addons/birdnet-pi/rootfs/scripts/throttlescript.sh
2024-04-28 10:57:05 +02:00

42 lines
1.4 KiB
Bash

#!/bin/bash
#
# Stop the recordings while the analysis catches up https://github.com/mcguirepr89/BirdNET-Pi/issues/393#issuecomment-1166445710
#
source /etc/birdnet/birdnet.conf
srv="birdnet_recording"
analyzing_now="."
counter=10
while [ 1 ];do
sleep 61
if [ $counter -le 0 ];then
latest=$(cat "$HOME"/BirdNET-Pi/analyzing_now.txt)
if [ "$latest" = "$analyzing_now" ];then
echo "$(date) WARNING no change in analyzing_now for 10 iterations, restarting services"
"$HOME"/BirdNET-Pi/scripts/restart_services.sh
fi
counter=10
analyzing_now=$(cat "$HOME"/BirdNET-Pi/analyzing_now.txt)
fi
if [ -z "${RTSP_STREAM}" ];then
ingest_dir=${RECS_DIR}/$(date +"%B-%Y/%d-%A")
mkdir -p $ingest_dir
else
ingest_dir=$RECS_DIR/StreamData
fi
wavs=$(ls ${ingest_dir}/*.wav | wc -l)
if [ $(systemctl --state=active | grep $srv | wc -l) -eq 0 ];then
state="inactive"
else
state="active"
fi
echo "$(date) INFO ${wavs} wav files waiting in ${ingest_dir}, $srv state is $state"
if [ $wavs -gt 100 -a $state = "active" ];then
sudo systemctl stop $srv
echo "$(date) WARNING stopped $srv service"
elif [ $wavs -le 100 -a $state = "inactive" ];then
sudo systemctl start $srv
echo "$(date) INFO started $srv service"
fi
((counter-=1))
done