openclawclaudev1.0.0
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.
7.4/10
Verified
Mar 9, 2026// RATINGS
// 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)
```bash
openclaw skills install home-assistant.skill
```
### Manual Installation
1. Download `home-assistant.skill` from releases
2. Copy to `~/.openclaw/skills/`
3. Extract: `python3 -m zipfile -e home-assistant.skill .`
## Quick Start
### Create a Dashboard
```bash
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
```bash
python3 ha_dashboard.py list \
"wss://your-ha-instance.com/api/websocket" \
"YOUR_LONG_LIVED_TOKEN"
```
### Update Dashboard
```bash
python3 ha_dashboard.py update \
"wss://your-ha-instance.com/api/websocket" \
"YOUR_LONG_LIVED_TOKEN" \
"my-dashboard" \
updated-config.yaml
```
### Delete Dashboard
```bash
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+):
```yaml
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](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](https://github.com/astral-sh/uv) for Python dependency management:
```bash
# 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)
```bash
# 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
1. Open Home Assistant
2. Go to **Profile** → **Security**
3. Scroll to **Long-Lived Access Tokens**
4. Click **Create Token**
5. Give it a name (e.g., "OpenClaw Dashboard Manager")
6. 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:
```bash
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](SKILL.md)** - Complete skill documentation
- **[references/dashboard-config.md](references/dashboard-config.md)** - Dashboard syntax reference
- **[references/websocket-api.md](references/websocket-api.md)** - WebSocket API documentation
## Examples
### Network Monitoring Dashboard
```yaml
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
```yaml
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:
1. **Authenticate** with your long-lived access token
2. **Send commands** to create/update/list/delete dashboards
3. **Parse YAML** configurations into dashboard structures
4. **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 `list` command 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:
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Test thoroughly
5. Submit a pull request
## License
MIT License - See [LICENSE](LICENSE) for details
## Author
Created by Enrique Ortuno for the OpenClaw ecosystem.
**GitHub:** https://github.com/tecnocrata
## Links
- [OpenClaw](https://openclaw.ai)
- [ClawHub - Skill Marketplace](https://clawhub.com)
- [Home Assistant](https://www.home-assistant.io)
## 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
python
websocket
This skill is built with python, websocket..
KEY FILES
SKILL.md
// REPO STATS
0 stars
0 open issues
Last commit: 1mo ago
// SHARE
// SOURCE
View on GitHub// PROSKILLS SCORE
7.4/10
Good
BREAKDOWN
Code Quality7/10
Documentation8/10
Functionality8/10
Maintenance7/10
Security6/10
Uniqueness8/10
Usefulness8/10