Telegram-бот для управления IoT-устройствами через Nostr relay.
Подписывает команды (kind:8012), отслеживает телеметрию (kind:8010),
генерирует графики и рассылает push-уведомления.
ESP32 ──WSS──→ Nostr Relay ←──poll 20s──→ SNIN Bot ──→ Telegram
│
├── /telemetry
├── /cmd <device> <action>
├── /chart temp 24
└── /watch <device>
# 1. Установить зависимости
pip install -r requirements.txt
# 2. Создать бота у @BotFather → получить токен
# 3. Настроить
cp .env.example .env
# Заполнить SNIN_BOT_TOKEN, SNIN_BOT_ADMINS
# 4. Запустить
export $(grep -v '^#' .env | xargs)
python3 bot.py| Переменная | По умолчанию | Описание |
|---|---|---|
SNIN_BOT_TOKEN |
— | Telegram Bot Token (обязательно) |
SNIN_BOT_ADMINS |
— | ID админов через запятую |
SNIN_NOSTR_KEY |
— | Приватный ключ Nostr для подписи kind:8012 |
SNIN_RELAY_API |
https://relay-snin.v2.site |
REST API relay |
SNIN_RELAY_WS |
wss://relay-snin.v2.site |
WebSocket relay |
SNIN_DASH_API |
https://cryter-dash.v2.site |
Dashboard API |
SNIN_BOT_URL |
http://localhost:9906 |
URL для Webhook |
SNIN_BOT_DATA |
./data.json |
Файл хранения подписок |
PORT |
9906 |
HTTP порт |
| Команда | Описание |
|---|---|
/relay |
Статус релея |
/telemetry |
Текущие телеметрии |
/chart temp 24 |
График температуры |
/chart alerts 24 |
Гистограмма алертов |
/cmd <device> <action> |
Команда устройству (kind:8012) |
/subkind <kind> |
Подписка на события kind |
/watchdev <device> |
Все события устройства |
/sub |
Push-алерты |
snin-bot/
├── bot.py — Telegram gateway (Flask + webhook)
├── chart_gen.py — Генератор графиков (matplotlib → PNG)
├── signer.py — Nostr BIP-340 signer
├── requirements.txt
├── .env.example
└── README.md
snin(github.com/konantgit-sys/snin) — протокол NIP-80relay-v2(github.com/konantgit-sys/relay-v2) — Nostr relay
MIT