(Писал об этом в декабре 2022. Теперь снова приходится.)
А если лень ходить на сайт ДТЕК, как мне...
4 часа нет напруги. 3 часа - не ясно. 2 часа - есть точно. Период - 9 часов.
#!/usr/bin/env bash
# adjust this:
blackout_start=$(date -d '2024-07-15 00:00:00 EEST' +%s)
entries_to_print=10 # approx
# 24h. https://unix.stackexchange.com/questions/553679/set-clock-to-24-hour-format-for-all-users
LC_TIME=en_GB.UTF-8
# 4 hours - blackout
# 3 hours - maybe blackout
# 2 hours - power
SECONDS_IN_HOUR=3600
SECONDS_IN_2_HOURS=$(($SECONDS_IN_HOUR * 2))
SECONDS_IN_3_HOURS=$(($SECONDS_IN_HOUR * 3))
SECONDS_IN_4_HOURS=$(($SECONDS_IN_HOUR * 4))
SECONDS_IN_6_HOURS=$(($SECONDS_IN_HOUR * 6))
date_fmt=+"%a_%d_%b_%H:%M"
NOW=$(date +%s)
entries_printed=0
while true
do
maybe=$(($blackout_start+$SECONDS_IN_4_HOURS))
power_on=$(($maybe+$SECONDS_IN_3_HOURS))
if (($NOW-$SECONDS_IN_6_HOURS < $blackout_start)); then
if (($NOW > $blackout_start)) && (($NOW < (($blackout_start+$SECONDS_IN_4_HOURS)))); then
echo -ne "(now) "
else
echo -ne " "
fi
echo -ne "blackout: "
date -d @$blackout_start $date_fmt
((entries_printed++))
fi
if (($NOW-$SECONDS_IN_6_HOURS < $maybe)); then
if (($NOW > $maybe)) && (($NOW < (($maybe+$SECONDS_IN_3_HOURS)))); then
echo -ne "(now) "
else
echo -ne " "
fi
echo -ne "maybe power on: "
date -d @$maybe $date_fmt
((entries_printed++))
fi
if (($NOW-$SECONDS_IN_6_HOURS < $power_on)); then
if (($NOW > $power_on)) && (($NOW < (($power_on+$SECONDS_IN_2_HOURS)))); then
echo -ne "(now) "
else
echo -ne " "
fi
echo -ne "power on: "
date -d @$power_on $date_fmt
((entries_printed++))
fi
blackout_start=$(echo $power_on+2*$SECONDS_IN_HOUR | bc)
if [ $entries_printed -gt $entries_to_print ]; then
exit
fi
done
power on: Wed_17_Jul_22:00
(now) blackout: Thu_18_Jul_00:00
maybe power on: Thu_18_Jul_04:00
power on: Thu_18_Jul_07:00
blackout: Thu_18_Jul_09:00
maybe power on: Thu_18_Jul_13:00
power on: Thu_18_Jul_16:00
blackout: Thu_18_Jul_18:00
maybe power on: Thu_18_Jul_22:00
power on: Fri_19_Jul_01:00
blackout: Fri_19_Jul_03:00
maybe power on: Fri_19_Jul_07:00
power on: Fri_19_Jul_10:00
Ну не красота? Хардкорные юниксоиды могут сделать себе напоминания в шелле...
В качестве бонуса -- сей скрипт можно запускать из-под termux-а в андроиде, что в наши времена оч. полезно -- с отключениями света и нестабильным моблоинетом. И не надо сочинять "приложение" под андроид.
И надо не забывать -- графики иногда сдвигают как попало. Иногда всё-таки приходится ходить на сайт dtek и корректировать этот скрипт.
А еще пару месяцев назад в "приложении" Kyiv Digital можно было наладить чтобы нотификации выскакивали, когда будут отключения по заданному адресу. Причем, они выскакивали аккурат после того, как напругу уже вырубили или врубили, через пару минут. Почему-то вспомнилось -- когда-то очень давно, видел в Тернополе в центре города озерцо. И там на берегу, на каких-то плитах, была надпись вроде "купаться строго запрещено". И эта надпись почему-то была развернута внутрь озера, т.е., в сторону купающихся.
Еще один мой пост на тему напруги в Киеве.

Yes, I know about these lousy Disqus ads. Please use adblocker. I would consider to subscribe to 'pro' version of Disqus if the signal/noise ratio in comments would be good enough.