Skip to main content

Use Dashboards

The dashboard is NeoMind's core visualization surface. Drag widgets onto a canvas, bind them to device data sources, and watch telemetry, AI inference results, and device state update in real time.

Overview

Each dashboard is a responsive grid that can hold multiple widgets:

  • Real-time updates: Data changes are pushed via WebSocket / SSE — widgets update within seconds
  • Responsive layout: Drag-and-drop editing on desktop; auto-stacked single column on mobile
  • Shareable: Generate public links with expiry times — no login required to view
  • Multi-instance: Register and switch between multiple NeoMind backend instances from the sidebar

Creating a Dashboard

  1. Click the Visual Dashboard icon in the left navigation to open the dashboard list
  2. Click the + (New Dashboard) button
Create dashboard dialog — enter name and description
  1. Enter a name (required) and description (optional), then click create
  2. The new dashboard enters edit mode automatically with an empty canvas

The dashboard list shows all created dashboards — click any name to view it:

Dashboard list — all created dashboards

View Mode vs Edit Mode

Dashboards have two modes, toggled via the gear / checkmark icon on the left side of the toolbar:

ModeDescriptionIcon
View Mode (default)Layout locked, shows real-time data only. This is what regular users and share link visitors seeGear icon (Settings2)
Edit ModeDrag widgets to reposition/resize, add/delete widgets, edit configurations. Grid supports snap-to-alignCheckmark icon (Check)
Dashboard view mode — empty state prompting to enter edit mode

An empty dashboard in view mode shows "Enter edit mode to add your first component". Click the gear icon to enter edit mode, which reveals the Add Component button.

Dashboard edit mode — empty state with Add Component button

Adding Widgets

Component Library

In edit mode, click Add Component to open the component library panel. The panel has four tabs:

TabContents
ComponentsPlatform built-in widgets, grouped by category (see below)
ExtensionsDashboard widgets bundled by installed extensions (e.g. video stream player, detection view) — full catalog in Extension Management
MarketplaceInstall online from the community widget repository
CustomImport your own ZIP widget packages or server-path widgets

Built-in widgets are grouped by category:

Component library — built-in widgets organized by category

Indicators & Metrics

WidgetPurposeTypical Use
Value CardLarge-font single value display with unit and threshold coloringTemperature, humidity, counters
LED IndicatorOn/off status indicator lightDevice online status, valve open/closed
SparklineMini trend line for compact layoutsQuick trend preview
Progress BarHorizontal/vertical progress barCPU usage, storage utilization

Charts

WidgetPurposeTypical Use
Line ChartTime-series line trendTemperature history, flow trends
Area ChartFilled time-series chartCumulative volume, inventory levels
Bar ChartDiscrete data comparisonProduction output by line, weekly stats
Pie ChartProportion distributionDevice type breakdown, alert categories

Controls

WidgetPurposeTypical Use
Command ButtonOpens a command form dialog to send commands to devices or extensionsRemote switching, parameter delivery

Business Components

WidgetPurposeTypical Use
Agent Monitor WidgetAgent selector, real-time status, statistics, and execution historyMonitoring inspection agents
AI AnalystTimeline-style AI analysis of images, metrics, and data sourcesData interpretation, anomaly attribution

Display & Content

WidgetPurposeTypical Use
Image DisplayShow latest image frame + AI annotation boxesYOLO detection results, camera snapshots
Image HistoryBrowse historical images by timeSecurity playback, event tracing
Web DisplayEmbed external webpage via iframeThird-party panels, documentation
Markdown DisplayRich text notesDashboard title, instructions

Spatial & Media

WidgetPurposeTypical Use
Map DisplayGPS coordinates + trajectoryVehicle tracking, asset distribution
Video DisplayRTSP / RTMP / HLS live video streamNE301/NE101 live camera feed
Custom LayerCommunity or custom-built widgetsAny extension

Beyond built-in widgets, you can install more from the Marketplace tab in the component library, sourced from the community marketplace.

Configuring Widgets

After selecting a widget type from the library, it's added to the canvas and a configuration panel opens. Key configuration areas:

① Data Source Binding

Each widget needs a data source to display data. Data comes from the currently connected NeoMind instance; in the config panel, select:

SelectionDescription
DeviceChoose which device's data to display
MetricChoose the specific metric (e.g. temperature, humidity)

After selection, a DataSourceId is auto-generated in the format {type}:{id}:{field}:

TypeExampleMeaning
devicedevice:esp32-01:temperatureA device metric
extensionextension:weather-forecast:temperatureAn extension metric
transformtransform:tf-01:avg_tempA transform-derived metric
tip

DataSourceId is auto-generated — no need to write it manually.

② Display Options

