diff --git a/package/gluon-alfred/files/lib/gluon/alfred/announce.sh b/package/gluon-alfred/files/lib/gluon/alfred/announce.sh
index c4f88c61b6262789556a83888e71956c810a86fd..928cee8ff502e92888cb0446cac7bc0d68eb4cb5 100755
--- a/package/gluon-alfred/files/lib/gluon/alfred/announce.sh
+++ b/package/gluon-alfred/files/lib/gluon/alfred/announce.sh
@@ -15,9 +15,17 @@ fi
 # set defaults
 [ -z "$ALFRED_DATA_TYPE" ] && ALFRED_DATA_TYPE=158
 [ -z "$NET_IF" ] && NET_IF=br-client
+[ -z "$MAX_WAIT" ] && MAX_WAIT=300
 
 set -e
 
+# To avoid mass flooding the network every five minutes with all clients
+# simultaneously, wait for a random time between 0 and 300 seconds, but fixed
+# for each device to maintain 5 minutes between updates.
+# Calculated using first 3 hex digits of the primary MAC address' MD5 hash
+DELAY=$((0x$(sysconfig primary_mac | tr -d ':' | md5sum | head -c3) * $MAX_WAIT / (16**3)))
+sleep $DELAY
+
 json_init
 json_add_string "hostname" "$(uci get 'system.@system[0].hostname')"