Home Assistant Dashboard Manager
Manage Home Assistant dashboards via WebSocket API. Full CRUD (create, list, update, delete) for dashboards with zero-dependency Python WebSocket client. Supports modern HA 2026+ sections format and legacy card layouts.
Choose how to use this skill
You do not need every option. Choose the path your AI client supports. The stable page stays the same; versioned files are immutable.
1. Native installer
This listing has no registered native installer command. Use the complete package or source fallback below, depending on what your client supports.
Do not guess an installer command or replace an existing version without reviewing the diff.
2. Complete package recommended
Download the ZIP when available. It includes SKILL.md plus the references, security notes and version metadata.
No complete ProSkills package is published for this listing yet.3. Prompt-only
Copy the prompt above when the agent can read the stable page or when you want to adopt the workflow without installing a skill.
Need only the instruction file?
Download SKILL.md only if your client requires a single file. The complete ZIP is safer for a full installation because it preserves the references and release context.
No path installs or executes anything by itself. Your agent still needs access to the project files. Before updating, compare the installed version and review the diff.
// RATINGS
Not yet listed on ClawHub or SkillsMP
// README
Home Assistant Dashboard Manager Skill
OpenClaw skill for creating and managing Home Assistant dashboards (Lovelace) programmatically via WebSocket API.
Features
- ✅ Create dashboards from YAML configurations
- ✅ Update existing dashboards
- ✅ List all dashboards
- ✅ Delete dashboards
- ✅ Zero dependencies - WebSocket client implemented from scratch
- ✅ Modern sections format - Supports Home Assistant 2026+ dashboard layout
Installation
Via OpenClaw (Recommended)
openclaw skills install home-assistant.skill
Manual Installation
- Download
home-assistant.skillfrom releases - Copy to
~/.openclaw/skills/ - Extract:
python3 -m zipfile -e home-assistant.skill .
Quick Start
Create a Dashboard
cd ~/.openclaw/skills/home-assistant/scripts
python3 ha_dashboard.py create \
"wss://your-ha-instance.com/api/websocket" \
"YOUR_LONG_LIVED_TOKEN" \
dashboard-config.yaml \
"My Dashboard" \
"my-dashboard" \
"mdi:home"
List Dashboards
python3 ha_dashboard.py list \
"wss://your-ha-instance.com/api/websocket" \
"YOUR_LONG_LIVED_TOKEN"
Update Dashboard
python3 ha_dashboard.py update \
"wss://your-ha-instance.com/api/websocket" \
"YOUR_LONG_LIVED_TOKEN" \
"my-dashboard" \
updated-config.yaml
Delete Dashboard
python3 ha_dashboard.py delete \
"wss://your-ha-instance.com/api/websocket" \
"YOUR_LONG_LIVED_TOKEN" \
"my-dashboard"
Dashboard Configuration
The skill supports the modern sections-based dashboard format (HA 2026+):
views:
- type: sections
title: Network Dashboard
path: network
sections:
- type: grid
cards:
- type: heading
heading: Router Status
- type: gauge
entity: sensor.cpu_usage
min: 0
max: 100
severity:
green: 0
yellow: 60
red: 80
See references/dashboard-config.md for complete syntax reference.
Requirements
- Python 3.7+ (uses asyncio)
- Home Assistant with WebSocket API enabled (default)
- Long-Lived Access Token from Home Assistant
Development
This project uses uv for Python dependency management:
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install dependencies (optional, script has zero deps)
uv sync
# Install with YAML support
uv sync --extra yaml
Optional Dependencies
- PyYAML - For better YAML parsing (gracefully degrades without it)
# Ubuntu/Debian
sudo apt install python3-yaml
# Or via pip
pip install pyyaml
Security
⚠️ Important: Never commit your Home Assistant tokens or URLs to version control.
Getting a Long-Lived Access Token
- Open Home Assistant
- Go to Profile → Security
- Scroll to Long-Lived Access Tokens
- Click Create Token
- Give it a name (e.g., "OpenClaw Dashboard Manager")
- Copy and save the token securely
Best Practices
- Create separate tokens for different tools
- Name tokens clearly so you know what they're for
- Revoke tokens you're no longer using
- Store tokens in environment variables:
export HA_URL="wss://your-instance.com/api/websocket"
export HA_TOKEN="your_token_here"
python3 ha_dashboard.py list "$HA_URL" "$HA_TOKEN"
Documentation
- SKILL.md - Complete skill documentation
- references/dashboard-config.md - Dashboard syntax reference
- references/websocket-api.md - WebSocket API documentation
Examples
Network Monitoring Dashboard
views:
- type: sections
title: Network
path: network
sections:
- type: grid
cards:
- type: heading
heading: Router Status
- type: horizontal-stack
cards:
- type: gauge
entity: sensor.router_cpu
name: CPU
min: 0
max: 100
- type: gauge
entity: sensor.router_memory
name: Memory
min: 0
max: 100
- type: entities
title: Interfaces
entities:
- entity: switch.eth1_wan
name: WAN (Internet)
- entity: switch.eth2_lan
name: LAN
Home Automation Dashboard
views:
- type: sections
title: Home
path: home
sections:
- type: grid
cards:
- type: heading
heading: Climate
- type: entity
entity: climate.living_room
name: Living Room
- type: heading
heading: Lights
- type: entities
entities:
- light.living_room
- light.bedroom
- light.kitchen
How It Works
The skill uses Home Assistant's WebSocket API to:
- Authenticate with your long-lived access token
- Send commands to create/update/list/delete dashboards
- Parse YAML configurations into dashboard structures
- Save configurations directly to Home Assistant
The WebSocket client is implemented from scratch using Python's standard library (asyncio, ssl, socket) - no external dependencies required.
Troubleshooting
Authentication Failed
- Verify your token is valid and not expired
- Check the token has proper permissions
- Ensure you're using the correct WebSocket URL
Dashboard Not Found
- Use
listcommand to see available dashboards - Check the URL path matches exactly (case-sensitive)
Config Save Fails
- Validate YAML syntax
- Check that all entity IDs exist in your Home Assistant
- Ensure card types are supported by your HA version
WebSocket Connection Issues
- Verify URL format:
wss://for HTTPS,ws://for HTTP (local only) - Check network connectivity to your Home Assistant instance
- Ensure Home Assistant is running and accessible
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
License
MIT License - See LICENSE for details
Author
Created by Enrique Ortuno for the OpenClaw ecosystem.
GitHub: https://github.com/tecnocrata
Links
Version History
1.0.0 (2026-03-08)
- Initial release
- WebSocket API implementation
- Create/update/list/delete dashboards
- Sections-based dashboard format support
- Zero external dependencies
- Complete documentation
// HOW IT'S BUILT
TECHNOLOGY STACK
This skill is built with python, websocket..
KEY FILES