A modern, intuitive MQTT-based home automation dashboard built with Next.js 14, Shadcn/UI, and TypeScript. Control and monitor your IoT devices in real-time with a clean, responsive interface.
- 🎛️ Multiple Device Types
- Switches (ON/OFF control)
- Buttons (Trigger actions)
- Sliders (Numeric control)
- Read-only displays (Sensor values)
- 🌐 MQTT Integration
- Real-time communication
- Support for multiple brokers
- Secure WebSocket connections
- 🎨 Modern UI/UX
- Dark/Light mode
- Responsive design
- Customizable icons
- Clean, intuitive interface
- ⚡ Performance
- Built on Next.js 14
- Real-time updates
- Optimized rendering
- Node.js 18.17 or later
- npm or yarn
- MQTT broker access
-
Clone the repository: git clone https://github.com/yourusername/homator.git cd homator
-
Install dependencies: npm install
yarn install
- Start the development server: npm run dev
yarn dev
- Open http://localhost:3000 in your browser
- Click the Settings icon (⚙️) in the top right
- Choose from preset brokers or enter custom details: wss://broker.emqx.io:8084/mqtt (Default public broker)
- Click "+ Add Device"
- Configure your device:
- Name: Descriptive name
- Type: Switch/Button/Slider/Read
- Topic: MQTT topic (e.g., "home/living/light")
- Icon: Visual identifier
- Device-specific settings
{
"type": "switch",
"config": {
"onMessage": "ON",
"offMessage": "OFF"
}
}{
"type": "button",
"config": {
"buttonMessage": "PRESS"
}
}{
"type": "slider",
"config": {
"min": 0,
"max": 100,
"unit": "%"
}
}{
"type": "read",
"config": {
"unit": "°C"
}
}-
Frontend Framework
-
UI Components
-
MQTT Communication
homator/
├── app/ # Next.js app directory
│ ├── layout.tsx # Root layout
│ └── page.tsx # Home page
├── components/ # React components
│ ├── ui/ # Shadcn UI components
│ ├── dashboard.tsx # Main dashboard
│ └── device-dialog.tsx # Device configuration
├── lib/ # Utilities
├── public/ # Static assets
└── types/ # TypeScript types
We welcome contributions! Please follow these steps:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support:
- Open an issue
- Join our Discord community
- Email: support@homator.com
- Device Groups
- Custom Themes
- Automation Rules
- Historical Data
