Skip to content
Stand with Ukraine flag

Persistent RPC Table

The Persistent RPC table widget displays a list of persistent Remote Procedure Calls (RPCs) sent to devices in ThingsBoard. It provides a structured view of RPC requests, their status, response times, and other details — allowing you to monitor, track, and manage RPC commands directly from the dashboard.

Persistent RPCs remain pending until the target device connects and responds, ensuring reliable communication even for offline devices.

  • Displays all persistent RPCs in a sortable, paginated table.
  • Shows key details per request: RPC ID, message type, status, method, created time, and expiration time.
  • Real-time updates as new RPCs are sent or their status changes.
  • Filterable by RPC status.
  • Built-in controls to send new RPC requests and delete existing ones directly from the widget.
  • Configurable columns, pagination, and sticky header and actions column during scroll.
  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 Persistent RPC table widget.
  4. Configure the datasource 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.

Select the device or group of devices whose RPC requests will be displayed:

  • Device — a specific device; shows only RPC requests sent to this device.
  • Entity alias — a set of entities matched by an entity alias; use this to monitor RPC requests across multiple devices at once.
SettingDescription
”No data to display” messageCustom text shown when no RPC records exist for the selected device. Like No RPC requests found for this device.
SettingDescription
Enable filterAdds a status filter at the top of the table, letting users narrow down the list by RPC status.
Display header while scrollingKeeps column headers fixed at the top when scrolling through large tables.
Display actions column while scrollingKeeps the Actions column pinned on the right when scrolling horizontally.
Display request detailsAdds a button per row that opens a pop-up with full RPC request details: creation time, message type, status, parameters, and response.
Allow send RPC requestAdds a button to the widget header so users can create and send new RPC requests directly from the widget.
Allow delete requestAdds a delete button per row so users can remove existing RPC requests from the table.
SettingDescription
Display paginationShows page navigation controls below the table.
Page step settingsAvailable page sizes in the page-size dropdown, like 10, 25, 50.
Default page sizeNumber of rows shown per page on initial load.

The table displays the following columns by default. Columns can be reordered or hidden as needed.

ColumnDescription
RPC IDThe unique identifier of the RPC request.
Message typeIndicates whether the RPC is one-way or two-way.
StatusCurrent RPC status: QUEUED, DELIVERED, SUCCESSFUL, EXPIRED, or FAILED.
MethodThe RPC method name, like reboot, setConfig, or toggleRelay.
Created timeTimestamp when the RPC request was created.
Expiration timeTimestamp when the RPC request expires if no response is received.
SettingDescription
BackgroundSolid color or image background for the card.
Show card buttonsEnable the Fullscreen toolbar button.
Card border radiusCorner rounding in pixels.
Card paddingSpacing between card content and its border.

The Persistent RPC table supports the Widget header button action — a button placed in the widget header that triggers a configured action when clicked.

No RPC requests appear in the table

CauseSolution
No persistent RPCs have been sentSend at least one persistent RPC to the target device using the ThingsBoard API or another widget.
Wrong datasourceVerify the correct device or entity alias is selected. Open Entity aliases in the dashboard to confirm the alias resolves to the expected devices.
Status filter excludes all requestsClear or adjust the status filter — all visible statuses must be enabled for all requests to appear.
RPC requests already expiredExpired RPCs may be filtered out. Adjust the filter or check the Expiration time column to confirm.

RPC status does not update

CauseSolution
Device not connectedPersistent RPCs remain in QUEUED state until the device connects. Verify device connectivity in Devices → Active.
Rule chain not processing responsesCheck that the Rule Chain properly routes RPC responses back to ThingsBoard.

”Send RPC request” button is not visible

CauseSolution
Option not enabledOpen widget configuration → Appearance and enable Allow send RPC request.

”Delete request” button is not visible

CauseSolution
Option not enabledOpen widget configuration → Appearance and enable Allow delete request.