# hsl-iot **Repository Path**: liul3/hsl-iot ## Basic Information - **Project Name**: hsl-iot - **Description**: iot - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-03 - **Last Updated**: 2026-03-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Minimal IoT Platform (MVP) Implements: 1. Device registration (`deviceId + psk`) 2. MQTT telemetry ingest 3. PostgreSQL + TimescaleDB storage 4. Vue3 dashboard (device list + detail) 5. Command downlink + ACK + timeout status ## Stack - Backend: Java 21, Spring Boot 3, Flyway, JPA, Spring Integration MQTT - Frontend: Vue 3, Vite, Pinia, Element Plus, ECharts - Infra: EMQX, PostgreSQL 16 + TimescaleDB, Docker Compose ## Quick Start ```bash docker compose up --build ``` Open: - Frontend: `http://localhost:5173` - Backend API: `http://localhost:8080/api` - EMQX Dashboard: `http://localhost:18083` (`admin/public`) > Note: If you run against a plain PostgreSQL instance (without TimescaleDB), migrations now fallback automatically to normal tables. > To enable hypertable features, use a TimescaleDB image such as `timescale/timescaledb:*`. ## Simulator ```bash pip install -r scripts/simulator/requirements.txt python scripts/simulator/device_simulator.py --api-base http://localhost:8080/api --mqtt-host localhost ``` ## MQTT Topics - Telemetry: `iot/{deviceId}/telemetry` - Heartbeat: `iot/{deviceId}/heartbeat` - Command down: `iot/{deviceId}/cmd/down` - Command ack: `iot/{deviceId}/cmd/up`