Устройство (роутер) может оправлять оповещения и получать команды прямо к вам в месенджер или на электронную почту.
Как отправить почту смотрите в статье про SMTP клиенты.
Получение писем с командами возможно с помощью SMTP сервера, например postfix (популярный но сложный в настройке) или E-MailRelay и с помощью своих скриптов можно обрабатывать команды.
Но в целом почтовый сервер использовать проблематично из-за множества ограничений: ему нужен статический адрес, провайдеры интернета часто блокируют 25тый порт SMTP, много спама и проблема с DDoS.
Наиболее вменяемый и часто используемуй способ. У Телеграмма роскошное АПИ для ботов с которым удобно работать через простое HTTP API с долгим ожиданием (long pooling). Например чтобы боту отправить сообщение достаточно отправить POST запрос:
TOKEN="токен вашего бота" CHAT_ID="id чата между пользователем и ботом" MSG="сообщение" wget -q -O - --post-data="chat_id=$CHAT_ID&text=$MSG" "https://api.telegram.org/bot$TOKEN/sendMessage"
Если интересно разобраться читайте Простой телеграмм бот на sh, или ещё одно применение старому роутеру.
Есть уже готовый бот alexwbaule/telegramopenwrt использующий curl (установите с помощью opkg update; opkg install curl) с множеством команд:
Есть ещё один бот https://github.com/varakh/tlgbot. Он посвежее и русифицированный но он зачем-то использует bash (который ещё устанавливать нужно) и функционал скромнее.
Важно понимать что бот всё же ограничен в том что он может делать. Сквозного шифрования при этом нет, если кто-то взломает ваш Телеграмм он может вам попортить роутер и жизнь.
XMPP (Jabber) плохо поддерживается но это потенциально самый безопасный способ. Вы можете установить Prosody XMPP серве и с небольшыми скриптами на Луа использовать его и как клиент.
Есть sendxmpp скрипт на perl чтобы отправлять сообщения по xmpp, похожий на sendmail. Чтобы отправлять сообщения через HTTP API с помощью wget или curl вы можете установить плагин REST API на ваш XMPP server (mod_http_rest для Prosody). Возможно XEP-0124 BOSH позволяет отправлять так сообщения.
UnifiedPush это открытая спецификация и инструменты которые позволяют пользователю выбрать как пуш оповещения будут доставляться. Его поддерживают различные приложения:
Пример скрипта для отправки пуш нотификаций через ntfy.sh в очередь example (вам следует создать свою личную очередь):
NTFY_QUEUE="example" NEW_CLIENT_IP="192.168.1.42" MSG="Someone joined network A new client with IP $NEW_CLIENT_IP joined. Please check if it's not an intruder." wget -q -O - "ntfy.sh/$NTFY_QUEUE" \ --header "Priority: urgent" \ --header "Tags: ghost" \ --header "Click: http://192.168.1.1/" \ --header "Actions: http, Open Luci, https://192.168.1.1/cgi-bin/ntfy-action.cgi?block=$NEW_CLIENT_IP, clear=true" \ --header "Email: root@OpenWrt" \ --post-data="$MSG"
ВНИМАНИЕ: опция --header была добавлена в uclient-fetch только в июле 2024 поэтому если вы желаете использовать расширенные свойства вам следует установить пакет wget-ssl.