openclawclaudev1.0.0

Home Assistant Dashboard Manager

tecnocrata@tecnocrata0 stars· last commit 1mo ago· 0 open issues

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

GitHub Stars

New / niche

🔵ClawHub
0 downloadsView ↗
🟢ProSkills ScoreAI Verified
7.4/10

// 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

// PROSKILLS SCORE

7.4/10

Good

BREAKDOWN

Code Quality7/10
Documentation8/10
Functionality8/10
Maintenance7/10
Security6/10
Uniqueness8/10
Usefulness8/10

// DETAILS

Categoryhome-automation
Versionv1.0.0
PriceFree
Securityclean