Highly opinionated MQTT Dashboard for my own Smart Home
  • PHP 62.6%
  • HTML 27.9%
  • JavaScript 7.9%
  • CSS 0.7%
  • Makefile 0.5%
  • Other 0.4%
Find a file
2026-02-15 19:31:16 +00:00
bin bin/cleanmqtt: Fix phpstan warnings 2025-01-30 07:48:34 +00:00
css printer: Add basic support for a 3D Printer using SDCP 2026-01-04 21:15:49 +00:00
fonts ui: Rewrite UI with stock Bulma 1.0 2024-07-14 12:04:39 +00:00
images Update logo artwork 2023-04-19 19:53:29 +00:00
js ui: Fix menu on mobile and remove remaining parts of admin-one-bulma-dashboard 2024-07-14 19:01:17 +00:00
lib/Dashboard printer: Add basic support for a 3D Printer using SDCP 2026-01-04 21:15:49 +00:00
share devices: Implement Machine Reports (more to come) 2024-06-28 08:55:39 +00:00
sites printer: Revert mjpeg integration part because video does not work proplery with Chromium 2026-02-15 19:31:16 +00:00
.gitignore Add possibility to maintain multiple sites side by side 2024-01-16 21:13:07 +00:00
.woodpecker.yaml ci: Revert back to php 8.3 because it's alpines default and composer package depends on php83 2025-07-20 13:05:30 +00:00
composer.json printer: Add basic support for a 3D Printer using SDCP 2026-01-04 21:15:49 +00:00
index.php Add possibility to maintain multiple sites side by side 2024-01-16 21:13:07 +00:00
LEGAL ui: Rewrite UI with stock Bulma 1.0 2024-07-14 12:04:39 +00:00
LICENSE Initial code drop 2022-09-15 13:42:12 +00:00
Makefile ci: Increase phpstan memory limit to 256M 2025-07-20 12:50:01 +00:00
phpstan.neon CI: Fix phpstan and php-cs-fixer warnings 2025-06-13 14:54:22 +00:00
README.md ui: Cleanup CSS generation 2024-07-14 12:25:28 +00:00

iot.dashboard

Highly opinionated MQTT Dashboard for my own Smart Home.

In 2022 I needed to integrate some smart devices in my house but was unable to find a suitable dashboard for it. There are some full blown kitchensinks out there like Home Assistant but they were insanely complex and fragile for my very simple needs.

Environment

  • all Devices are publishing to MQTT broker (+retain)
  • Temperature / Humidity (RuuviTag, Shelly H&T)
  • Plugs (Shelly Plug S)
  • Smart Meter (Shelly 3EM)
  • Solar Inverter (OpenDTU, Hoymiles HM-800)
  • Chromecast built-in (chromecast-mqtt-connector)

Features

  • simple, modern and lightweight (Slim PHP Framework / SQLite, PHP 8.1, minimum dependencies)
  • internet radio player
  • ventilation hints based on outdoor and indoor humidity
  • uses published data from MQTT directly
  • collect and aggregate data from MQTT for statistics
  • automation for humidifier and ventilator
  • modern web interface using Bulma CSS Framework
  • charts per topic using Chart.js

Setup

Dashboard needs some dependencies that are fairly common so they need to be installed first.

There is a simple Makefile which will handle all of the required steps to download the PHP dependencies, generate the CSS files etc.

make

The only thing left to do is to create the SQLite Database tables and add some configuration.

./bin/createdb

Development

For development we use the CI tools php-cs-fixer and phpstan.

There is a special make target which runs them.

make test

For testing and development you can use the builtin php webserver which is definitely not recommended for production use.

php -S localhost:8080 index.php

For a production system please use nginx and the example config in share/dashboard.conf.

Then you can access dashboard via http://localhost:8080/ and login as user admin with password admin.