Ще один спосіб відправляти сповіщення про відсутність електропостачання за допомогою ZeroTier та Monit
На доу й поза ним багато украйтівців змагаються у способах отримання сповіщень про відключення світла.
Свій спосіб я описав тут
Його недоліком є певна надлишковість — тут і UPS, і raspberry pi
Подумав, а який простіший спосіб можна для таких цілей?
Можна пінгувати свій публічний IP з певного пристрою, а що коли його немає або роутер має резервне живлення? Тоді потрібно:
- Мати внутрішню мережу між пристроями
- Мати пристрій, який гарантовано буде втрачати електроживлення, але матиме статичний IP у внутрішній мережі
- Зовнішній пристрій, який знаходиться поза межами квартири, має мати доступ до внутрішніх пристроїв
Тут на допомогу приходить ZeroTier — безкоштовна система, що дозволяє створити глобальну внутрішню мережу без білої IP адреси.
Тож мережа виглядає так:
- VPS на одному з хостерів закордоном, можна брати найдешевший варіант, навіть без білої IP. На VPS потрібно встановити один з linux дистрибутивів
- Роутер з підтримкою ZeroTier (наприклад Mikrotik або OpenWRT-based) або мікрокомп’ютер, на який встановити ZeroTier
- Пристрій у внутрішній мережі, який гарантовано вимикається при зникненні електрики. Телевізор, tv-box, wifi-лампочка — все, що має IP адресу.
Для доступу до пристрою (3) потрібно налаштувати маршрути в ZeroTier мережі (описано тут zerotier.atlassian.net/...ier and Physical Networks )
На VPS потрібно становити безкоштовну систему моніторингу, наприклад monit
Так як VPS тепер має доступ до внутрішніх пристроїв, правило можна налаштувати так
check host homeserver with address 10.10.0.10
if failed ping then exec /etc/monit/sendnoconnection
else if succeeded then exec /etc/monit/sendconnectionrestored
Потрібно створити два bash скрипти, в яких і відправляти сповіщення
/etc/monit/sendnoconnection
Для сповіщень у телеграм, підійде такий
source /etc/monit/bot.secret
CHATID=-10000020220224
MESSAGEURL="
https://api.telegram.org/bot$
{TOKEN}/sendMessage?chat_id=${CHATID}"
curl -s -X POST $MESSAGEURL -d chat_id=$CHATID -d text="$MESSAGE" -d disable_notification=true
Якщо у вас немає резервного живлення на роутері, то у схемі вистачить VPS і роутера, без додаткового пристрою.
Немає коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів