v1.8.2 · Docker · pip · Home Assistant

Self-hosted MQTT dashboard for real-time IoT data

Add a topic, publish, and every message is logged with live values, history and CSV. Devices show online or offline from their last will; encrypted device topics and edge-node heartbeats appear by themselves. Under 40 MB of memory.

Demo: sign in as admin / admin123. It may take up to a minute to wake.

Self hostedAny MQTT brokerARM + x86Under 40 MB RAMMIT license
The SenseHive dashboard: topics with live values and last-will status

Install

Four ways, each tested end to end on every change with a real broker and a browser.

Python 3.9 or newer, any operating system.

pip install sensehive-iot && sensehive --port 5000 --broker localhost

No devices yet? An emulated fleet comes with the package:

sensehive-demo --broker localhost --register http://localhost:5000

Open http://localhost:5000, sign in as admin / admin123, then change it.

The dashboard filled by sensehive-demo after pip install
Add to Home Assistant
  1. Add the repository (the button, or Settings, Apps, Install app, menu, Repositories)
  2. Install SenseHive and press Start
  3. Turn on Show in sidebar
  4. Open it: no second sign-in, the Mosquitto add-on is found by itself

amd64 and aarch64 (Raspberry Pi 4 and 5), data in Home Assistant backups, AppArmor, security rating 8/8. Tested in a real Home Assistant with a browser.

SenseHive in the Home Assistant sidebar

One image for x86 and 64-bit Raspberry Pi (amd64 and arm64), 55 MB.

docker run -d --name sensehive --restart unless-stopped -p 5000:5000 -v sensehive-data:/app/data devprincekumar/sense-hive:1.8

The emulated fleet is in the image too:

docker exec sensehive python demo_fleet.py --broker YOUR-BROKER --register http://127.0.0.1:5000

Set the broker in Settings, or with -e DEFAULT_BROKER_HOST=192.168.1.10 -e SENSEHIVE_FORCE_BROKER=true. The whole demo in one container: devprincekumar/sense-hive:demo.

SenseHive on a phone

From source, for development or a machine without Docker:

git clone https://github.com/855princekumar/sense-hive && cd sense-hive/version-1.0 && pip install -r requirements.txt && python app.py

The full systemd unit and every option are in the quick start guide.

[Service] ExecStart=/home/sensehive/venv/bin/sensehive --port 5000 --broker localhost Environment=SENSEHIVE_ADMIN_PASSWORD=choose-a-strong-password Restart=on-failure

Step by step with screenshots, publishing from the command line, Python or an ESP32, and troubleshooting: docs/QUICKSTART.md

A real deployment, live

Not a mock-up: the current SenseHive with real heartbeat agents and a PowerPulse node, running on its own private broker.

  • Six devices publishing telemetry every few seconds, each with a last will.
  • Four heartbeat agents the real agent (1.3.0), joined with tokens; one node crashes now and then and comes back.
  • A PowerPulse node its beacon sealed on a secure topic and found by itself; the plug is pulled every few minutes.
  • Nothing shared own broker, own database, new keys at every start; password and broker are locked for visitors.
Open the live demo Sign in as admin / admin123

A free host: it sleeps when nobody uses it and wakes in about a minute, fresh. Every change to SenseHive is checked on it the way a visitor sees it.

The Heartbeats page: edge nodes online, offline or silent

See it working

Real screenshots of the current release, taken by CI from a running SenseHive and a real Home Assistant (made-up data).

What it does

Small on purpose, complete where it matters.

Every message, every topic

