> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreflux.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Data Viewer

> Subscribe to topics, view the topic tree, and publish messages from the Coreflux HUB

<Frame caption="Data Viewer with the Publish panel on the left, Topic Tree expanded to $SYS/Coreflux/Resources in the center, and the Resources/MemoryInfoTotal topic plotted live on the right">
  <img src="https://mintcdn.com/coreflux/W9CJ-kgVY3a3sCeL/images/mqtt-explorer-overview.png?fit=max&auto=format&n=W9CJ-kgVY3a3sCeL&q=85&s=f9299f752c8f7b52c8e5948edaa0d67c" alt="Coreflux HUB Data Viewer showing the Publish panel on the left with topic input, QoS selector, Retain toggle, and payload field; the Topic Tree expanded to $SYS/Coreflux/Resources with MemoryInfoTotal selected; and a live chart of Resources/MemoryInfoTotal values streaming on the right" width="1024" height="639" data-path="images/mqtt-explorer-overview.png" />
</Frame>

## Why Use the Data Viewer?

You need to see what data is flowing through your broker—which topics are active, what payloads look like, and how to send test messages. The built-in Data Viewer in the Coreflux HUB lets you subscribe to topics, browse the topic tree, and publish messages without installing an external MQTT client.

<Tip>
  **An MQTT data viewer built into your Coreflux.** Designed to feel as intuitive as the popular MQTT Explorer desktop app — but with zero installation, right inside the HUB.
</Tip>

## When to Use It

* **Viewing device data** — Subscribe to sensor or device topics to see live readings (temperature, status, etc.) as they arrive
* **Exploring your topic structure** — Browse the Topic Tree to understand which topics exist and how they are organized
* **Verifying Actions** — Subscribe to output topics to confirm your LoT Actions are publishing correctly
* **Debugging** — Inspect payloads and topic structure in real time
* **Testing** — Publish messages to trigger Actions, test Routes, or simulate device data
* **Monitoring broker activity** — Watch `$SYS` topics to check broker health, connected clients, and message throughput

***

## Accessing the Data Viewer

1. In the HUB top navigation, select **MQTT**, then **Data Viewer**.
2. The Topic Tree appears on the left, showing topics as they receive messages.
3. Select a topic to view its payloads in the right panel.

<Frame caption="Opening the Data Viewer from the Coreflux HUB dashboard">
  <img src="https://mintcdn.com/coreflux/NyitfZKdXrngxrt5/images/view-mqtt-data.gif?s=4d1716fe92adc3e8241a56557b7f1292" alt="Animated walkthrough showing how to open the Data Viewer from the Coreflux HUB top navigation" width="800" height="500" data-path="images/view-mqtt-data.gif" />
</Frame>

## Topic Tree

The Topic Tree shows the hierarchical structure of topics. Topics appear as messages are received. Expand branches to navigate and select a topic to view its payload history in the payload viewer.

<Frame caption="Topic Tree expanded to $SYS/Coreflux/Routes with the SiemensS7Route LoT definition shown in the payload viewer and a live message timeline at the top">
  <img src="https://mintcdn.com/coreflux/W9CJ-kgVY3a3sCeL/images/mqtt-explorer-topic.png?fit=max&auto=format&n=W9CJ-kgVY3a3sCeL&q=85&s=1ea2485d3377208835e6698568d51191" alt="Coreflux HUB Data Viewer with $SYS/Coreflux expanded showing Actions, Command, Comms, Config, Log, Models, Python, Resources, Routes, Rules, Visus, Assets, License, and Version subtopics; Routes expanded to BrokerAgent, SiemensS7Route, and Terminal; SiemensS7Route selected with its LoT route definition displayed in the payload viewer and a live message timeline above" width="1919" height="1199" data-path="images/mqtt-explorer-topic.png" />
</Frame>

## Exploring Live Data

The Data Viewer is laid out as three vertical panels: **Publish** on the left, the **Topic Tree** in the middle, and a **Detail area** on the right where you build a personal view of the topics you care about right now. You can drag the divider between the tree and the detail area, and collapse the Publish panel into a thin rail to give yourself more room.

