power-watch/power-watch.sh

34 lines
729 B
Bash

#!/bin/bash
BOT_TOKEN="<BOT_TOKEN>"
CHAT_ID="<CHAT_ID>"
STATE_FILE="/tmp/power_state"
POWER=$(upower -i $(upower -e | grep BAT) | grep "state:" | awk '{print $2}')
# First run
if [ ! -f "$STATE_FILE" ]; then
echo "$POWER" > "$STATE_FILE"
exit 0
fi
LAST=$(cat "$STATE_FILE")
# If power state changed
if [ "$POWER" != "$LAST" ]; then
echo "$POWER" > "$STATE_FILE"
if [ "$POWER" = "discharging" ]; then
MSG="⚠️ Homelab running on BATTERY!
Switching off heavy services recommended."
else
MSG="🔌 Power restored — running on AC"
fi
curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \
-d chat_id="$CHAT_ID" \
-d text="$MSG" > /dev/null
fi