Skip to content
Stand with Ukraine flag

Time Series Table

The Time series table widget displays telemetry values over time in a tabular format. Unlike chart widgets that visualize trends graphically, it presents exact numeric values with timestamps — ideal for analyzing historical and live data, comparing multiple parameters, detecting anomalies, or exporting time-stamped records for reporting.

  1. Open the dashboard in 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 Tables.
  3. Select the Time series table widget.
  4. Configure the time window, datasource, columns, and appearance, then click Add.

The widget configuration dialog has Basic and Advanced tabs. The Basic tab groups settings into: Time window, Datasource, Columns, Card appearance, and Actions.

Define the time period for which telemetry data is displayed. Options:

  • Realtime — continuously updated with new data as it arrives.
  • Last N — a relative range such as Last 24 hours or Last 7 days.
  • Custom — an absolute date/time range.

Enable data aggregation to display summarized values grouped by a chosen interval (e.g., hourly, daily). Aggregation functions: Average, Sum, Min, Max, Count.

See Time window for full configuration details.

The Time series table supports one or multiple datasources. For each datasource, select:

  • Device — data from a single specific device.
  • Entity alias — data for all entities matched by an entity alias. Use this to display telemetry across a group of devices simultaneously.

Each column maps to a data key representing a telemetry value. For each column row you configure:

FieldDescription
SourceData type: Time series — timestamped telemetry history; Latest — the most recent value only.
KeyTelemetry key name (e.g., temperature, humidity).
LabelColumn header text. Defaults to the key name.
UnitsOptional unit suffix shown after the value (e.g., °C, %).
DecimalsNumber of decimal places for numeric values.

Click Add column to add columns. Drag the handle on the right of any column row to reorder.

Click the pencil icon on a column row to open the Data key configuration dialog. It has two tabs: General and Advanced.

General tab

SettingDescription
KeyTelemetry key name.
LabelColumn header text.
UnitsUnit suffix displayed after the value.
DecimalsNumber of decimal places.
Use data post-processing functionJavaScript function applied to each value before display. Signature: f(value, ctx).

Advanced tab (Column settings)

SettingDescription
Default column visibilityControls whether the column is shown by default. Visible — always shown; Hidden — not displayed by default; Hidden in mobile mode — visible on desktop, hidden on mobile.
Column selection in “Columns to Display”Whether the user can toggle this column in the Columns to Display panel. Enabled — user can show/hide it; Disabled — column cannot be toggled.
Include column in exportControls whether the column is included when exporting data. Always — always exported; Only if column visible — exported only when visible; Never — never exported.
Disable sortingPrevents sorting by this column. Useful for columns with complex or non-numeric content.
Use cell style functionJavaScript function for per-cell styling. Signature: f(value, rowData, ctx). Must return a CSS style object (e.g., { color: 'red', fontWeight: 'bold' }).
Use cell content functionJavaScript function for custom cell content rendering. Signature: f(value, rowData, ctx). Return a formatted value or an HTML string. Enable Use cell content function on export to apply the same logic during data export.
SettingDescription
Card titleTitle text displayed in the widget header.
Card iconOptional icon shown next to the title.
Show card buttonsToolbar buttons: Search — full-text filter; Columns to display — column toggle panel; Data export — download table data; Fullscreen — fullscreen view.
Text colorColor applied to all text within the widget.
Background colorWidget card background color.

The Time series table widget supports the following action sources:

Action sourceWhen triggered
Action cell buttonA button appended to the end of each row.
On row clickUser clicks anywhere in a row.
Widget header buttonA button in the widget header, used for global actions.

See Widget Actions for the full list of action types and configuration options.

Example: Temperature and humidity over 24 hours

Section titled “Example: Temperature and humidity over 24 hours”

Goal: Display temperature and humidity telemetry for all devices over the past 24 hours in a time-ordered table.

Prerequisites

Prepare several devices that send temperature and humidity as telemetry keys to ThingsBoard.

Step 1. Add the widget

Open your dashboard in edit mode. Click Add widget, select the Tables bundle, then choose Time series table.

Step 2. Configure the time window

In the Time window section set:

  • Period: Realtime, last 1 day
  • Aggregation: None

Step 3. Configure the datasource

Select Entity alias as the datasource type, then choose or create an alias:

  • Alias type: Filter-based
  • Filter type: Entity type → Device

This resolves to all devices in the tenant.

Step 4. Configure columns

Click Add column for each of the following:

KeyLabelUnitsDecimals
temperatureTemperature°C1
humidityHumidity%0

Step 5. Set the card title

In the Card appearance section, enable Card title and enter:

Temperature and Humidity (24h)

Set the font size to 18 px.

Step 6. Save

Click Add to place the widget on the dashboard. Resize and reposition as needed, then click Save on the dashboard toolbar.

Result

The Time series table displays a chronological list of telemetry readings for each device. Users can:

  • View precise values with timestamps for each entity.
  • Sort results by any column.
  • Export the dataset for offline use.

Widget not showing data

CauseSolution
Incorrect datasource or entity aliasVerify the correct Device or Entity alias is selected in the datasource configuration.
Wrong data key nameConfirm the key name matches the telemetry key sent by the device. Key names are case-sensitive.
Device not sending dataOpen Devices → Latest telemetry and check for recent values. If empty, verify the device transport config and token.
No telemetry in the selected time windowExtend the time range or switch to a longer Last N period.
Rule chain misconfigurationCheck that the Rule Chain has a Save time series node routing device telemetry to the database.

Wrong or missing time window

CauseSolution
Incorrect time window typeSwitch between Realtime and Last N as appropriate.
Aggregation interval too largeReduce the grouping interval for finer granularity, or set Aggregation to None for raw values.

Missing or incorrect columns

CauseSolution
Data key not addedOpen the Columns section and confirm each telemetry key is added as a column.
Column hidden by defaultOpen column settings and set Default column visibility to Visible.
Column hidden in “Columns to Display”Ensure Column selection in “Columns to Display” is Enabled for the relevant column.
Column missing from exportOpen column settings and set Include column in export to Always or Only if column visible.