<Tip>
  **Like an instrument panel for your broker.** Instead of reading rows of raw messages, you pin the topics that matter to the right side and watch them update — values, charts, lamps, even maps — in real time.
</Tip>

### Previewing a topic

Get a feel for what is happening on the broker without committing to a layout. Click any topic in the tree and its latest payload appears in the Detail area as a quick preview.

Each row in the tree carries a small **type icon** that tells you at a glance what kind of value the topic currently holds:

| Icon               | Meaning         |
| ------------------ | --------------- |
| Glowing orange dot | Boolean `true`  |
| Empty dot          | Boolean `false` |
| `#`                | Number          |
| `{}`               | JSON object     |
| `[]`               | JSON array      |
| `"`                | Plain string    |

Rows briefly **flash orange** whenever a new message arrives, so you can see broker activity without staring at every value. To narrow the list, type any part of a topic path into the **Filter** box at the top of the tree — the filter matches anywhere in the path, and the usual display cap is lifted while you are filtering. For broader monitoring, you can also subscribe with a wildcard pattern such as `sensors/#`, and every matching topic appears in the tree as messages come in.

### Tracking what matters

Once a topic is worth watching, **pin it**: double-click the topic, or drag it from the tree onto the Detail area. A card appears for it, and the card shape adapts to the payload so you don't have to mentally decode raw values:

* **Numbers** render as a large value with a **sparkline** of recent history — perfect for sensor readings like temperature or RPM.
* **Booleans** render as a glowing **lamp** — green when `true`, dim when `false`.
* **JSON and text** render with colored keys and an expandable tree, so nested objects stay readable.
* **Geolocation** payloads (latitude/longitude) render as a small **map** with the current point and a trail of recent positions, plus the raw payload underneath.

Cards can be reordered by dragging them up or down, copied to the clipboard with one click, and removed with the **X** in their corner. Add more topics any time from the dashed **+ Add topic** button at the bottom of the cards, which opens a searchable list of every known topic.

<Frame caption="Tracking kpi/operational/messageCount: the tree on the left shows live values with type icons, while the right panel pins the topic as a card with the current value (113) and a sparkline of recent history, plus a timeline of the last 197 messages above it">
  <img src="https://mintcdn.com/coreflux/W9CJ-kgVY3a3sCeL/images/mqtt-explorer-tracked-card.png?fit=max&auto=format&n=W9CJ-kgVY3a3sCeL&q=85&s=7727a8349d7dd7f248bfd35ade07e04c" alt="Coreflux HUB Data Viewer with the Topic Tree on the left expanded to kpi/operational showing messageCount, messagesPerMinute, and status with their inline values; on the right a tracked card for operational/messageCount displays the value 113 with a sparkline trail, a timeline above shows 197 message marks, and an + Add topic button sits below the card" width="1024" height="241" data-path="images/mqtt-explorer-tracked-card.png" />
</Frame>

### Replaying history with the timeline

As soon as you are tracking topics with more than one message of history, a **timeline** appears at the top of the Detail area. Every tracked topic gets its own color, and every message it has received is drawn as a colored mark on a horizontal track.

From there you can:

* **Click or drag** anywhere on the track to scrub to a moment in time — every card below jumps to the values they had then.
* Step message-by-message with **First / Previous / Next / Last**.
* Hit **Play** to replay the message history like a video, with cards animating through every value.
* Tap **Live** to snap back to the latest message and resume real-time updates (the label turns green when you are caught up).
* Open the gear icon to change the **history buffer** per topic, from 50 up to 2 000 messages — larger buffers give you more scrub range.

While the viewer is focused, the arrow keys step through messages, **Home** jumps to the first, and **End** jumps back to live.

