A Dashboard is a live canvas of widgets that visualize what your devices are reporting right now. Each widget is bound to one or more device Attributes and updates on its own over a live connection. You arrange widgets on a grid, resize them, group them, and the layout saves itself. This page covers how dashboards work, the controls and settings every widget shares, and a complete catalog of every widget type with its configuration options.

Flow diagram: a device reports an Attribute reading, which is stored, then streamed over a WebSocket connection to the browser. Each widget on the dashboard grid is registered for the device and attribute it binds to, and re-renders when a new reading arrives. The grid auto-refreshes every 10 seconds.
How a dashboard stays live: each widget subscribes to its attributes and updates as new readings stream in.
Naming note: in the UI you bind widgets to a Device and an Attribute. Behind the scenes the API calls an Attribute a data type (and an Endpoint a data source). You only ever see “Attribute” and “Endpoint” in the product.

Where Dashboards Live

Every dashboard belongs to an application. You open, create, and manage an application’s dashboards from its Dashboards page, which is organized as tabs: you open dashboards into tabs and switch between them in place, rather than scrolling a list. A widget you create inside an application stays in that application’s context.

Permissions: seeing dashboards needs the dashboard view permission, and editing the layout or widgets needs the widget edit permission. If you can view but not edit, the grid is read-only: no drag, no resize, no toolbar edit actions.

Create, rename, and delete

The Dashboards page with a row of dashboard tabs across the top and the active dashboard's grid below. When no tabs are open, a 'No open dashboard tabs' panel offers Show dashboard and Create new dashboard buttons.
The Dashboards page is tab-based. Open a dashboard into a tab, switch between open tabs, or create a new one.
Create dashboard modal with a Dashboard Title field (required) and an optional Description textarea, plus Cancel and Create buttons.
Creating a dashboard. Only the Dashboard Title is required.
  • 1
    On the Dashboards page, create a new dashboard. Give it a Dashboard Title (required) and an optional Description.
  • 2
    Rename or edit the title and description any time from the dashboard’s gear menu (Edit). You can also double-click the dashboard’s description to edit it in place; the title is renamed from the Edit dialog (or by double-clicking a dashboard’s tab to rename the tab).
  • 3
    The gear menu also offers Duplicate (creates a “Copy of …” with all its widgets) and Delete. Delete asks for confirmation, then permanently removes the dashboard and every widget on it. Deleting a dashboard cannot be undone — the Undo toast applies only to deleting an individual widget on a dashboard (see The Grid), not to deleting a whole dashboard.
Not yet available: the dashboard editor has commented-out controls for “Who can access this dashboard?” (Only me / My team / workspace) and “Receive alerts for this dashboard?”. These are hidden in the current product and are never sent when you save, so they have no effect today. Treat per-dashboard privacy and alert toggles as coming later, not as live settings.

Tabs: keep several dashboards open at once

A row of dashboard tabs across the top of the Dashboards page. Each tab shows a dashboard name with a close control, and a plus button opens a dialog to add another dashboard to the tabs or create a new one. Tabs can be dragged to reorder.
Tabs let you pin several dashboards side by side and switch between them quickly.
  • Add a hidden dashboard to the tab bar, or create a brand-new one, from the add-tabs dialog.
  • Reorder tabs by dragging, rename a tab (with edit permission), and close a tab to hide it from the bar (closing a tab does not delete the dashboard).

The Grid: Adding, Arranging, and Saving

Widgets live on a responsive 12-column grid. With edit permission you can drag, resize, and group them. Without it, the dashboard is view-only.

A dashboard in view mode with a mix of widgets: a gauge showing a current temperature, a line chart over time, a data table, and a floor-plan map with colored pins. Each widget has a header with its title.
A dashboard in view mode. Each tile is one widget.
A dashboard in edit mode. One widget is mid-drag, held by a drag handle in its header, and another shows a resize handle at its bottom-right corner. A faint grid is visible behind the tiles.
Edit mode: grab a widget by its drag handle to move it, or pull a corner to resize.

Layout behavior