Depending on widget type, you can configure:

  • Title / Unit: Name and unit shown above the widget
  • Color / Threshold: Change color when value exceeds threshold (e.g. temp > 30°C turns red)
  • Time Range: For chart widgets — presets (last 5 minutes to 24 hours, today / yesterday / this week) or custom
  • Refresh Interval: Data pull frequency (doesn't affect real-time push)

③ Layout Adjustment

  • Drag: Hold and drag a widget to reposition — grid auto-aligns
  • Resize: Drag the bottom-right corner to resize
  • Delete: Select a widget, then press Delete key or click delete in the config panel

Real-time Data Flow

NeoMind pushes device data to the frontend via WebSocket / SSE:

  • Device publishes MQTT data → backend event bus → subscribed widgets refresh
  • End-to-end latency typically < 1 second (same datacenter)
  • On disconnect, the frontend auto-reconnects and backfills recent data

For historical data queries, use the widget's "Time Range" setting (last 1 hour / 24 hours / custom, plus other presets).

Data Explorer

The Data Explorer page is a centralized place to browse all data sources on the platform — device metrics, extension metrics, and transform-derived metrics in one place. It is also the management entry for data push (the Push tab).

Click any data source to open a fullscreen detail view:

  • Left pane (current state) — value card and metadata; numeric metrics also show a min / max / avg statistics grid
  • Right pane (history) — trend chart (numeric metrics only) + paginated history table
note

The history table uses server-side pagination — even very old data can be paged through, no longer limited by the frontend cache size. The trend chart shows the latest 500 points by default, with a hint when truncated. String / boolean / image metrics have no trend chart — table only.

Sharing Dashboards

You can generate public links to share dashboards with unauthenticated users:

  1. Click the Share icon in the dashboard toolbar
Share dialog — generate public link
  1. Click New Link to generate a new link
  2. Set the expiry time (1 hour / 24 hours / 3 days / 7 days / 30 days / never)
  3. Copy the generated link (e.g. https://your-host/share/<token>)
  4. Recipients can view without an account (read-only)
Interactive shares

The share dialog supports an interactive mode — visitors may also press device-control buttons you expose (e.g. issue commands), but still cannot edit the dashboard layout.

Share links never expose sensitive data

Share links never expose API keys or other dashboards. Except for device-control buttons explicitly enabled via interactive mode, visitors only see a read-only view of that specific dashboard. Links automatically expire after the set duration.

Mobile Experience

Dashboard on mobile — single column stacked layout
  • Responsive breakpoint: < 768px switches to single-column stacked layout
  • Edit mode: Drag-and-drop editing is disabled on mobile (screen too small) — edit on desktop
  • Touch interaction: Charts support pinch-to-zoom and swipe-to-pan
  • Mobile web: Access http://your-host:9375 directly in browser — no app install needed

Multi-Instance Dashboards

If you manage multiple NeoMind backends (e.g. multiple edge servers in a factory), you can register them via Instance Management (Instances), opened from the instance switcher in the left sidebar. Once registered, you can switch to an instance with one click — a dashboard shows the device data of the currently active instance.

Community & Custom Widgets

Built-in widgets cover common IoT visualization needs. For more widgets, NeoMind offers two ways to extend:

Option 1: Install from Marketplace

Switch to the Marketplace tab in the component library to browse the community widget marketplace:

Community widget marketplace — browse and install community widgets

Each widget card shows:

InfoDescription
Widget name + iconWidget identifier
Versione.g. v1.1.0
Authore.g. NeoMind Team, CamThink Team
DescriptionBrief summary of widget functionality
Install / UninstallOne-click install or remove

Click Install to add a widget. Once installed, it appears under the Marketplace category and can be added just like built-in widgets. Installed widgets show an Uninstall button for easy removal.

Marketplace widgets come from the NeoMind-Dashboard-Components community repository, continuously updated.

Option 2: Import via ZIP Upload

If you've developed your own widget or obtained a widget package from another source, you can upload it via Import Component:

  1. Switch to the Custom tab and click the Import Component button
Import component dialog — upload ZIP widget package
  1. Click the upload zone to select a .zip file (or drag a file onto the zone); on desktop/server deployments you can alternatively use server-path import (expand the advanced options and enter the widget package's path on the server directly)
  2. The ZIP must contain manifest.json (widget metadata) and bundle.js (widget code)
  3. Click Install Confirm to complete the installation. Imported custom widgets are all managed under the Custom tab (widgets installed from the marketplace remain under Marketplace)

See Developer Guide — Dashboard Component Development for the ZIP package structure.

You can also install via CLI:

# List available marketplace widgets
neomind widget market-list

# Install a marketplace widget
neomind widget market-install <widget-id>

# Install from a local ZIP file
neomind widget install /path/to/widget.zip

Building Custom Widgets

Want to build your own? A NeoMind widget is essentially a ZIP package (manifest.json + bundle.js) written in React and bundled as an IIFE. Once built, upload it via Import Component to start using.

See Developer Guide — Dashboard Component Development for the full development workflow.

Next Steps

  • AI Chat — Query device data in natural language
  • AI Agent — Scheduled / event-triggered autonomous monitoring
  • Automation Rules — Automatic alerts when data crosses thresholds

Last updated: 2026-09-08