<Frame caption="Timeline tracking two operational topics across 450 messages: each topic gets its own colored chip and row, playback controls sit on the left, the Live indicator confirms real-time updates, and the counter on the right shows the current position and timestamp">
  <img src="https://mintcdn.com/coreflux/W9CJ-kgVY3a3sCeL/images/mqtt-explorer-timeline.png?fit=max&auto=format&n=W9CJ-kgVY3a3sCeL&q=85&s=d0d4f281174c5fff21a1ca0e5207afd5" alt="Coreflux HUB Data Viewer timeline showing two topic chips for operational/messa... with 225 messages each in orange and purple, First/Previous/Play/Next/Last playback controls, a green Live indicator, the position counter 450 / 450 with timestamp 15:38:31.796, and a horizontal track with orange and purple message marks spanning from 15:27:30.810 to 15:38:31.796" width="918" height="182" data-path="images/mqtt-explorer-timeline.png" />
</Frame>

### Drilling into payloads

When a payload is too big to read inline, click its preview in the tree to open the **payload inspector** — a floating window that parses the full payload and lets you expand JSON to any depth. If the payload contains coordinates, the inspector also draws a small map at the top.

For payloads where you only care about one number, drag a single value out of the inspector (or out of a card's expanded JSON tree) onto the Detail area. That value becomes its own **extraction card** — a small card that tracks just that one field, sparkline included if it's numeric. It's the fastest way to follow `temperature` from a 30-field sensor payload without the surrounding noise.

<Frame caption="Payload inspector opened for $SYS/Coreflux/Config: the full broker configuration payload is parsed and laid out field-by-field with colored keys and values, ready to drill into or drag from">
  <img src="https://mintcdn.com/coreflux/W9CJ-kgVY3a3sCeL/images/mqtt-explorer-payload-inspector.png?fit=max&auto=format&n=W9CJ-kgVY3a3sCeL&q=85&s=324a2efe2e92be70c85b27b1cf601fbc" alt="Coreflux HUB Data Viewer payload inspector floating over the Topic Tree, displaying the $SYS/Coreflux/Config payload with fields such as Name, Port 1883, TlsPort 8884, WebsocketPortTls 443, AnonymousLogin true, and several certificate paths, each with its key highlighted and value formatted by type" width="1024" height="551" data-path="images/mqtt-explorer-payload-inspector.png" />
</Frame>

### Drag-and-drop cheatsheet

Most of the viewer is built around dragging. While you are dragging, valid drop zones light up so you can't miss them.

| Drag this                   | Onto this                        | Result                                           |
| --------------------------- | -------------------------------- | ------------------------------------------------ |
| A topic in the tree         | The Detail area                  | Adds a tracked card for that topic               |
| A topic in the tree         | The timeline's topic chips       | Adds the topic to the timeline only              |
| A topic in the tree         | The Publish panel's Topic input  | Pre-fills the publish topic                      |
| A topic in the tree         | The Publish panel's Payload area | Pastes the topic's current value                 |
| A JSON value from a payload | The Detail area                  | Creates an extraction card for that single field |
| A JSON value from a payload | The Publish panel's Payload area | Pastes just that value                           |

## Publishing Messages

To publish a test message:

1. Select or enter the target topic.
2. Enter the payload (plain text or JSON).
3. Click **Publish** to send the message.

Use this to trigger Actions, test route configurations, or simulate device data.

<Frame caption="Publishing a command to $SYS/Coreflux/Command with a success confirmation toast">
  <img src="https://mintcdn.com/coreflux/W9CJ-kgVY3a3sCeL/images/mqtt-explorer-publish.png?fit=max&auto=format&n=W9CJ-kgVY3a3sCeL&q=85&s=bddb9a4e99d0286f809cd79d36b001d4" alt="Coreflux HUB Data Viewer showing a published message to $SYS/Coreflux/Command with payload -h, a Message sent success toast, and the sent message displayed in the payload viewer" width="1919" height="1199" data-path="images/mqtt-explorer-publish.png" />
</Frame>

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Connected Clients" icon="users" href="/coreflux-hub/mqtt/connected-clients">
    See which clients are connected to your broker.
  </Card>

  <Card title="MQTT Broker Protocol" icon="broadcast-tower" href="/mqtt-broker/protocol">
    Learn how MQTT topics and wildcards work.
  </Card>
</CardGroup>
