ci/woodpecker/push/woodpecker Pipeline failed
Details
|
50 minutes ago | |
---|---|---|
bin | 4 hours ago | |
css | 4 months ago | |
fonts | 6 months ago | |
js | 4 months ago | |
lib/Dashboard | 10 hours ago | |
share | 2 weeks ago | |
templates | 50 minutes ago | |
.woodpecker.yml | 3 months ago | |
LEGAL | 6 months ago | |
LICENSE | 6 months ago | |
Makefile | 2 months ago | |
README.md | 6 months ago | |
composer.json | 2 months ago | |
index.php | 50 minutes ago | |
phpstan.neon | 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
.