BehaviorDetail
Columns 12 columns on desktop sizes (large, medium, small). On phones the grid collapses to a single column so every widget stacks full width.
Move Drag a widget by the handle in its header. Widgets can overlap while you are editing. A pinned widget stays put (see Widget Controls below).
Resize Pull the corner. New widgets drop in at the next free spot at a standard starting size, then resize freely. Auto Align gives each widget a sensible size for its type: gauge, label, progress, pie, and doughnut snap to a small square; charts to a wider rectangle; tables and maps to a full-width block.
Spacers Add spacer drops a full-width divider that splits the dashboard into vertical sections (for example “KPIs” above, “History” below). Auto Align respects these sections.
The dashboard toolbar with a Create widget button, Add spacer, Undo and Redo, Full screen, Auto Align Widgets, Refresh Dashboard, a gear settings menu (Edit, Duplicate, Delete), and a small autosave status indicator reading Saved · just now.
The dashboard toolbar, left to right: Add widget, Add spacer, Undo, Redo, Full screen, Auto Align, Refresh data, and Dashboard config (the gear menu). Layout changes save automatically; Undo and Redo cover moves, resizes, adds, and deletes.

Saving, autosave, and history

  • Autosave: layout changes (moves, resizes, spacer edits) persist automatically. A small indicator shows Saving…, then Saved · just now, and warns if a save failed and will retry.
  • Auto Align Widgets packs widgets tightly into a clean grid, section by section, in one action.
  • Refresh Dashboard re-pulls data for every widget on demand.
  • Undo / Redo covers layout commits plus adding and deleting widgets, up to the most recent 20 actions on the current dashboard.
  • Full screen expands the dashboard for a wall display. When several dashboards are open as tabs, previous/next arrows flip between those open dashboards.

Widget Controls: Hover to Reveal

Widgets keep their controls hidden so the dashboard stays clean, especially on a wall display. Point at a widget and its controls fade in at the top. Move the pointer away and they disappear again. On a touch screen the controls live behind a (More) button instead; tap it to show them, tap elsewhere to dismiss.

A line chart widget at rest. Its header shows only the title, with no buttons visible.
At rest, a widget shows only its title. No buttons, no clutter.
The same chart widget under the mouse pointer. The header now shows a drag grip beside the title and a row of revealed icon buttons: Ask AI (sparkles), Expand, Edit (pencil), Pin, and Delete (trash).
Hover to reveal the controls: drag grip, Ask AI, Expand, Edit, Pin, and Delete. On touch screens the same controls sit behind a ⋮ button.
ControlWhat it does
Drag grip The grip beside the title (the whole title area works too). Hold it to drag the widget around the grid. Needs edit permission.
Ask AI (sparkles) Opens the AI chat with a ready-made question about this widget, naming its title, its type, and the attributes and devices it shows. Send it as-is or edit the question first. Shown only if you can use the chat assistant.
Expand Opens the widget in a large pop-up for a closer look. Double-clicking (or double-tapping) the widget body does the same. Available on every widget except Map and Data Push. See “The expanded view” below.
Edit (pencil) Opens the widget editor with the widget’s current settings. Needs edit permission.
Pin / Unpin Locks the widget in place. A pinned widget cannot be dragged or resized, and other widgets cannot push it around while you rearrange them. Unpin to move it again. Needs edit permission.
Delete (trash) Removes the widget from the dashboard. An Undo toast appears so you can take it back. Needs delete permission.

The expanded view

A line chart opened in the expanded pop-up view. Below the chart sit a Max points input and a date range picker, with CSV download and Close buttons at the bottom.
The expanded view. Charts add a Max points input, a date-range picker, and a CSV download button.
  • Charts add a date-range picker and a Max points input, so you can look at a different time window or point density without editing the widget, plus a CSV download button. The CSV contains exactly the data drawn on screen.
  • XY-Charts let you zoom into the plot with the scroll wheel. The date-range picker is not available here (the window comes from the widget’s own Live or Daily setting), but CSV download is: one file per pair, with Timestamp, X Value, and Y Value columns.
  • Gauge and Label widgets let you grow or shrink the value text with the scroll wheel.

