Back to blogEmbedded Systems

ESP32 Telegram Bot for Real-Time Device Alerts and Control

5 min read·Aug 2026

Integrating an ESP32 Telegram bot creates a secure, zero-cost notification and remote control interface without developing dedicated mobile apps. By interacting directly with Telegram's HTTPS Bot API, an ESP32 can send push notifications for sensor alarms and receive authenticated commands from authorized chat users.

1. Creating a bot token via BotFather

Open Telegram, search for @BotFather, and issue the /newbot command. Follow the setup prompts to obtain your unique API Bot Token. Next, use @userinfobot to retrieve your personal Telegram Chat ID, which acts as the security whitelist for command authentication.

2. Using UniversalTelegramBot with WiFiClientSecure

The ESP32 communicates with Telegram over HTTPS (port 443). Deploy the UniversalTelegramBot library paired with WiFiClientSecure:

  • Set root CA certificates or use client.setInsecure() for rapid prototyping.
  • Poll for incoming messages using non-blocking interval timers: bot.getUpdates(bot.last_message_received + 1).
  • Send instant push notifications using bot.sendMessage(CHAT_ID, "⚠️ Intrusion Detected!", "").

3. Implementing secure command whitelisting

Always verify the sender's from_id against your stored Chat ID before executing hardware commands (e.g., /relay_on or /status). Reject unauthorized messages automatically to prevent unauthorized access. For alternative wireless approaches, explore our guide on ESP32 vs ESP8266 development[cite: 1].

4. Managing memory overhead during SSL handshakes

TLS/SSL handshakes consume significant SRAM (30 KB to 40 KB). Ensure your firmware allocates sufficient heap memory, and run Telegram polling on a dedicated FreeRTOS background task to prevent timing conflicts with local sensors.

When to get help

If you'd rather have this handled directly, see our Custom IoT Notification & Control Services for scope and turnaround times.