aboutsummaryrefslogtreecommitdiff
path: root/power-watch.sh
blob: 5ed82976a06149bc817e0b1a10af85c031a51996 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/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