Skip to content
Stand with Ukraine flag

RPC debug terminal

  • Widget
  • v1.0.0
  • Sep 1, 2026
  • MIT license
  • v4.2+ | Built-in
RPC debug terminal

Allows to send any RPC command using its name and parameters to the device. Useful for debugging.

Widget Type
  • Control
Category
  • Controls
Use Cases
  • Industrial Automation
  • Robotics
  • Predictive Maintenance

Who it’s for

Firmware developers and integrators bringing a device up — trying a method before wiring a control to it, checking what a call returns, reproducing a problem a field engineer reported. The tool is a scratchpad for RPC, not a control anyone should be given on a production dashboard.

What it does

The RPC debug terminal lets any RPC method be typed in with its parameters and sent to the device, printing the response in a terminal-style log. Because the method name and payload are entered at send time rather than configured, one widget covers a device’s whole API without a button per call.

  • Any method, any payload, typed at the moment of sending — which is exactly what building a control widget requires knowing first.
  • The response is printed, so a two-way call’s result is visible rather than being discarded.
  • Successive calls accumulate in the log, which makes a sequence of calls and their answers readable as a session.
  • Persistent RPC is supported with a polling interval, so a device that acknowledges asynchronously can still be tested here.
  • The request timeout is configurable, so a slow link can be distinguished from a device that is not answering.
  • The RPC debug terminal is a development tool: it sends whatever is typed with no validation and no guard, so it does not belong on a dashboard that operators use.

How to set up

Data keys

The RPC debug terminal takes no data keys — the method and payload are entered at send time.

MethodDirectionParametersSent when
Whatever is typedTwo-way (request-response)Whatever is typedOn each send

RPC

SettingDefaultEffect
RPC request timeoutPlatform defaultHow long each call waits, in milliseconds
RPC request persistentOffFor devices acknowledging asynchronously
Polling intervalPlatform defaultHow often a persistent command’s response is polled

Point the widget at one device and keep it on a dashboard that only developers open. There is no confirmation step and no restriction on what can be sent.

How to customize

  • To test a device that answers slowly — raise the RPC request timeout, so a working but slow device is not reported as unresponsive.
  • To test asynchronous devices — turn on RPC request persistent and set the polling interval for the command response.

Tips

  • Use this widget to discover the exact payload a device accepts, then move the working call into a Command button or an RPC Button. The terminal is for finding out; a configured button is what belongs in front of an operator.
  • Keep it on a separate developer dashboard rather than hidden in a state of the operational one. An unrestricted RPC console is one wrong tap away from a command nobody intended, and hiding it is not the same as removing it.

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.