Skip to content

Cookie preferences

We use cookies for our own analytics, to see how our campaigns perform and, if you allow it, to load content from other services such as the Google site search. We never sell your data. Necessary cookies keep the site working and cannot be switched off. See our Cookie Policy for details and our Privacy Policy for how we handle personal data.

Security, load balancing and remembering your cookie choice.

Show us which pages people read and how they find the site, so we can improve it (Google Analytics).

Show us which of our ad campaigns bring visitors to the site and remember the campaign or partner link you arrived from (Google Ads, partner program). We do not use these cookies to build advertising profiles.

Load the site search from Google when you use it. Google sets its own cookies and shows ads in the search results.

© 2026 The ThingsBoard Authors
Try for free

ThingsBoard Cloud

Choose your data region

Your data stays in the region you choose, for residency and compliance. No credit card required.

Rather run it yourself? Install on your own servers

RPC debug terminal

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

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.