← All projectsView source
Project · 2026
DALI lighting dashboard
IoT monitoring platform for DALI lighting controllers: data collection, time-series storage and a live dashboard.
A monorepo that watches a building’s DALI lighting controllers. A Fastify service polls each controller over REST and listens on MQTT, writes the readings to InfluxDB, and pushes changes to a React dashboard as they happen.
The whole stack runs in Docker behind Nginx, so a site can be brought up with one command and a list of controller addresses.
What I built
- Fastify API in TypeScript that polls controllers every 10 seconds and subscribes to MQTT for device updates.
- Batched writes to InfluxDB 2.x, with handling for spikes after long gaps in the data.
- Live device updates sent to the dashboard over WebSocket.
- React dashboard with device, group and history views, charted with ECharts.
- Migration from InfluxDB 1.8 to 2.x, with both stacks run side by side and Grafana on the new one.
- Docker Compose stack with Nginx as reverse proxy, versioned releases through GitHub Actions, and Vitest tests.