Сервіс Telegram-ботів для моніторингу наявності електроенергії

Наразі тема моніторинга світла стала дуже актуальною. Вже існує багато рішень, наприклад eping.com.ua або проект Віталія з сусідньої теми.
Хочу поділитися власним сервісом @svitlo_uk_bot (це посилання на один з перших ботів сервісу — зробив його для свого ЖК).

Функціональні особлівості:

  • перевірка наявності світла відбувається через ping (ICMP) або HTTP
  • це SAAS, який підтрімує багато локацій і багато ботів
  • основна ідея — легкий запуск нових локацій/ботів з мінімумом технічних складностей
  • підтримуються функції поточного стану, сповіщення про зміну стану та перегляд статистики

В повідомленнях бота присутнє посилання на інструкцію по запуску власного бота для власної локації — щоб сусіди могли запускати нових ботів (сторінка генерується з Markdown і хоститься на GitHub Pages). Зараз вже підключено близько десяти локацій/ботів, чотири з них більш менш крупні/популярні. Перший бот працює вже 2 місяця і показав себе непогано. Наразі сервісом користуються більше 2000 користувачів.

Стек:

  • NestJS + NX (відповідно TypeScript)
  • Knex + PostgreSQL
  • Fly.io

GitHub репозиторий проекта. Витратив на розробку і запуск сумарно ~40 годин. Сервіс працює на безкоштовному плані fly.io.

Імплементація дуже проста — крон кожну хвилину запускає процес перевірки наявності світла. У разі зміни стану дані зберігаються в БД і запускається сповіщення підписників.

Нещодавно додав статистику за місяць, перше повідомлення було 01 січня — сусіди були задоволені :)

Особлива подяка Włodzimierz Rożkow за ідею SAAS.

👍ПодобаєтьсяСподобалось7
До обраногоВ обраному3
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Трохи офтоп і реклама стороннього проекту: сьогодні випадково знайшов сервіс Svitlobot який працює за інакшим прин2ипом ніж більшість описаних тут на ДОУ: клієнт сам пінгує сервіс за допомогою застосунку на андроід-смартфоні.

Звісно не у всіх є зайвий смартфон, але можливо це може бути зручніше для не-ДОУ юзерів оскільки не треба заглиблюватись в тему статичних адрес чи організації ендпоінту. В теорії такий смартфон можна сконфігурувати та надіслати/віддати в користування людині від якої вимагається лише вміння ввімкнути блок живлення в розетку.

Проект зроблений школярами з ліцею.

Интересное решение.
Я так понимаю интерес был в кастомном поведении/сообщении/etc?
Есть уже готовое решение — uptime-kuma.
Делаёт всё тоже самое, живёт в докер контейнере, огромный зоопарк уведомлений/пингеров

Можливо uptime-kuma можна налаштувати так, щоб виконувалися всі бажані функції.
Але мені ближче і простіше було зробити кастомне рішення.
Та і про uptime-kuma я чесно кажучи не знав. Схоже, інструмент крутий — дякую за наводку.

Підписатись на коментарі