← All projects

Project · 2026

DALI lighting dashboard

IoT monitoring platform for DALI lighting controllers: data collection, time-series storage and a live dashboard.

View source

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.