From 13a12b3e47f689ccb62d83868ff04a46a9f36367 Mon Sep 17 00:00:00 2001
From: Alexandre <44178713+alexbelgium@users.noreply.github.com>
Date: Tue, 4 Feb 2025 11:49:36 +0100
Subject: [PATCH] At most 1 notification every 30 minutes
https://github.com/alexbelgium/hassio-addons/issues/1749
---
birdnet-pi/rootfs/custom-services.d/30-monitoring.sh | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/birdnet-pi/rootfs/custom-services.d/30-monitoring.sh b/birdnet-pi/rootfs/custom-services.d/30-monitoring.sh
index bb9889dac..9aad1db5a 100755
--- a/birdnet-pi/rootfs/custom-services.d/30-monitoring.sh
+++ b/birdnet-pi/rootfs/custom-services.d/30-monitoring.sh
@@ -26,6 +26,7 @@ srv="birdnet_recording"
srv2="birdnet_analysis"
ingest_dir="$RECS_DIR/StreamData"
counter=10
+last_notification_time=0
# Ensure directories and permissions
mkdir -p "$ingest_dir"
@@ -35,6 +36,15 @@ chmod -R 755 "$ingest_dir"
# Function to send notifications using Apprise
apprisealert() {
local issue_message="$1"
+ local current_time=$(date +%s)
+ local time_diff=$((current_time - last_notification_time))
+
+ # Check if 30 minutes have passed since the last notification
+ if ((time_diff < 1800)); then
+ log_yellow "Notification suppressed to avoid spamming (last sent $time_diff seconds ago)"
+ return
+ fi
+
local notification=""
local stopped_service="
Stopped services: "
@@ -59,6 +69,7 @@ apprisealert() {
TITLE="BirdNET-Analyzer Alert"
if [[ -f "$HOME/BirdNET-Pi/birdnet/bin/apprise" && -s "$HOME/BirdNET-Pi/apprise.txt" ]]; then
"$HOME/BirdNET-Pi/birdnet/bin/apprise" -vv -t "$TITLE" -b "$notification" --input-format=html --config="$HOME/BirdNET-Pi/apprise.txt"
+ last_notification_time=$current_time
else
log_red "Apprise not configured or missing!"
fi