From 02b97c40e6a1f173ad5e41d73097fee00458a8cc Mon Sep 17 00:00:00 2001 From: Alexandre <44178713+alexbelgium@users.noreply.github.com> Date: Sun, 28 Apr 2024 11:38:53 +0200 Subject: [PATCH] Update 03_throttlerecording --- .../custom-services.d/03_throttlerecording | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/birdnet-pi/rootfs/custom-services.d/03_throttlerecording b/birdnet-pi/rootfs/custom-services.d/03_throttlerecording index 1ed404db8..4e168944d 100644 --- a/birdnet-pi/rootfs/custom-services.d/03_throttlerecording +++ b/birdnet-pi/rootfs/custom-services.d/03_throttlerecording @@ -1,8 +1,11 @@ -#!/bin/bash +#!/command/with-contenv bashio +# shellcheck shell=bash # -# Stop the recordings while the analysis catches up https://github.com/mcguirepr89/BirdNET-Pi/issues/393#issuecomment-1166445710 +# Stop the recordings while the analysis catches up +# Adapted from https://github.com/mcguirepr89/BirdNET-Pi/issues/393#issuecomment-1166445710 # echo "Starting service: throttlerecording" +touch "$HOME"/BirdSongs/StreamData/analyzing_now.txt source /config/birdnet.conf srv="birdnet_recording" @@ -11,19 +14,19 @@ counter=10 while [ 1 ];do sleep 61 if [ $counter -le 0 ];then - latest=$(cat "$HOME"/BirdNET-Pi/analyzing_now.txt) + latest=$(cat "$RECS_DIR"/StreamData/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) + analyzing_now=$(cat "$HOME"/BirdSongs/StreamData/analyzing_now.txt) fi if [ -z "${RTSP_STREAM}" ];then ingest_dir=${RECS_DIR}/$(date +"%B-%Y/%d-%A") - mkdir -p $ingest_dir + mkdir -p "$ingest_dir" else - ingest_dir=$RECS_DIR/StreamData + ingest_dir="$RECS_DIR"/StreamData fi wavs=$(ls ${ingest_dir}/*.wav | wc -l) if [ $(systemctl --state=active | grep $srv | wc -l) -eq 0 ];then @@ -32,8 +35,8 @@ while [ 1 ];do 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 + 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