Live Data

Widgets update themselves. The dashboard opens an authenticated WebSocket connection and keeps every widget current as new readings arrive.

How “live” works: when a widget mounts it requests the data it needs. The dashboard then does an incremental refresh every 10 seconds, pulling only what is new. Single-status, multi-status, and “latest” charts refresh on the fast cadence; longer historical charts refresh on a slower beat. If the connection drops it reconnects on its own (it pings every 30 seconds and retries up to 10 times), then re-requests data for every widget.
  • Charts and XY-Charts request a time window (Live or Daily) and stream a series of readings.
  • Single-status widgets (gauge, label) request the latest reading only.
  • Multi-status widgets (table, map, progress, pie, doughnut) request the latest value per bound attribute.
  • Data Push widgets display nothing, so they subscribe to nothing. They only send.
When an attribute stops reporting: nothing breaks. The widget keeps showing the last value it received until a newer reading arrives. A widget whose device or attribute has no data in the requested window simply shows No Data Available rather than an error. Charts only plot numeric values; string and boolean attributes appear as a latest reading but cannot be graphed.

Building a Widget: What Every Widget Shares

Every widget is created and edited in the same editor: a config panel on the left and a live preview on the right. This section covers the controls that are the same for every widget type. The per-type options live in the Widget Catalog below, so they are not repeated for each widget.

