Перейти к содержанию

Howto: настроить Telegram-бота

1. Создать бота

  1. Открой @BotFather в Telegram.
  2. /newbot → имя → username (должен заканчиваться на _bot).
  3. BotFather пришлёт token вида 12345:AAFrabc... — сохрани.
  4. Найди своего бота, нажми Start.

2. Получить chat_id

Способ А — через @userinfobot: пришлёт твой user_id, который равен chat_id для приватных сообщений.

Способ Б — через API сразу после нажатия Start:

curl https://api.telegram.org/bot<TOKEN>/getUpdates
В ответе ищи "chat":{"id":<number>,...}.

3. Настроить устройство

Web UI → «Интеграции» → Telegram, заполни поля и сохрани.

Через CLI:

curl -u admin:admin123 -X POST \
     -H "Content-Type: application/json" \
     -d '{
       "token": "12345:AAFr...",
       "chat_id": "987654321",
       "chat_bot": "@my_awdc_bot",
       "poll_interval_s": 30,
       "enabled": true,
       "allowed_user_id": "987654321",
       "security_token": "any-secret-string"
     }' \
     http://awdc.local/api/integration/telegram/config

4. Тест

curl -u admin:admin123 -X POST http://awdc.local/api/integration/telegram/test

Должно прийти сообщение «AWDC test» в чат.

5. Команды бота (если включён polling)

Перечень поддерживаемых команд зависит от прошивки. Стандартно:

  • /start <security_token> — авторизация
  • /status — текущий статус каналов
  • /dispense <ch> — принудит. старт
  • /stop <ch> — принудит. стоп

allowed_user_id — whitelist user_id (через запятую), кто может выполнять команды. Без него любой подписчик чата мог бы управлять устройством.

Замечания

  • cursor (offset Telegram-API) хранится в NVS — после reboot бот не потеряет сообщения.
  • При длительном offline в Telegram копится очередь Updates — бот разгребёт её при следующем connect.

См. api/integrations.md.