Feat: Unterschiedliche Anzahl der Ping-Versuche vor und nach WOL-Signal.

This commit is contained in:
DragonSlayer_14 2025-03-05 10:20:54 +01:00
parent 8cc72b10bc
commit cc8b337987

View File

@ -6,21 +6,27 @@ source "$SCRIPT_DIR/NetworkCheck.sh"
source "$SCRIPT_DIR/Log.sh" source "$SCRIPT_DIR/Log.sh"
# === KONFIGURATION === # === KONFIGURATION ===
PING_RETRIES=5 # Anzahl der PING-Versuche vor WOL PING_RETRIES_BEFORE_WOL=1 # Anzahl der PING-Versuche vor dem WOL-Signal
WOL_RETRIES=5 # Max. Anzahl der WOL-Versuche PING_RETRIES_AFTER_WOL=10 # Anzahl der PING-Versuche nach dem WOL-Signal
PING_WAIT=10 # Wartezeit nach jedem Ping (Sekunden)
WOL_RETRIES=2 # Max. Anzahl der WOL-Versuche
WOL_WAIT=60 # Wartezeit nach WOL (Sekunden) WOL_WAIT=60 # Wartezeit nach WOL (Sekunden)
# === FUNKTIONEN === # === FUNKTIONEN ===
is_reachable() { is_reachable() {
local device_ip="$1" local device_ip="$1"
for ((i = 1; i<=PING_RETRIES; i++)); do local max_retries="$2" # Zweiter Parameter gibt die Anzahl der Versuche an
log "Teste Erreichbarkeit von $device_ip - Versuch $i/$PING_RETRIES..."
for ((i = 1; i<=max_retries; i++)); do
log "Teste Erreichbarkeit von $device_ip - Versuch $i/$max_retries..."
if ping -c 1 -W 2 "$device_ip" &>/dev/null; then if ping -c 1 -W 2 "$device_ip" &>/dev/null; then
log "Gerät $device_ip ist erreichbar." log "Gerät $device_ip ist erreichbar."
return 0 return 0
fi fi
sleep "$PING_WAIT"
done done
log "Gerät $device_ip ist NICHT erreichbar." log "Gerät $device_ip ist NICHT erreichbar."
return 1 return 1
} }
@ -51,7 +57,7 @@ wake_device() {
wait_for_internet_connection wait_for_internet_connection
if is_reachable "$device_ip"; then if is_reachable "$device_ip" "$PING_RETRIES_BEFORE_WOL"; then
log "Gerät ist bereits an, kein WOL nötig." log "Gerät ist bereits an, kein WOL nötig."
return 0 return 0
fi fi
@ -64,7 +70,7 @@ wake_device() {
log "Warte $WOL_WAIT Sekunden..." log "Warte $WOL_WAIT Sekunden..."
sleep "$WOL_WAIT" sleep "$WOL_WAIT"
if is_reachable "$device_ip"; then if is_reachable "$device_ip" "$PING_RETRIES_AFTER_WOL"; then
log "Gerät ist jetzt erreichbar!" log "Gerät ist jetzt erreichbar!"
return 0 return 0
fi fi