Educational IoT project demonstrating industrial-grade data processing with United Manufacturing Hub
Most IoT homelabs use basic dashboards. This project applies United Manufacturing Hub patterns to home devices - the same industrial data architecture used in factories.
My homelab example showing MQTT device integration with industrial-grade data processing.
Docker Compose stack with:
- UMH Core - Kafka processing and Unified Namespace
- MQTT Broker - Device communication (Mosquitto)
- Time-Series DB - InfluxDB for metrics storage
- Visualization - Grafana dashboards
- Processing - Node-RED for automation
vs UMH Classic: Simpler Docker Compose + InfluxDB instead of Kubernetes + TimescaleDB
Requirements:
- Raspberry Pi with Docker Compose
- Separate system for UMH Core
- MQTT devices (Tasmota, ESP32, etc.)
- Network connectivity
git clone https://github.com/SheetMetalConnect/IoT-UMH-Homelab.git
cd IoT-UMH-Homelab
docker compose up -dAdvanced Users: If you already have Docker and understand the stack, just run docker compose up -d and configure UMH Core separately. Important: Since both systems run Docker containers, you must either merge UMH Core into this Docker Compose stack, or create a shared Docker network between the two systems for container-to-container communication.
Setup Steps:
- Fixed IP: Configure Pi networking - docs/network-setup.md
- UMH Core: Deploy on separate system - UMH Core docs
- UMH Configuration:
- Bridge (MQTT ingestion):
configs/umh/mqtt-input.yaml - Data Model (structured data):
configs/umh/data-model.yaml - Stand-alone Flow (InfluxDB export):
configs/umh/influxdb-output.yaml
- Bridge (MQTT ingestion):
- Devices: Connect MQTT devices - see docs/
Services:
- Grafana:
http://YOUR_PI_IP:3000 - InfluxDB:
http://YOUR_PI_IP:8086 - MQTT:
tcp://YOUR_PI_IP:1883 - Node-RED:
http://YOUR_PI_IP:1880
Management: Docker CLI or CasaOS for web UI
See docs/setup-guide.md for complete instructions.
IoT-UMH-Homelab/
├── docker-compose.yaml # Main stack
├── docs/ # Documentation
├── configs/umh/ # UMH configurations (Bridge + Data Model + Stand-alone Flow)
├── examples/grafana/ # Dashboard templates
└── README.md
[Your MQTT Devices] --MQTT--> [Mosquitto:1883] <---> [UMH Core]
(Tasmota, ESP32 sensors, | |
custom MQTT producers) v v
[Docker Services] [Kafka Processing]
- InfluxDB |
- Grafana |
- Node-RED v
[InfluxDB Writer]
Flow: Devices → MQTT Bridge → UNS → Data Model → Stand-alone Flow → InfluxDB → Grafana
UMH Architecture:
- Bridge - MQTT device connectivity with health monitoring
- Data Model - Transform raw data into structured schema
- Stand-alone Flow - Export processed data to InfluxDB
- Educational: My homelab example - adapt to your setup
- No Guarantees: Experimental, use at own risk
- Any MQTT Devices: Tasmota, ESP32, custom builds
- Fixed IP Required: For reliable operation
- UMH Core Documentation - Official UMH Core docs
- UMH Core GitHub Repository - Source code and issues
- UMH Management Console - Cloud-based monitoring and configuration
- UMH Website - Product overview and enterprise offerings
Questions? Open an issue or reach me at luke@vanenkhuizen.com
MIT License - see LICENSE file.