homey-cli

Safe
Smart Home & IoT

Control Homey home automation hub via CLI.

SKILL.md

# Homey CLI Safe, agent-friendly CLI for controlling Homey home automation hubs. ## What This Skill Provides - **Device control**: Turn devices on/off, dim lights, change colors, set temperatures - **Device inspection**: List devices, check status, read capabilities - **Zone management**: List zones and devices per zone - **Flow control**: List and trigger flows - **Inventory**: Get complete hub overview ## Setup ### 1. Install Dependencies ```bash cd skills/homey-cli npm install ``` ### 2. Create Homey App Credentials 1. Go to https://tools.developer.homey.app/tools/app 2. Create a new app with: - **Callback URL**: `http://localhost:8787/callback` - Note your **Client ID** and **Client Secret** ### 3. Configure Environment Create `.env` file: ```bash export HOMEY_CLIENT_ID="your-client-id" export HOMEY_CLIENT_SECRET="your-client-secret" export HOMEY_REDIRECT_URL="http://localhost:8787/callback" ``` ### 4. Login ```bash bash run.sh auth login ``` Follow the OAuth flow in your browser. Tokens are stored in `~/.config/homey-cli/`. ## Usage ### List Homeys ```bash bash run.sh homey list ``` ### Select Active Homey ```bash bash run.sh homey use <homeyId> ``` ### Device Operations ```bash # List all devices bash run.sh devices list # List devices as JSON bash run.sh devices list --json # Get specific device bash run.sh devices get <deviceId> # Read capability value bash run.sh devices read <deviceId> onoff # Control devices bash run.sh devices on <deviceId> bash run.sh devices off <deviceId> bash run.sh devices dim <deviceId> 0.4 bash run.sh devices color <deviceId> #FF8800 bash run.sh devices temperature <deviceId> 21.5 ``` ### Flow Operations ```bash # List flows bash run.sh flows list # Trigger flow bash run.sh flows trigger <flowId> ``` ### Complete Inventory ```bash bash run.sh inventory --json ``` ## Safety Model Write operations are **capability-allowlisted** for safety: - Default allowed: `onoff`, `dim`, `light_hue`, `light_saturation`, `light_temperature`, `target_temperature` - Override via: `export HOMEY_CLI_ALLOWED_CAPABILITIES=onoff,dim,target_temperature` Destructive operations (delete devices, modify flows, change app settings) are **not supported**. ## Common Queries When users ask: - "Turn on the kitchen lights" → List devices, find match, use `devices on <deviceId>` - "Dim living room to 50%" → Find device, use `devices dim <deviceId> 0.5` - "What's the temperature in the bedroom?" → Find device, use `devices read <deviceId> measure_temperature` - "List all my lights" → Use `devices list --json` and filter by class/capabilities ## Configuration Storage - **Tokens**: `~/.config/homey-cli/credentials.json` - **Active Homey**: `~/.config/homey-cli/config.json` ## Troubleshooting - **Auth errors**: Re-run `bash run.sh auth login` - **Device not found**: Check device name/ID with `bash run.sh devices list` - **Capability not allowed**: Add to `HOMEY_CLI_ALLOWED_CAPABILITIES` or check if it's a read-only capability

More in Smart Home & IoT