Skip to content
Stand with Ukraine flag

Time series table

  • Widget
  • v1.0.0
  • Sep 1, 2026
  • MIT license
  • v4.2+ | Built-in
Time series table

Displays time series data for one or more entities. Data for each entity is displayed in a separate tab. Columns are configured to display entity fields, attributes, or telemetry data. Highly customizable via cell content functions and row style functions.

Widget Type
  • Timeseries
Category
  • Tables & Lists

Who it’s for

Anyone who needs the readings themselves rather than a picture of them — an engineer checking exact values around an incident, an analyst exporting a window to a spreadsheet, an auditor confirming what a device reported and when. A chart shows the shape; this table shows the rows.

What it does

The Time series table lists readings as rows, timestamped, one column per data key and one tab per entity. Two keys such as Temperature °C and Humidity, % produce a paginated, searchable table with a timestamp column, and adding a second device adds a second tab rather than interleaving its rows.

  • Exact values, in order, with their timestamps — the detail a chart deliberately smooths away.
  • One tab per entity keeps devices separate, and tabs can be named from the entity label rather than its name.
  • Search and column selection let a reader narrow a wide table without the dashboard being edited.
  • A row style function colors or emphasizes rows from their own values, which is how an out-of-range reading is found in a long table.
  • Columns display entity fields, attributes and telemetry together, so context sits beside the readings.
  • Pagination is configurable down to the page-size steps offered, which matters on a table people scroll rather than export.
  • The Time series table is a reader, not a chart: trends and comparisons are much faster to see on a Time series chart, and the two are usually placed together.

How to set up

Data keys

The Time series table takes one column per data key, from one or more datasources.

KeyRoleTypeDescription
Temperature °COne table columnTimeseriesAttributes and entity fields work equally well and can be mixed in. The key’s label is the column heading, so write it as the header should read, including the unit. Each datasource becomes its own tab.

The rows come from the dashboard’s time window and aggregation. A raw window gives one row per reading; an aggregated one gives one row per interval, which is a different table and worth stating in the widget title.

Table

SettingDefaultEffect
TimestampOnShows the timestamp column, with its own date format
Include timestamp column in exportAlwaysWhether exports carry the timestamp regardless of column visibility
Enable searchOnGives the reader a search box over the rows
Enable select columns to displayOnLets the reader hide and show columns
Always display headerOnKeeps the header visible while scrolling
Display paginationOnShows the pager, with configurable page size and steps
Sort tabs byEntity nameOrders the per-entity tabs
Hide empty linesOffDrops rows where no key reported

How to customize

  • To make the columns read as a report — edit each data key’s label, since that is the column heading.
  • To highlight rows that need attention — turn on Use row style function and return styling from the row’s own values.
  • To name tabs the way operators do — turn on Use entity label in tab name.
  • To change the timestamp presentation — set the date format beside the timestamp toggle, or turn the column off for a table read alongside a chart that already carries time.
  • To suit a scrolled table rather than an exported one — adjust Default page size, Step increment and Number of steps, or turn pagination off.
  • To drop intervals where nothing reported — turn on Hide empty lines, which shortens a table fed by sparse keys.
  • To simplify a fixed report — turn off Enable search and Enable select columns to display so the table always looks the same.

Tips

  • Put the table beneath the chart of the same keys and time window. Readers find the moment on the chart and the number in the table, and keeping both on one window means they never have to reconcile two different periods.
  • Write units into the column labels rather than relying on the key names. The label is what gets exported, and a spreadsheet column headed Temperature with no unit is the kind of ambiguity that survives all the way into a report.

Share Your Widget with the Community

Built a custom widget? Export it as a JSON from ThingsBoard and publish it to the IoT Hub through a simple 4-step wizard (Upload, Listing, Readme, Review & Submit). Share it with thousands of ThingsBoard developers worldwide and get featured in the catalog.