Automatically generate beautiful Home Assistant dashboards based on your preferences.
Nidia Dashboard Composer is a HACS-compatible custom integration that intelligently creates Lovelace dashboards by analyzing your Home Assistant setup and applying user-selected preferences.
- 🎯 Smart Entity Discovery: Automatically finds and categorizes your entities
- 🧩 Modular Design: Select which modules to include (lights, climate, energy, media, etc.)
- 🎨 Customizable Layout: Choose between compact, standard, or large layouts
- 🧪 Developer-Friendly: Built-in testing harness with mock scenarios
- 📦 HACS Compatible: Easy installation and updates
- 🔧 Extensible: Add your own modules easily
- Open HACS in your Home Assistant instance
- Click on "Integrations"
- Click the three dots in the top right corner
- Select "Custom repositories"
- Add
https://github.com/antbald/nidia-dashboard-composeras an Integration - Click "Install"
- Restart Home Assistant
- Download the latest release
- Copy the
custom_components/nidia_dashboard_composerdirectory to your Home Assistantcustom_componentsfolder - Restart Home Assistant
-
Enable in configuration.yaml:
nidia_dashboard_composer: -
Restart Home Assistant
-
After restart, look for "Nidia Dashboard Composer" in your Home Assistant sidebar
-
Click on it to open the configuration panel
-
Configure Tab: Select which modules you want to include
-
Generate Tab: Click "Generate Dashboard" to create your dashboard
-
Test Tab (for developers): Test with predefined scenarios
- Developer Guide: Detailed development instructions
- Architecture: System design and architecture
- 🔆 Lights: Automatically grouped by area
- 🌡️ Climate: Thermostats and climate controls
- 📺 Media: Media players
- ⚡ Energy: Energy monitoring and solar
- More modules coming soon!
# Install test dependencies
pip install -r requirements_test.txt
# Run tests
pytest tests/The integration includes an internal testing module accessible from the "Test" tab:
- Select a test scenario (e.g., "Small Home", "Energy Home")
- Click the test button
- View the generated dashboard JSON and internal model
⚠️ IMPORTANT: Before committing changes, ALWAYS run tests!
See DEVELOPMENT_WORKFLOW.md for mandatory testing requirements.
cd frontend
npm install
npm run buildThe build output will be placed in custom_components/nidia_dashboard_composer/www/.
- Create a file in
custom_components/nidia_dashboard_composer/generator/modules/ - Implement the module class:
from ..types import ModuleResult, EntityInfo
class MyModule:
@staticmethod
def generate(entities: list[EntityInfo], config: dict) -> ModuleResult:
cards = [...] # Create your cards
return ModuleResult(cards=cards, view_title="My Module")- Register in
modules/__init__.py - Add domain mapping in
engine.py
See DEVELOPER.md for more details.
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
MIT License - see LICENSE for details.
Built with ❤️ for the Home Assistant community.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Note: This is an early version. Features and API may change. Feedback and contributions are highly appreciated!