Add a topic (wildcards like sensors/# work): each message is stored in SQLite and shown live, field by field for JSON. Tags, grouping, filters, retention by age or count.

Online and offline, from the device

Give a node its last-will topic and it shows Active or Inactive the moment the broker sends the will, with counts in the header.

History, charts, CSV

Every topic keeps its history with a chart and CSV export; heartbeat history from 1 minute to 30 days with breaks and uptime.

Secure topics, found by themselves

A key per device; devices publish encrypted and signed data under sensehive/secure/ and appear on their own. ESP32, MicroPython, Node-RED, Python.

Edge-node heartbeats

Raspberry Pis and gateways running the heartbeat agent report every 10 s, encrypted, with a signed last will. Join tokens for one node or a CSV for many.

Home Assistant, pip, Docker

An add-on in the sidebar (no second sign-in, Mosquitto found by itself), a pip package with an emulated fleet, one multi-arch image.

Secure by default

Signed sessions, a sign-in rate limit, a strict Content Security Policy, nothing loaded from other sites, hashed passwords.

Light enough for a Pi

About 35 MB of memory idle and under 40 MB with 500 edge nodes and 100 busy topics, in a 55 MB image.

Fits any screen

Phone to desktop, zoom 67 to 200 %, light and dark, every dialog fits: 568 browser checks on every change.

Performance, measured

SenseHive 1.8.1 in Docker: 500 edge nodes sending encrypted heartbeats (50 verified messages a second), then 100 topics logging 50 more. Medians of 5-second samples.

34.5 MB
memory, idle
37.4 MB
500 nodes + 100 busy topics
55 MB
Docker image
0
heartbeats refused
LoadCPU / memory
Idle, 100 topics subscribed0.03 % / 34.5 MB
500 heartbeat nodes, 50 msg/s verified10.2 % / 36.0 MB
Plus 100 topics logging 50 msg/s26.6 % / 37.4 MB
API, 500 nodes and 100 topics4 to 16 ms p50
Storage per logged messageabout 370 bytes

One core of an Intel Core i7-1185G7, Docker Desktop; a Raspberry Pi core takes a few times the CPU share, memory stays about the same. Script and full results

The SenseHive family

SenseHive is the hub; these feed it, and SenseHive finds them by itself. All open source, all tested together.

MQTT heartbeat agent 1.3

For Linux edge nodes: encrypted heartbeats every 10 s and a last will; online, offline or silent in SenseHive. One command with a join token, or many nodes at once.

PowerPulse 2.0

ESP32 power presence beacon: flash, plug in, and it appears under secure topics, online, and offline the moment power goes. Tested on a simulated ESP32.

Home Assistant add-on

SenseHive in the Home Assistant sidebar, tested in a real Home Assistant (Supervisor and Core) with a browser on every change.

EdgeShell 1.17

Fleet manager for Raspberry Pi and edge devices: installs the heartbeat agent as an app with its own venv and a way back, shows SenseHive's state on every node card.

Tested the way you use it

On every change, before a release can ship. A failing check stops the release.

568
browser checks: every page and dialog, phone to desktop, zoom 67 to 200 %
51
checks in a real Home Assistant, a browser in the panel
25 + 25
quick start checks: pip install and docker run, a broker, a browser
30
live demo checks: agents, PowerPulse, the guard, laptop and phone
210
unit tests, plus PowerPulse on a simulated ESP32 and the agent on systemd

Why it exists

About the project

Small on purpose

Most IoT platforms come with heavy dependencies and long setup. SenseHive is the simplest way to log data and watch connected devices: one process, SQLite, any broker.

One command to start

No configuration files or schemas: pip, Docker or the Home Assistant add-on, then add a topic. Each topic gets its own log, sorted and exportable.

Not a replacement for ThingsBoard or Grafana: a light tool to collect, show and export what each topic sends, with nothing extra to run.

"A view for IoT developers that takes seconds to launch and no time to configure."

Memory

under 40 MB

Scale

Edge and lab

Runs on

amd64, arm64

License

MIT

Why not Grafana or a cloud IoT platform?

Pick the tool for the job: from minimal edge logging to enterprise analytics.

AspectSenseHiveThingsBoardGrafana + PrometheusNode-RED + InfluxDB
Memoryabout 35 MB2 GB or more500 MB or more300 MB or more
SetupOne command, add a topicDevices and entity mappingExporters and dashboardsFlows and a database
ScaleEdge and developer labEnterpriseInfrastructure operationsPrototyping and automation
ModelA log per topicDevice digital twinTime-series metricsLogic flows
StorageSQLite, per topicSQL and NoSQLPrometheus TSDBInfluxDB
Device statusFrom the MQTT last willDevice activityExporter up or downBuilt by hand
Home AssistantAdd-on, in the sidebarIntegration (separate server)Data sourceAdd-ons available
InstallDocker, pip, add-on, nativeDocker, packagesDocker, packagesTwo services