Skip to content
Stand with Ukraine flag

Alarms Table

The Alarms table widget displays a real-time list of alarms for your entities in a tabular format. Each row shows the alarm’s originator, type, severity, status, and assignee. The table updates automatically as alarms are created, acknowledged, cleared, or assigned — making it the primary tool for alarm monitoring on ThingsBoard dashboards.

  • Monitor alarms from a single device or across multiple entities simultaneously using an entity alias.
  • Filter by status, severity, type, or assignee — filters can be combined.
  • Per-row controls: acknowledge, clear, and assign alarms directly from the table without leaving the dashboard.
  • Configurable columns: add, remove, reorder, and apply custom JS cell style or content functions.
  • Propagated alarm support: child entity alarms (like a device alarm surfacing on its parent asset) can be included.
  • Toolbar controls: search, alarm filter, column visibility toggle, data export, and fullscreen.
  1. In dashboard edit mode, click Add widget in the top toolbar, or click the Add new widget icon in the center of an empty dashboard.
  2. In the widget bundle selection dialog, find and click Alarm widgets.
  3. Select the Alarms table widget.
  4. Configure the alarm source, filters, and appearance, then click Add.

All settings in this section use Basic mode — a quick-start configuration covering the essentials. For finer widget controls like title font, card style, and tooltip, switch to the Advanced tab.

Set the time range for which alarms are displayed, like Realtime – last 30 days or a fixed date interval. A widget can use its own time window or inherit the dashboard’s global value. Learn more in the Time Window guide.

Select the entity or alias that alarms are loaded from:

  • Device — a specific device; shows only alarms originating from this device.
  • Entity alias — a set of entities matched by an entity alias; use this to monitor alarms across multiple devices or assets at once.

The Filter section controls which alarms appear in the table. Multiple criteria can be combined.

FilterDescription
Alarm status listShow only alarms with the selected statuses: Active, Cleared, Acknowledged, Unacknowledged.
Alarm severity listShow only alarms at the selected severity levels: Critical, Major, Minor, Warning, Indeterminate.
Alarm type listRestrict display to selected alarm types, like High temperature or Device offline. The list is populated from alarm types present in the system.
AssigneeShow only alarms assigned to a specific user.
Search propagated alarmsWhen enabled, includes alarms propagated from child entities, like a device alarm surfacing on its parent asset.

The Columns section defines the alarm fields shown as table columns. Default columns are: Created time, Originator, Type, Severity, Status, and Assignee.

Each column entry has a key (the alarm field name) and a label (the column header text). Reorder columns by dragging, remove them with the delete icon, and add new ones with Add column.

Click the gear icon on a column to open the Data key configuration dialog.

General — set the field key and the column header label.

Advanced — fine-tune column behavior:

SettingDescription
Custom header titleOverride the column header with a custom label.
Column widthFixed width in pixels or percent (0px = auto).
Default column visibilityVisible — always shown; Hidden — hidden by default; Hidden in mobile mode — hidden on small screens.
Column selection in ‘Columns to Display’Enabled — user can toggle this column via the toolbar; Disabled — always shown.
Include column in exportAlways, Only if column visible, or Never.
Disable sortingPrevents sorting the table by this column.
Use cell style functionA JavaScript function f(value, alarm, ctx) that returns a CSS style object for the cell.
Use cell content functionA JavaScript function f(value, alarm, ctx) that returns custom HTML for the cell. Enable Use cell content function on export to also apply it to exported data.

Controls the widget header.

SettingDescription
Card titleText displayed in the widget header.
Card iconIcon shown next to the title.

Table buttons add per-row action controls displayed as icons at the end of each alarm row.

ButtonDescription
Display alarm activityOpens the alarm activity log — a timeline of lifecycle events: creation, acknowledgment, clearing, and comments.
Display alarm detailsOpens the alarm details panel with all metadata: originator, severity, type, status, duration, and assignee.
Allow alarms assignmentEnables assigning the alarm to a user directly from the row.
Allow alarms acknowledgmentAdds a one-click acknowledge button to each row. Acknowledging marks the alarm as reviewed; it remains active until cleared.
Allow alarms clearAdds a one-click clear button to each row. Clearing resolves the alarm and removes it from the active list.

Controls the widget toolbar and card styling.

SettingDescription
SearchOpens a text search bar to filter displayed rows.
Alarm filterToolbar button to filter by severity or status without entering configuration.
Columns to displayToolbar button letting users show or hide individual columns at runtime.
Data exportToolbar button to download the table data. Available on PE, PaaS, and PaaS/EU only.
FullscreenExpands the widget to fullscreen mode.
Text colorColor of all text inside the widget.
Background colorWidget card background color.

The Alarms table supports widget actions on the following sources:

  • Action cell button — a custom button inside a specific table cell.
  • On cell click — triggered when the user clicks a cell.
  • On row click — triggered when the user clicks a row.
  • Widget header button — a button added to the widget header bar.

Scenario: A fleet of Smart Sensor devices has alarm rules defined for fault conditions. You want a dashboard widget that shows only active, critical alarms across all devices of that type for the past day, with one-click acknowledge and clear controls.

Prerequisites: An alarm rule must be defined for devices of the smart-sensor device profile.

Step 1. Add the widget. Open the dashboard in edit mode, click Add widget, select Alarm widgets, then choose Alarms table.

Step 2. Set the time window. Set the period to Realtime – last 1 day.

Step 3. Configure the alarm source. Set the source to Entity alias. Create an alias named All Smart Sensors with Filter type — Device typesmart-sensor.

Step 4. Configure filters. Set Alarm status list to Active and Alarm severity list to Critical.

Step 5. Configure appearance. Set Card title to Critical smart device alarms.

Step 6. Enable table buttons. Enable Allow alarms acknowledgment and Allow alarms clear so operators can act on alarms directly from the table.

Step 7. Save. Click Add, resize and reposition as needed, then click Save on the dashboard toolbar.

Result: The table shows all active critical alarms from Smart Sensor devices in real time, updated automatically as alarm states change. Each row has acknowledge and clear buttons for immediate action.

No alarms appear in the table

CauseSolution
Time window too narrowExtend the time range — alarms older than the window are excluded.
Alarm source resolves to no entitiesOpen Entity aliases in the dashboard and verify the alias returns results.
Filter excludes all alarmsCheck Alarm status list and Alarm severity list — if set, only matching alarms are shown. Clear filters to confirm alarms exist.
No alarm rules definedVerify the device profile has alarm rules configured and that alarms have been triggered.

Expected alarms are missing

CauseSolution
Alarm status filtered outThe alarm may be Cleared or Acknowledged while the filter shows only Active. Add the relevant status to the filter.
Alarm type not in filterIf Alarm type list is set, only listed types are shown. Add the missing type or clear the filter.
Propagated alarms not showingEnable Search propagated alarms to include alarms from child entities.

Row action buttons are not visible

CauseSolution
Table buttons not enabledOpen widget configuration → Table buttons and enable the desired buttons (acknowledge, clear, assign).