LiteHouse is a smart home lighting control system designed as a graduation project in 2025 at Gymnázium Šumperk. The project enables real-time control of WiFi-enabled devices such as WLED, Tasmota, and OpenBeken using a modern web interface and MQTT communication protocol. Unlike systems such as HomeAssistant, which consume significant memory and CPU resources on Raspberry Pi devices, LiteHouse is designed to be minimal, fast, and focused purely on smart lighting control using MQTT.
The system is built to run smoothly on Raspberry Pi devices, making it ideal for low-power, always-on smart home hubs. It has been tested on:
- Raspberry Pi 4 Model B (8GB of RAM)
The system is split into a frontend and backend that communicate over REST API and MQTT. Users can:
- Control individual devices
- Adjust color and brightness
- Toggle power
- Create and save scenes
- Apply scenes dynamically
- Use the system on mobile and desktop with responsive UI
This project demonstrates practical use of MQTT protocols, Flask backend, and dynamic web control for embedded systems.
- Real-time control of WLED, Tasmota, and OpenBeken devices
- Per-device control for power, RGB color, and brightness
- Scene saving and applying (with persistent JSON storage)
- Mobile-friendly interface with touch and haptic support
- Automatic recognition of device types from settings
- Modular architecture for easy device extension
- Full control via local network without cloud dependency
- Python 3
- Flask (REST API backend)
- paho-mqtt (MQTT communication)
- HTML/CSS/JS frontend
- iro.js (color picker)
- Tasmota / WLED / OpenBeken devices
- Raspberry Pi (recommended for deployment)
LiteHouse/
│
├── backend/
│ ├── app.py # Flask API server
│ ├── main.py # Scene control and MQTT logic
│ ├── mqtt_handler.py # Device-specific MQTT command mapping
│ ├── settings.json # Configuration of devices and MQTT broker
│ ├── scenes.json # Scene storage (power, color, brightness)
│ └── requirements.txt # Python dependencies
│
├── frontend/
│ ├── index.html # Main UI
│ ├── script.js # UI logic, API calls
│ ├── styles.css # UI styles
│ └── iro.min.js # Color picker library
└──
git clone https://github.com/fsolardev/litehouse.git
cd litehouse/backendpython3 -m venv venv
source venv/bin/activate
pip install -r requirements.txtEdit the settings.json file:
{
"mqtt": {
"broker": "192.168.x.x",
"port": 1883,
"username": "leave_blank_if_not_requiered",
"password": "leave_blank_if_not_requiered"
},
"devices": [
{
"id": "wled_device",
"name": "WLED Desk",
"type": "WLED",
"topic": "wled_device"
}
]
}ChatGPT will always help you with the configuration of your devices ;)
python app.pyIt will run on: http://<raspberry-pi-ip>:5000
In your browser open the url frontend/ folder and open index.html in a browser (Chrome recommended).
For mobile, deploy via nginx or similar local HTTP server if needed.
- Scene data (power, color, brightness) is saved in
scenes.json - Scenes can be applied without reloading the page
- When applying a scene:
- If device is OFF, only a power command is sent
- If device is ON, all properties are applied
- Only supports RGB lights with MQTT-based protocols
- Currently designed for local network use only
- No login/authentication layer
- Layout for only 3 devices at once
This project demonstrates integration of:
- IoT principles and MQTT
- Frontend-to-backend communication via REST
- JSON-based persistence
- Hardware integration with WLED / Tasmota
- Modular software architecture in Python
The following features are planned for future releases of LiteHouse:
-
🎙 Voice Control
Voice commands using offline speech recognition with customizable aliases per user. (only for Raspberry Pi 5 - 16GB RAM) -
🧩 Web UI for Device Management
Add and remove smart devices directly through the web interface without editing configuration files manually. -
⚙️ Web-Based Device Configuration
Easily configure MQTT topics, device names, and types directly from the browser.
Created by a student (me) of Gymnázium Šumperk in 2025 as a maturitní projekt (graduation project).
Thanks to open-source contributors of WLED, Tasmota, and others for inspiration and technical references.