Highly opinionated MQTT Dashboard for my own Smart Home
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Bernhard Fröhlich 4bdfec0831
ci/woodpecker/push/woodpecker Pipeline failed Details
radio: Update chromecast devices and separate displayname from devicename
50 minutes ago
bin bin/heizstab: Implement heating hysteresis 4 hours ago
css dashboard: Increase icon size and colors 4 months ago
fonts Initial code drop 6 months ago
js js: Update chart.js to 4.0.1 and chartjs-adapter-date-fns to 2.0.1 4 months ago
lib/Dashboard Statistics: Round aggregated data to 3 digits after the comma to reduce database size 10 hours ago
share bin/loader: Implement battery loader scripts 2 weeks ago
templates radio: Update chromecast devices and separate displayname from devicename 50 minutes ago
.woodpecker.yml Fix CI to run make test in the same stage 3 months ago
LEGAL Charts: Initial implementation for dashboard chart 6 months ago
LICENSE Initial code drop 6 months ago
Makefile bin: Refactor bhyve plug to backup 2 months ago
README.md Update README 6 months ago
composer.json Update composer dependencies 2 months ago
index.php radio: Update chromecast devices and separate displayname from devicename 50 minutes ago
phpstan.neon bin/loader: Implement battery loader scripts 2 weeks ago

README.md

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 Admin One HTML Bulma Dashboard
  • 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.