Usage
Alarm Pipeline
Add a Notification Block with a Telegram profile in your Alarm Pipeline.
Notification Block Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| Message | Expression | See below | Content of the message to send |
| Throttled Message | Expression | See below | Message when multiple alarm events are batched |
| Acknowledge | Boolean | false | Add inline button for alarm acknowledgment |
| Test Mode | Boolean | false | Log messages instead of sending (for debugging) |
Message Templates
Expression Syntax
Message fields support Ignition's expression syntax, allowing dynamic content based on alarm properties.
Default Message:
At {eventTime|hh:mm:ss}, alarm "{name}" at "{displayPath}" transitioned to {eventState}.
Default Throttled Message:
{alarmEvents.Count} alarm events have occurred.
Available Variables
| Variable | Description | Example |
|---|---|---|
{name} | Alarm name | High Temperature |
{displayPath} | Alarm source path | Furnace/Zone1/TempSensor |
{eventTime|format} | Event timestamp with format | {eventTime|hh:mm:ss} |
{eventState} | Alarm state | Active, Cleared, Acknowledged |
{alarmEvents.Count} | Number of throttled events | 5 |
{priority} | Alarm priority | High, Medium, Low |
{label} | Alarm label | Temperature Alarm |
HTML Formatting
Telegram messages support HTML formatting:
<b>ALARM:</b> {name}
<i>Path:</i> {displayPath}
<code>State: {eventState}</code>
Supported tags: <b>, <i>, <u>, <s>, <code>, <pre>, <a href="...">
Message Examples
Simple notification:
ALARM: {name} is {eventState} at {eventTime|HH:mm}
Formatted notification:
<b>[{priority}]</b> {name}
<i>{displayPath}</i>
State: <code>{eventState}</code>
Time: {eventTime|yyyy-MM-dd HH:mm:ss}
Interactive Acknowledgment
When Acknowledge is enabled, an inline button is added to each notification message.
How It Works
- User receives Telegram message with "Acknowledge" button
- User taps the button
- The module acknowledges the alarm in Ignition
- The button updates to show "Acknowledged by [username]"
- A popup confirms the action
Acknowledgment Details
- Buttons remain active for 24 hours after notification
- The acknowledging user is recorded in Ignition's alarm journal
- Only single-alarm notifications show the acknowledgment button (not throttled messages)
- No webhook configuration required - uses long-polling
Throttled Notifications
When multiple alarms trigger in quick succession:
- Alarms are consolidated into a single message
- The Throttled Message template is used
- Acknowledgment buttons are not shown for throttled messages
- Use
{alarmEvents.Count}to show the number of events
Test Mode
Enable Test Mode to validate your configuration without sending actual messages.
Behavior in test mode:
- Messages are logged to the gateway console
- No Telegram API calls are made
- Useful for debugging message templates
Log output example:
THIS PROFILE IS RUNNING IN TEST MODE. The following WOULD have been sent:
Message: ALARM: High Temperature is Active at 14:32:15
With Acknowledgment Button: true
Audit Logging
When an audit profile is configured, all notification events are logged.
Logged information:
- Action: "Telegram Message"
- Actor: Ignition username receiving the notification
- Target: Alarm event path with ID
- Value: "SUCCESS" or "FAILURE"
- Timestamp
Troubleshooting
| Issue | Possible Cause | Solution |
|---|---|---|
| Messages not received | Invalid Chat ID | Verify Chat ID in user contact info |
| Messages not received | Bot not started | User must send /start to the bot first |
| Messages not received | Test mode enabled | Disable Test Mode in notification block |
| Acknowledgment not working | Button expired | Buttons expire after 24 hours |
| Acknowledgment not working | Poller stopped | Check gateway logs for errors |
| HTML not rendering | Invalid tags | Use only supported HTML tags |
Best Practices
- Test first - Use Test Mode to validate templates before going live
- Start the bot - Ensure all users have started a conversation with the bot
- Use groups wisely - For team notifications, create a dedicated Telegram group
- Enable auditing - Configure an audit profile for compliance and troubleshooting
- Keep messages concise - Telegram has a 4096 character limit per message
- Use HTML sparingly - Complex formatting may not render on all clients