Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 5
×

Як моніторити наявність світла, коли провайдер не пропускає запити до роутера

Всім привіт.

Рішень для моніторингу вже перелічена ціла купа, але вони всі спираються на можливість зовнішнього доступу до домашньої мережі. В мене провайдер такого доступу не надає — навіть при відомому зовнішньому IP (який можна, наприклад, записати з роутера на Cloudflare), все одно запити до цього IP не проходять до роутера.

Недовго думаючи, прийшов до рішення, де не моніторинг питає роутер, а навпаки — роутер каже моніторингу, що він живий, а система моніторинга періодично перевіряє наявність свіжих пінгів та повідомляє мені, якщо їх немає. Спочатку накрутив своє рішення з Firebase. Firebase — хороша платформа для простих проєктів, бо там безплатно надають як http-функцій, так і базу та планувальник завдань.

(Зазначу, що проблема в пінгах з роутера в тому, що там обмежене середовище, як за наявністю бібліотек, так і банально за обсягом вільного місця. Тому, наприклад, закидувати метрику у AWS Cloudwatch мене не влаштовувало — для цього потрібно писати більш складний клієнт. Хотілося щось таке, щоб отримувало пінг найпростішим HTTP запитом, який легко виконується командою wget або curl.)

Поки я шукав аналоги та мріяв про монетизацію свого рішення, підказали сервіс, що вже вирішує поставлену задачу — Healthchecks.io. Власне, він робить саме те, що я хотів — збирає пінги, та повідомляє, коли вони перестають. Пінги відправляються звичайнісіньким GET запитом. Повідомлення уходять у різноманітні сервіси, проміж яких і пошта, і Slack, і навіть вебхуки. Сервіс безкоштовний (я з ним ніяк не повʼязаний.)

Від вас залишається додати до роутера Cron-скрипт, який відправлятиме пінги. (Якщо роутер такого не дозволить, то можна робити пінги з компʼютера, але ж тоді компʼютер треба тримати увімкненим.)

Така система працює просто ідеально та спростила для мене комунікацію з командою — бо повідомити, що в тебе немає звʼязку, коли в тебе немає звʼязку — проблема-парадокс. (До речі, у мене до Healthchecks.io підключений не Slack напряму, а за допомогою вебхуків сервіс IFTTT, який вже відправляє у командний Slack більш красиві повідомлення.)

👍ПодобаєтьсяСподобалось3
До обраногоВ обраному1
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

Рішення, що засновано не на пінгах і без використання зовнішніх сервісів. Лише роутер. dou.ua/forums/topic/41409

Важче, коли генератор працює i не знаєш, що вже є свiтло. Поки смикаю зовнiшнiй WiFi або дзвонить сусiд якого зайобує тарахтiння мого гени :)

Як варіант — у мене стоїть ДБЖ з зовнішніми акумуляторами. Статус ДБЖ раз на хвилину вичітує скрипт на Python, що крутиться на Raspbery Pi Zero 2 (2к грн і можна моніторити будь-що, значно краще використання старого смартфону для цього). Інтернет з двома провайдерами — відносно енернонезалежний, тож я і моя родина бачить у загальному чаті повідомлення від бота про зміну статуса ДБЖ та заряду акуумулятора.

Звісно, якщо обидва провайдери будуть недоступні, то бот нічого не відправить. Але в цьому випадку, скоріше за все, працювати вдома все одно неможна ;) Бо то або тотальний блекаут, або щось подібне.

Raspbery Pi Zero 2 (2к грн

WAT? Він же 10 доларів мав коштувати.

На офіційному сайті — 15 баксів.
www.raspberrypi.com/...​ts/raspberry-pi-zero-2-w
тобто 550 грн заофіційним курсом, але я щось там не бачу доставки в Україну... А в нас:
evo.net.ua/...​er-raspberry-pi-zero-2-w

Це все цікаво, але як зрозуміти, що світло увімкнули коли ти сидиш на резервному живлені і пора перемкнутись )?

Парсити вайбер-чатик сусідів. Написати доя цього ШІ.

Рішень для моніторингу вже перелічена ціла купа, але вони всі спираються на можливість зовнішнього доступу до
домашньої мережі.

Не всі
dou.ua/forums/topic/41194

всі рішення, прив’язані до роутера, мають недолік — вони прив’язані до роутера) і не працюють, якщо інтернет енергонезалежний (будь то pon чи ethernet з батареями). тому, власне я зробив систему, де окремий мікроконтроллер (живиться від розетки) посилає http запити в клауд

Кажуть ще Wi-Fi смарт розетка підійде якщо треба просто дізнатись чи є світло ) В мене наприклад дуже часто нотифікаціі взагалі вимкнені на телефоні, тому навіть якщо прийде пуш то не побачу доки спеціально не захочу перевірити що там зі світлом в телеграм боті )

Найбільш простий варіант — будь-який старий мобільний телефон з Android, зарядка, програма на зразок Macrodroid. Телефон підключається на зарядку і вмикається в розетку, простий скріпт повідомляє коли зарядка починається чи відключається від зовнішнього джерела. Це може бути, наприклад, http запит на вебхук, чи sms. Sim карта «для пристроїв»
від Київстар за 1 грн в день робить цю систему незалежною від роутера та стаціонарного інтернету.

Юзаю Heartbeat.sh, грошей не просить.

curl -X POST 'https://{subdomain}.heartbeat.sh/beat/{name}'

Вставив в мікротік в розклад скріпт
 /tool fetch http-method=post url="https://myheartbeat.heartbeat.sh/beat/RR4" 

Можна в одному місці моніторити декілька пристроїв.

Але з роботом пилососом зручніше :)

А ще робот-пилосос звітує :)

Маю маршрутизатор Xiaomi MI Router 4A. Є зручний додаток через який зручно моніторити наявність (чи відсутність світла).
Хоча це не завжди кейс, бо якщо немає інтернету (наприклад через поломку в провайдера), а світло по факту є — то про це віддалено недізнатись.
Хіба запитати в чаті ОСББ 😂

Є найбільш проста опція, навіть з вбудованими нотіфікаціями, коли світло зникло і коли з’явилось — поставити Ajax )
Достатньо одного хабу, але датчики з власного досвіду також корисні )
Доречі буде працювати як коли у вас оптика в квартиру, і роутер завжди в мережі, так і коли роутер не працює, коли нема світла чи нема інету у провайдера (там встановлена бекап 3g sim карта)

Також є найбільш дешевий і швидкий варіант — купити розумну вайфай розетку чи лампочку чи камеру, наприклад TPLink Tapo — по-перше це зручно )
А по-друге завжди можно зайти в застосунок і глянути — девайс активний (є світло і в мережі) чи ні :)

Також моніторю через ajax. Дуже зручно. А коли світло вимикають, а я все ще вдома і кудись збираюсь , то роутер на павербенк кидаю. Тоді можно і через сімкарту і через інет відстежувати

Для власників Keenetic є опція на keenetic.cloud
My network > Events
Там можна налаштувати URL який смикнути коли роутер стає online чи offline.

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