Итоговый проект

Вы создали бота и научили его отправлять сообщения. Через API вы научились запрашивать из кода статус домашки за нужный период. Теперь соберите эти сервисы в один — и у вас получится бот-информатор.
Для полного понимания картины нужно познакомиться понятием Polling (англ. «опрос»).
Статус домашки может измениться в любой момент, и поэтому одного запроса к API будет недостаточно. Нужно, чтобы бот постоянно бомбил сервер вопросами: «Что там с домашкой, ещё не проверили? ... А сейчас? ... А теперь?», регулярно отправляя запросы к API.
Если бот будет слишком назойлив, например, будет дёргать сервер каждую минуту, это может не понравиться серверу (как будто у него нет других дел), и он забанит назойливого бота. Поэтому нужно соблюдать приличия и интересоваться деликатно, скажем, раз в 10 минут.
Механизм Polling'а вам предстоит придумать самостоятельно.

Отправляем бота жить на сервер

При выключении вашего компьютера бот станет недоступен. Хорошо бы переселить его на какой-то компьютер, который никогда не спит. Такие компьютеры называют «веб-серверы», а размещение своих проектов на веб-серверах называют «услугой хостинга» или просто «хостингом». И за эту услугу не всегда берут деньги.
Where to host Telegram Bots — это список сервисов, где можно захостить своего питомца.
В этом уроке мы поселим бота на бесплатный сервис Heroku.

Как разместить бота на Heroku

  1. Зарегистрируйтесь на Heroku.
  2. Создайте приложение (кнопка NewCreate new app).
image
Вас попросят придумать название для приложения и выбрать регион. Укажите географически близкий к вам регион: даже в интернете физические расстояния имеют значение.
  1. Теперь нужно привязать аккаунт на GithHub: зайдите в раздел Deploy, выберите GitHub в разделе Deployment method и нажмите Connect to GitHub.
image
После подтверждения действия (вас попросят ввести пароль), введите название репозитория, в котором находится код:
image
Осталось только нажать кнопку Deploy Branch. Heroku установит все зависимости и запустит приложение на сервере.
Имейте в виду: чтобы всё завелось, нужно поместить в репозиторий два служебных файла: requirements.txt со списком зависимостей, чтобы Heroku знал, какие пакеты ему нужно установить, и файл Procfile, в котором указана точка входа — имя файла, который должен быть запущен. Более подробно читайте в документации.
Здесь доступен пример размещения проекта на Heroku, прочтите его, и картина прояснится.
image
Теперь нужно передать на сервер переменные окружения. Откройте вкладку Settings и спуститесь до Config Vars. Нажмите Reveal Config Vars и добавьте поочередно ключ и значение для каждой переменной.
Теперь ваш бот будет работать круглые сутки, даже без перерыва на обед.
Обратите внимание на ограничения бесплатного аккаунта Heroku: между запросами не должно быть более получаса, иначе сервер «уснёт». Опрашивайте API домашек раз в 20 минут или около того.