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, how they find the site and where they get stuck, so we can improve it (Google Analytics, Microsoft Clarity).

Show us which of our ad campaigns bring visitors to the site and remember the campaign or partner link you arrived from (Google Ads, LinkedIn, Meta, 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

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

Device telemetry emulator

  • Widget
  • 10 installs
  • v1.0.0
  • Nov 12, 2026
  • MIT license
  • v4.2+

Need a week of believable history on a demo device before the call starts? Describe each key in a form: value range, start value and how far it may rise or fall between readings, then pick the days and the interval. The emulator writes the series to every selected device or asset, with a live preview of its shape. A slow drain with a big refill comes out as a fuel tank, small even steps as a wandering sensor, steps up only as a growing meter.

Widget Type
  • Latest
Category
  • Input Forms

Who it’s for

The Device telemetry emulator is for anyone who needs believable history on a device before real data exists: a demo dashboard that opens tomorrow, a solution template that has to look alive on install, a chart or alarm rule that needs a week of readings to test against. The question behind it is usually “how do I fill this device with a week of realistic temperature without writing a script?”

What it does

A demo generator tracked by an entity alias gets two keys from the widget’s own defaults. temperature stays between 18 and 27, starts somewhere around 21–23 and moves 0.1–0.6 per reading, so it wanders the way a room sensor does. fuelLevel drops 0.4–1.5 per reading from a start of 40–60 and, at 8, jumps 80–90 back to the top, so it comes out as a tank that drains and gets refilled. With 7 days at an interval of 1 hour, Generate writes 169 readings per key to every selected entity, ending at the current time.

  • Each key is described by four pairs of numbers — the range it stays in, where it starts, how far it may rise and how far it may drop between readings — instead of a formula. A slow drop with a big rise turns into a sawtooth, small even steps into a wandering sensor, and rises with no drops into a meter that only grows.
  • A small chart beside every key shows the shape that will be written, and it redraws while the numbers are typed, so a key can be tuned before anything reaches the database.
  • Every entity gets its own random start and its own path, so ten devices from one alias do not draw ten identical lines.
  • The data goes to the platform as ordinary timeseries with past timestamps, so charts, tables, alarm rules and calculated fields treat it exactly like reported telemetry.
  • Replace existing data deletes the keys’ readings in the period first, so a second run swaps the history instead of doubling it.
  • Before writing, the widget states how many values go to how many entities and waits for a confirmation, then shows a progress bar and a Stop button.
  • The emulator writes history once, on demand. It does not keep a device reporting live values afterwards.

How to set up

Data keys

The Device telemetry emulator needs entities, not data keys: on the Data tab, add one or more entity aliases holding the devices or assets to fill, and leave their key lists empty — the widget accepts no data keys. The keys to write are described in the widget settings or in its own form.

  • Entities from the aliases — devices, assets or any entity the alias resolves to. Each one becomes a checkbox in the form, all selected by default. With no alias the widget asks for one and the Generate button stays disabled.
  • The keys it writes — Timeseries, numeric. A key that does not exist yet is created by the first write; a key that already exists gets the new readings added to it, or replaced in the period when Replace existing data is on.

Period

  • Days back — 7 by default, up to 365. How far into the past the history reaches; the last reading lands on the current time.
  • Interval — 1 by default. The distance between two readings, counted in Interval unit.
  • Interval unit — Hours by default; also Seconds and Minutes.
  • Replace existing data — off by default. Deletes the data of the listed keys in the period before writing.

Keys

  • Keys — temperature and fuelLevel by default. One entry per key to write, each with:
    • Key — the timeseries key name.
    • Decimals — 1 by default. How many decimal places every value is rounded to.
    • Min value and Max value — the range the value never leaves. Leave one empty for an open side.
    • Start from and Start to — the first value is random between them, separately for each entity. Leave both empty to start anywhere in the range.
    • Increase from and Increase to — 0.5 and 1 by default. How much the value may grow between two readings.
    • Decrease from and Decrease to — 0.5 and 1 by default. How much the value may drop between two readings.

Writing

  • Readings per request — 500 by default. How many timestamps go into one save request.
  • Pause between requests — 5 ms by default. The wait between two requests.

How to customize

  • To let people edit everything on the dashboard — keep View on Details form. The period, the entity checkboxes and every key are editable in the widget, one key per tab, each with its preview chart. Edits are kept in that person’s browser until the widget settings change.
  • To give people one button and nothing to change — set View to Compact. The widget lists the keys from the settings with their range, steps and a small preview, and offers only Generate.
  • To make a value rise slowly and fall sharply — give Increase from / Increase to small numbers and Decrease from / Decrease to large ones.
  • To make a counter that only grows — leave Max value, Decrease from and Decrease to empty.

Tips

  • Think of the steps per reading, not per hour: when Interval gets ten times shorter, divide the steps by about ten, or the same key turns into noise.
  • Start with a short period and one entity, look at the result on a chart, and only then fill the whole fleet.
  • If the server rejects requests, lower Readings per request or raise Pause between requests.
  • Charts already open on the dashboard keep showing the old history until the page is reloaded.

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.