[Украина][Киев][Unix] График отключений напруги

(Писал об этом в декабре 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 можно было наладить чтобы нотификации выскакивали, когда будут отключения по заданному адресу. Причем, они выскакивали аккурат после того, как напругу уже вырубили или врубили, через пару минут. Почему-то вспомнилось -- когда-то очень давно, видел в Тернополе в центре города озерцо. И там на берегу, на каких-то плитах, была надпись вроде "купаться строго запрещено". И эта надпись почему-то была развернута внутрь озера, т.е., в сторону купающихся.

Еще один мой пост на тему напруги в Киеве.

(the post first published at 20240717.)


List of my other blog posts.

Subscribe to my news feed,

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.