Add wetter-bot.sh
This commit is contained in:
@@ -0,0 +1,66 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -x
|
||||||
|
set -eou pipefail
|
||||||
|
|
||||||
|
logdir="$HOME/.logs/wetter"
|
||||||
|
mkdir -p $logdir
|
||||||
|
log="$logdir/wetter-$(date +%Y-%m-%d_%H:%M).log"
|
||||||
|
exec > >(tee -i ${log}) 2>&1
|
||||||
|
|
||||||
|
# Koordinaten von meinem Zuhause
|
||||||
|
lat=""
|
||||||
|
long=""
|
||||||
|
|
||||||
|
# API-URLs
|
||||||
|
base_url="api.open-meteo.com"
|
||||||
|
api_url="https://${base_url}/v1/forecast/?latitude=${lat}&longitude=${long}&daily=temperature_2m_max¤t=temperature_2m&timezone=Europe%2FBerlin&forecast_days=1"
|
||||||
|
|
||||||
|
# Telegram
|
||||||
|
telegram_token=""
|
||||||
|
CHAT_ID=""
|
||||||
|
|
||||||
|
# Error-Handling
|
||||||
|
handle_error() {
|
||||||
|
MESSAGE="Fehler!"
|
||||||
|
curl -s -X POST https://api.telegram.org/bot${telegram_token}/sendMessage -d chat_id=${CHAT_ID} -d \
|
||||||
|
text="${MESSAGE}" > /dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
trap handle_error ERR
|
||||||
|
|
||||||
|
# Teste Verbindung (10 Versuche)
|
||||||
|
count=0
|
||||||
|
while true; do
|
||||||
|
if ping -c3 -W3 "${base_url}"; then
|
||||||
|
break
|
||||||
|
else
|
||||||
|
if [[ count -ge 10 ]]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
count=$((count + 1))
|
||||||
|
sleep 5
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Hole Temperaturen für heute (10 Versuche)
|
||||||
|
count=0
|
||||||
|
while true; do
|
||||||
|
if curl --connect-timeout 3 "${api_url}" | jq . > /tmp/todays-forecast.json; then
|
||||||
|
break
|
||||||
|
else
|
||||||
|
if [[ count -ge 10 ]]; then
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
count=$((count + 1))
|
||||||
|
sleep 5
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
max_temp=$(cat /tmp/todays-forecast.json | jq '.daily.temperature_2m_max.[]')
|
||||||
|
current_temp=$(cat /tmp/todays-forecast.json | jq '.current.temperature_2m')
|
||||||
|
|
||||||
|
# Sende Nachricht (Linebreak = %0A)
|
||||||
|
MESSAGE="Heute werden es höchsten ${max_temp} °C, aktuell sind es ${current_temp} °C."
|
||||||
|
curl -s -X POST https://api.telegram.org/bot${telegram_token}/sendMessage -d chat_id=${CHAT_ID} -d \
|
||||||
|
text="${MESSAGE}" > /dev/null
|
||||||
Reference in New Issue
Block a user