A comprehensive web-based dashboard for controlling and managing IoT devices in smart home environments. LUR provides an intuitive interface to toggle devices, adjust settings, and manage your connected ecosystem through an accessible admin panel.
-
Multi-Device Support โ Control lights, thermostats, fans, locks, cameras, monitors, speakers, sensors, and plugs
-
Device-Specific Controls:
- Lights (๐ก) โ On/off with brightness slider
- Thermostat (๐ก๏ธ) โ Temperature control (60โ85ยฐF)
- Fan (๐) โ Speed adjustment (1โ5 levels)
- Lock (๐) โ Lock/unlock with status indicator
- Camera (๐น) โ Recording start/stop
- Monitor (๐ฅ๏ธ), Speaker (๐), Sensor (๐ก), Plug (๐) โ On/off toggles
-
Responsive Grid Layout โ Adapts seamlessly to all screen sizes
-
Interactive UI โ Intuitive hover effects, click feedback, and full keyboard navigation
-
Device Management โ Add, edit, and delete devices through an admin panel
-
Modal Interface โ Easy device configuration with name, type, and IP settings
-
Data Persistence โ Automatic localStorage saves across sessions
-
Simulated Backend โ Mock PHP endpoints for testing and development
- Modern web browser (Chrome, Firefox, Edge, Safari)
- Local PHP development server (XAMPP, WAMP, or
php -S localhost:8000) - Optional: Code editor (VS Code, Sublime Text, etc.)
git clone https://github.com/your-username/lur-legacy-universal-recording.git
cd lurOption A: Using PHP Built-in Server
php -S localhost:8000Option B: Using XAMPP
- Place the project in
C:\xampp\htdocs\lur\ - Start Apache and PHP from the XAMPP Control Panel
Open your browser and navigate to:
http://localhost:8000/index.html
The admin panel is accessible at:
http://localhost:8000/admin.html
- View Devices โ All IoT devices displayed in a responsive grid
- Control Devices:
- Click buttons to toggle devices on/off
- Lock/unlock doors with the lock button
- Start/stop camera recording
- Use sliders to adjust brightness, temperature, or fan speed
- Manage Devices โ Click the three-dot menu on any device to edit or delete
- Access Admin โ Click "Manage Devices" button to add new devices
- Add Device โ Enter device name, select type, and optionally set IP address
- Auto-Discovery โ Simulate device discovery with predefined mock devices
- Return Dashboard โ Click "Back to Dashboard" to exit admin panel
- Click the three-dot menu (โฎ) on any device card
- Select "Edit" to open the configuration modal
- Update device name, type, or IP address
- Save changes โ dashboard updates automatically
| Key | Action |
|---|---|
Tab |
Navigate between controls |
Enter |
Activate buttons |
Space |
Toggle or select |
lur/
โโโ index.html # Main dashboard interface
โโโ admin.html # Device management panel
โโโ styles.css # Responsive styling (dark theme)
โโโ script.js # Dashboard logic and device control
โโโ admin.js # Admin panel functionality
โโโ lighton.php # Mock endpoint for device activation
โโโ lightoff.php # Mock endpoint for device deactivation
โโโ README.md # Project documentation
Place API calls in script.js:
// Example: API integration
fetch(`https://your-iot-api.com/device/${id}/control`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ action: 'on' })
});Edit script.js to add new device categories:
case 'customDevice':
return `<div class="device-card">
<!-- Your custom HTML -->
</div>`;Modify styles.css to change colors, spacing, or hover effects. The dashboard uses a dark theme with:
- Primary background:
#0f0f0f - Card background:
#1a1a1a - Text color:
#e8e8e8 - Accent colors: Blue (#3498db), Green (#2ecc71), Red (#e74c3c)
Device configurations are stored in browser localStorage under the iotDevices key. This ensures your settings persist across sessions.
To reset to default devices:
localStorage.removeItem('iotDevices');
location.reload();- Simulation Mode โ The dashboard currently simulates device control using localStorage and PHP endpoints
- IP Addresses โ Optional field, used only in fetch requests for simulation
- Auto-Discovery โ Currently returns predefined example devices; implementation of real UPnP/mDNS for device discovery planned
Update device initialization in admin.js:
const deviceTypes = ['light', 'thermostat', 'fan', 'lock', 'camera', 'monitor', 'speaker', 'sensor', 'plug', 'your-device'];Customize styles.css for themes, animations, or additional layout options
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m "Add amazing feature") - Push to the branch (
git push origin feature/amazing-feature) - Open a pull request
This project is licensed under the MIT License. See the LICENSE file for details.
- Issues โ Report bugs or request features on GitHub Issues
- Discussions โ Share ideas and ask questions in GitHub Discussions
Made with โค๏ธ for smart home enthusiasts and developers