Create Widget dialog with two tabs across the top: Create Widget (build from scratch) and Import map (add a map widget that mirrors a map from this application's Map page). The Import map tab only appears when you are inside an application.
Starting a widget. From an application a second tab lets you import an existing map. A Documentation button in the header opens this guide.
  • 1
    Check the Dashboard field, enter a Widget Title (required), and optionally a Description.
  • 2
    Choose a Widget Type: Chart, Single Status, Multi Status, Data Push, or XY-Chart. Then choose a Style (the sub-type) within that type.
  • 3
    Set the type-specific options (time range, scale, table cells, and so on), then add one or more Attributes (Data Push widgets have none).
  • 4
    Watch the Preview, then save. The widget drops onto the dashboard at the next free spot.

Dashboard

The Edit Widget dialog. At the top, a Dashboard dropdown is greyed out with a small pencil button beside its label. Below it are the Widget Title field with a braces insert-tag button, and a Description textarea with a 0 / 250 character counter. A live preview of the chart fills the right side.
The top of the widget editor: the Dashboard field (locked until you click the pencil), the Widget Title with its insert-tag button, and the Description.

The first field in the editor shows which dashboard the widget belongs to. It is locked by default so you cannot move a widget by accident: the dropdown is greyed out until you click the small pencil next to the “Dashboard” label. Unlock it to create the widget on a different dashboard, or to move an existing widget when you edit it. In the few flows where the destination is fixed, the field is hidden entirely.

Widget Title, with tags

The Widget Title is required, and it can do more than plain text: it can embed one of your tags. Click the braces button (Insert a tag) at the end of the field, search the application’s tags, and pick one. This drops a token like {{tag.room}} into the title, and the widget shows the tag’s current value in its place.

  • A Resolves to preview under the field shows the finished title. If the tag is missing, a Referenced tag not found warning appears instead.
  • Rename once, update everywhere: point several widget titles at the same tag and editing the tag’s value renames them all.
  • Only tags whose key uses letters, numbers, hyphens, and underscores can be inserted. Others are shown greyed out in the picker.

Description

An optional Description (up to 250 characters) appears in smaller, muted text under the widget’s title on the dashboard. Long descriptions are truncated; hover to read the full text. Use it for context the title can’t carry, like “3rd floor, north wing” or “resets at midnight”.

Preview, with sample data

The right-hand pane always shows something useful. Before you bind an attribute it is labelled Preview (Sample) and renders your widget with realistic sample data, using the exact type, style, and options you have picked so far. Map and Data Push widgets show a sketch placeholder instead. Once a real attribute is bound the label switches to Preview and the data is live.

Attributes and their options

Every widget except Data Push is built from one or more Attributes (data points). Each attribute row ties a device to one of its measurements, plus display options. Which options appear depends on the widget type:

FieldWhat it does
Device Searchable picker. Type to find a device by name. Required for each attribute row.
Attribute The measurement to show. The list fills only after a device is chosen, and reflects that device’s auto-detected attributes.
Statistic Chart and XY-Chart only: how to reduce a window of readings into one aggregated point. The selector shows short labels: Max, Min, Ave, Sum, |Max|, and |Min|; the open menu spells out the full names (Maximum, Minimum, Average, Sum, Max absolute, Min absolute). The default is |Max|. Hidden when the chart is showing Raw data, since there is nothing to aggregate.
Color The series, slice, or value color for this attribute. (No Color picker on a Map data point, and it is hidden on a Gauge once Advanced color settings is on.)
Data label A custom name (up to 100 characters) shown in legends and labels instead of the raw attribute name. Available on Chart, XY-Chart, Single Status, Pie, and Doughnut. Like the title, it can embed a tag via the braces button.
Rounding Single Status and Table only. Opens a small panel with a Rounding style (None, Round, Round up, Round down) and a Decimal places stepper from Integer to four places, with a live preview of the formatted number.
Unit (temperature only) For a temperature attribute, a quick toggle between Celsius (°C) and Fahrenheit (°F).
Limits per type: a Single Status widget (gauge or label) accepts exactly one attribute (“Single status widgets can only have one device attribute.”). Chart and Multi-status widgets accept several, and an XY-Chart accepts up to 8 pairs. You cannot add the same device-and-attribute twice to one widget (“The same Device Attribute exists.”). Saving with no attribute is blocked: “At least one device attribute is required.” (Data Push is the exception; it binds no attributes.)

Calculations

Part of the widget editor. The Y-axis box shows Minimum and Maximum value fields set to Auto and a Label input reading 'power' with a Vertical orientation button and a braces insert-tag button. Below, a Device Attribute row header shows delete, tag-toggle, and lightning-bolt buttons, and the row body shows a Color swatch and a Data label input.
Per-attribute options and their entry points: the Y-axis Label with its orientation toggle, the Color and Data label fields, and the tag-toggle and lightning-bolt calculation buttons in the row header.

Attribute rows on chart and status widgets carry two calculation buttons, so a widget can plot computed values instead of raw readings:

  • The tags toggle switches the row between a single attribute and a simple combination of two attributes (add, subtract, multiply, or divide). Use it for quick sums and differences, like supply minus return temperature.
  • The lightning-bolt button (Advanced calculation) opens a formula editor for anything beyond the basics: unit conversions, scaling, and full formulas. Once a formula is set, the row collapses to a Calculation card with Edit and Remove links, and the button turns blue.

On the dashboard a calculated series plots like any other, with a small ⚠ badge if the calculation has a problem. The formula itself is shown in the editor, not on the widget. The Advanced calculation editor and the formula language are covered on their own page.

The Widget Catalog

There are five widget types, most with several styles. The type identifiers are chart, single_status, multi_status, data_push, and correlation (the XY-Chart); each style has its own sub-type identifier shown below.

TypeStyles (sub-type id)
Chart (chart) Line (line), Bar (bar), Area (area), Scatter (scatter)
Single Status (single_status) Gauge (gauge), Label (label)
Multi Status (multi_status) Table (table), Map (map), Progress (progress), Pie (pie), Doughnut (doughnut)
Data Push (data_push) Form (form), Button (button)
XY-Chart (correlation) Line (line), Scatter (scatter)

Chart — Line, Bar, Area, Scatter

What it shows: one or more attributes plotted over time. Use it for trends, comparisons across devices, and history. Charts plot numeric values only.

Chart widget configuration: a Display Type select (Live or Daily), an aggregation interval select, an X-axis range box with Max points and an optional display range, and a Y-axis range box with Minimum value, Maximum value, and an optional axis Label with an orientation toggle.
Chart options: choose Live vs Daily, the aggregation interval, and the axis ranges.
OptionWhat it does
Style Line, Bar, Area, or Scatter.
Display Type Live (a rolling relative window) or Daily (a rotating day-based window). For Daily, the Duration select picks which day to show: Today, Yesterday, Two days ago, or Three days ago.
Source Data The aggregation interval: Raw, 1-minute aggregation, 5-minute aggregation, 10-minute aggregation, 30-minute aggregation, 1-hour aggregation, or 3-hour aggregation. Daily charts cannot use Raw. With Raw selected, the per-attribute Statistic is hidden.
X-axis For Live, Max points caps how many points are drawn (up to 1440) and an optional Display range sets how far back to look (a number plus seconds / minutes / hours / days). For Daily, the Duration day-selector above sets the window.
Y-axis Minimum value and Maximum value. Leave both blank for Auto. If you set one you must set the other, and the max must be greater than the min. An optional Label names the axis; once it has text, a small toggle switches the label between Vertical (the default) and Horizontal.
Attributes One or more device attributes, each with a Color, an optional Data label, and (when aggregating) a Statistic.

XY-Chart — Line, Scatter

What it shows: the relationship between two measurements, instead of one measurement over time. Each point pairs an X reading with a Y reading taken in the same time window, so you can see how one attribute moves with another: temperature against humidity, power draw against occupancy, and so on. Scatter draws a cloud of points; Line connects them in time order.

Create Widget dialog for an XY-Chart. A Device Attribute pair card holds an X-axis block bound to counter_a_amperes and a Y-axis block bound to battery_volts, each with its own device picker and a statistic select, plus a Color swatch and a Data label input. The preview on the right plots the pair as scatter points, with a legend reading 'counter_a_amperes vs battery_volts'.
XY-Chart options: each pair binds one attribute to the X axis and one to the Y axis, and the preview plots them against each other.
OptionWhat it does
Pairs Each series is a pair: one attribute for the X-Axis and one for the Y-Axis, laid out as two blocks in one card. Add up to 8 pairs; each is drawn in its own Color and appears in the legend as “X vs Y” unless you set a Data label.
Display Type / Source Data Same as a Chart: Live or Daily, with the same aggregation intervals and per-attribute Statistic.
X-axis / Y-axis ranges Both axes are numeric here, so each gets its own Minimum value and Maximum value (blank for Auto) plus a Label. The Y-axis label has the same Vertical/Horizontal toggle as a Chart. Max points and Display range control the Live window.
Combined axes A small toggle on each axis block switches it from a single attribute to a combination of two (add, subtract, multiply, or divide), so an axis can plot a computed value.
Unit (temperature only) Convert a temperature attribute between °C and °F; the series name notes the conversion.
Label your axes. An XY-Chart does not name its axes automatically. With one pair that may be fine, but with several pairs the same two axes can carry different quantities, so type an X-axis and Y-axis Label to tell viewers what they are looking at. XY-Charts plot numeric values only; if some readings cannot be plotted, a small warning triangle appears (“Some data cannot be displayed. Please download the CSV to check the details.”).

Single Status — Gauge

What it shows: a single device’s latest value as a dial against a min/max range. Use it for “current temperature”, “current CO₂”, and similar at-a-glance KPIs. Exactly one attribute.

Gauge configuration: Minimum value and Maximum value inputs, a Gauge direction select (Minimum to Maximum or Maximum to Minimum), a Show scale checkbox, and an Advanced color settings section that adds threshold rows each with a target value, gauge color, and text color.
Gauge options, including optional threshold color bands.
OptionWhat it does
Minimum value / Maximum value The gauge’s scale ends, entered as whole numbers. Min defaults to 0, max to 100. Both are required, and min must be less than max.
Gauge direction Sweep Minimum to Maximum or Maximum to Minimum.
Show scale Draw the numeric tick marks around the dial.
Advanced color settings Turns on optional threshold bands for the attribute. Each row pairs a target value (shown as ≥ Target value for a Minimum-to-Maximum gauge, or ≤ Target value for Maximum-to-Minimum) with a Gauge color and a Text color, so the dial recolors as the value crosses each threshold. Add rows with the plus button; the first row’s threshold is fixed to the gauge min (or max) and cannot be removed. Each threshold must stay within the min/max range and follow the gauge direction. (With this on, the attribute’s normal Color picker is hidden.)
Rounding Rounding style and decimal places, as described under common attribute options.

Single Status — Label

What it shows: the latest value as plain text with its unit. Use it for compact readouts and for non-numeric attributes (status strings, on/off states) that a gauge cannot show. One attribute.

  • Rounding (style and decimal places) for numeric values.
  • Color for the value.
  • Handles string and boolean values, which is why it pairs well with categorical attributes.

Multi Status — Table

What it shows: a grid of latest values, one attribute per cell. Use it to lay out related readings (for example one row per room, one column per metric).

Table widget configuration: selectors for Number of Rows and Number of Columns, a Show table labels toggle, editable row and column label inputs, and on each attribute row a Cell picker that assigns the attribute to a labelled cell such as A1 or B2.
Table options: size the grid, label the rows and columns, then drop each attribute into a cell.
OptionWhat it does
Number of Rows / Columns Grid size. Rows up to 16, columns up to 8, capped so total cells stay at or under 16 (more rows means fewer columns allowed).
Show table labels Toggle the row and column header labels on or off.
Row / Column labels Editable text. Defaults are letters for columns (A, B, C…) and numbers for rows (1, 2, 3…).
Cell (per attribute) Each attribute row gets a Cell picker (A1, B2, and so on) that places it in the grid. Every attribute needs a cell, and two attributes cannot share a cell.
How the table is stored (the non-obvious bit): the table’s shape lives on the widget as options.tableLabel, which holds the column labels and row labels ({ "colum": ["A","B"], "row": ["1","2"] }). Each attribute then carries its own placement in options.tableIndex, stored as a JSON string of [row, column] indices (for example the string "[0,1]" means row 1, column B). So a complete table widget needs both: options.tableLabel on the widget for the grid, plus a per-attribute options.tableIndex string for where each value sits. If the grid is resized smaller, any attribute pointing at a cell that no longer exists has its tableIndex cleared, and you re-assign it.

Multi Status — Map

What it shows: device pins placed on an uploaded floor plan or site image, colored by attribute. Use it for spatial monitoring (a floor of sensors, a site map).

Map widget configuration: an Upload image control for the floor plan with a warning that the image is required, toggles for an Information window and a Filter window, an Advanced Settings toggle, and per-attribute controls for an icon Category, X and Y position sliders, and an optional on-click history chart.
Map options: upload a floor image, then place each device’s pin with an icon and position.
OptionWhat it does
Map image (Upload image) Upload a PNG, JPEG, or WebP floor plan or site image. Required — a warning reads “Map image is required.” and the widget will not save without one.
Window: Information Toggle an on-map info panel for the selected pin.
Window: Filter Toggle an on-map filter control.
Advanced Settings Unlocks per-pin extras: a Use label checkbox that reveals a label-text field, a Place value switch with a Label position (Center, Top, Bottom, Left, Right), and a Related widget select that links the pin to another widget on the dashboard bound to the same device and attribute.
Category (per attribute) The pin icon, chosen from a “Select a category” menu: Air Flow, Temperature, Humidity, CO₂, Acceleration, Door (open/close), Brightness, Motion, Occupancy, and Other. Required per pin.
Icon-x / Icon-y (per attribute) Place the pin from 0 to 100 across and down the image, via a number input or a slider.
Show Chart on Click (numeric attributes) Optionally show a small history chart when a numeric pin is clicked, with its own style, Live/Daily duration, aggregation interval, Y-axis, and color.
Imported maps and the per-dashboard cap: inside an application you can import an existing application Map as a map widget that mirrors that map’s pins and layout (this links the widget to the map via appMapId). A single dashboard can hold up to 16 map widgets; adding more than that is rejected. One map widget can hold up to 32 attributes (pins).

Multi Status — Progress

What it shows: progress bars toward a target, per attribute. Use it for “X of max” style readouts (people counted vs capacity, output vs goal).

Progress widget configuration: an X-axis Type select offering Time Scale or Numeric Scale, and when Time Scale is chosen, a 24-hour scale checkbox.
Progress options: choose a time scale or a numeric scale.
OptionWhat it does
X-axis Type Time Scale or Numeric Scale.
24-hour scale For Time Scale, fix the axis to a full 24-hour span.
Per-attribute Each attribute can carry a task name, a target total, and a start/end time range (time scale) or start/end number range (numeric scale).

Multi Status — Pie and Doughnut

What it shows: a share-of-total breakdown across attributes. Pie is a filled circle; Doughnut is the same with a hole in the middle. Use them for composition (share of devices by state, contribution to a total).

Pie and doughnut widget configuration: a Text color picker for the labels, a Sort by value (descending) checkbox, and a Show labels outside checkbox.
Pie and doughnut options: label color, sorting, and label placement.
OptionWhat it does
Text color Color of the slice labels.
Sort by value (Descending) Order slices largest to smallest.
Show labels outside Place value labels outside the ring instead of on the slices.
Per-attribute Each attribute is one slice, with its own Color and an optional Data label.

Data Push — Form, Button

What it does: everything above shows data. Data Push is the one widget that sends it. It pushes a payload (a command or setting) from the dashboard to a device endpoint, so an operator can act without leaving the dashboard: reset a counter, switch a mode, send a configuration string.

Create Widget dialog for a Form-style Data Push. The config shows Widget Type 'Data Push', Style 'Form', a Destination device endpoint dropdown, a Button Label reading 'Submit', and a Default Payload textarea containing a small JSON snippet. The preview shows the finished widget: an editable text box holding the payload above a Submit button.
The Form style: the operator sees the Default Payload in an editable box, can adjust it, and clicks the button to send.
Create Widget dialog for a Button-style Data Push. The config shows Style 'Button', the same Destination and Button Label fields, and a Batch Commands section whose Command 1 textarea reads 'Enter any string, JSON, or binary data as a hexadecimal string'. The preview shows the finished widget: a single large Submit button filling the tile.
The Button style: preset Batch Commands behind one large button. One click sends them all in order.
OptionWhat it does
Destination device endpoint Where the payload goes. Required. HTTPS endpoints cannot receive pushes and are shown disabled (“not supported”) in the list.
Button Label The text on the send button. Required; defaults to Submit. The placeholder suggests the idea: “e.g., Submit, Send, Start, Stop…”.
Default Payload (Form style) The text that pre-fills the widget’s input box: any string, JSON, or binary data as a hexadecimal string, up to 4096 characters.
Batch Commands (Button style) One to four payloads (Command 1, Command 2, …), each up to 4096 characters. Clicking the button sends them all, in order.

On the dashboard the two styles behave differently:

  • Form shows an editable text box pre-filled with the Default Payload, above the send button. The operator can adjust the payload before sending, or just click.
  • Button is a single large button that fills the widget. One click sends the configured commands. There is no text box to edit.
Clicking sends immediately. There is no confirmation dialog. A toast reports the result: “Command pushed” (or “All {count} commands pushed”), or an error such as “Failed to send data. Please try again later.” For a fuller delivery record (Succeeded / Pending / Failed per push), open the endpoint’s Data Push view on the Endpoints page. In the widget editor the preview is safe to click: it is marked “Preview only — no data is sent.”

Data Push widgets bind no attributes. Saving one only requires a destination and a button label.

Plan Limits

Each plan card in Billing lists a Dashboards allowance for the workspace, which may appear as a specific number or as Unlimited depending on your plan; there is no separate per-widget cap surfaced in the product. The limits that always apply are structural and are covered with each widget above: up to 16 map widgets per dashboard, up to 32 attributes (pins) per map widget, up to 16 cells per table widget (up to 16 rows and 8 columns, capped at 16 cells total), up to 8 pairs per XY-Chart, and up to 4 commands per Data Push button.

Leave a Reply

Your email address will not be published. Required fields are marked *