A gui application to drive uvos's smart home systems
| src | ||
| tests | ||
| AGENTS.md | ||
| CMakeLists.txt | ||
| README.md | ||
| remote.html | ||
| resources.qrc | ||
| xyz.uvos.icon.bmp | ||
| xyz.uvos.icon.png | ||
| xyz.uvos.smartvos.desktop | ||
SHinterface - Smart Home Control Interface
A Qt6-based smart home control application that interfaces with microcontrollers and sensors to manage home automation devices.
Quick Start
Building
mkdir build
cd build
cmake ..
make
Running
Primary (Master) Mode:
./SHinterface -m
Secondary (Client) Mode:
./SHinterface -H 192.168.1.100 -p 38940
Headless Server Mode:
./SHinterface -m -e
Features
- ✅ Control relays and PWM outputs
- ✅ Monitor various sensors (temperature, humidity, doors, etc.)
- ✅ MQTT sensor integration
- ✅ Actor-based automation system
- ✅ RGB lighting control
- ✅ WebSocket API for remote access
- ✅ Primary/secondary architecture for distributed control
Configuration
Settings are stored in JSON format. Default location:
~/.config/shinterface.json
You can specify a custom config file with:
./SHinterface -c /path/to/config.json
Usage
Primary Mode (Master)
The primary instance connects to your microcontroller and manages all devices. It can run with or without a GUI.
Secondary Mode (Client)
Secondary instances connect to the primary via TCP and provide additional control points without needing their own microcontroller connection.
Command Line Options
-m, --master Use in master mode
-H, --host <address> Set server host IP address (default: 0.0.0.0)
-p, --port <port> Set server port (default: 38940)
-c, --config <file> Set config file path
-e, --headless Don't start the GUI (master mode only)
--help Show help
--version Show version
Architecture
- Items: Represent controllable devices (relays, lights, etc.)
- Actors: Automate actions based on sensors or time
- Sensors: Provide data from physical sensors and calculated sources
- Services: TCP and WebSocket interfaces for remote control
Dependencies
- CMake 4.0+
- Qt6 (Core, Gui, Widgets, Network, Multimedia, SerialPort, Mqtt, WebSockets)
- libpipewire-0.3
- libnl-3.0
License
See LICENSE file for details.