Optimierung von A72_alarm_getter.sh

- Entfernen des nicht benötigten Ping-Tests in der check_ip-Funktion.
- Kommentieren des Codes zum Löschen überholter 'at'-Jobs, da er derzeit auskommentiert ist (Muss ich mich ein anderes mal drum kümmern).
This commit is contained in:
Ratatoskr 2023-12-28 20:33:37 +01:00
parent 426cbc55e5
commit 9dfa7f7623
Signed by: Ratatoskr
GPG Key ID: 28B77439A6D78F4E

View File

@ -26,45 +26,43 @@ delete_expired_at_jobs() {
echo "Keine überholten 'at'-Jobs gefunden." echo "Keine überholten 'at'-Jobs gefunden."
fi fi
# Behalte nur den nächsten 'at'-Job und lösche alle zukünftigen Jobs ## Behalte nur den nächsten 'at'-Job und lösche alle zukünftigen Jobs
next_job_id=$(/usr/bin/atq | awk '{print $1}' | sort -n | head -n 1) #next_job_id=$(/usr/bin/atq | awk '{print $1}' | sort -n | head -n 1)
if [ -n "$next_job_id" ]; then #if [ -n "$next_job_id" ]; then
/usr/bin/atrm $(/usr/bin/atq | awk -v next_job_id="$next_job_id" '$1 > next_job_id {print $1}') #/usr/bin/atrm $(/usr/bin/atq | awk -v next_job_id="$next_job_id" '$1 > next_job_id {print $1}')
echo "Nur der nächste 'at'-Job bleibt erhalten: $next_job_id" #echo "Nur der nächste 'at'-Job bleibt erhalten: $next_job_id"
else #else
echo "Keine 'at'-Jobs gefunden." #echo "Keine 'at'-Jobs gefunden."
fi #fi
} }
# Verwende die Funktion, um überholte Jobs zu löschen # Verwende die Funktion, um überholte Jobs zu löschen
delete_expired_at_jobs delete_expired_at_jobs
# Die IP-Adresse von Lisas-IPhone holen und Ping-Test durchführen # Die IP-Adresse von Lisas-IPhone holen (ohne Ping-Test)
check_ip() { check_ip() {
mac_address="e4:cd:d1" # Ersetze dies durch die MAC-Adresse mac_address="e4:cd:d1" # Ersetze dies durch die MAC-Adresse
A72_ip=$(arp-scan -r 5 -v --localnet | grep "$mac_address" | awk '{print $1}') attempts=10
interval=5
if [ -z "$A72_ip" ]; then for ((i = 1; i <= $attempts; i++)); do
echo "IP nicht gefunden. Ziel ist nicht erreichbar." A72_ip=$(arp-scan -r 5 -v --localnet | grep "$mac_address" | awk '{print $1}')
return 1
fi
echo "Gefundene IP: $A72_ip" if [ -n "$A72_ip" ]; then
echo "Gefundene IP: $A72_ip"
return 0 # Erfolg: IP-Adresse gefunden
fi
# Ping-Test durchführen if [ $i -lt $attempts ]; then
echo "teste ping $A72_ip" echo "Warte $interval Sekunden, bevor der nächste Versuch gestartet wird."
local ping_output=$(/bin/ping -q -w 3 -c 3 $A72_ip 2>&1) sleep $interval
local ping_exit_code=$? fi
done
echo "$ping_output" # Ausgabe des Ping-Befehls anzeigen # Alle Versuche erfolglos
echo "Das Ziel konnte nach $attempts Versuchen nicht erreicht werden."
if [ $ping_exit_code -eq 0 ] && [[ "$ping_output" == *"3 received"* ]]; then iobroker state set zigbee.0.04cd15fffee03198.state false
echo "Das Ziel ist erreichbar." return 1 # Fehler: IP-Adresse nicht gefunden
return 0 # Erfolg: Das Ziel ist erreichbar
else
echo "Das Ziel ist nicht erreichbar. Exit Code: $ping_exit_code"
return 1 # Fehler: Das Ziel ist nicht erreichbar
fi
} }
# check_ip -Funktion ausführen. # check_ip -Funktion ausführen.