← Back to Skills Marketplace
maxsumrall

Homey

by maxsumrall · GitHub ↗ · v1.1.2
cross-platform ✓ Security Clean
2919
Downloads
3
Stars
6
Active Installs
5
Versions
Install in OpenClaw
/install homey
Description
Control Athom Homey smart home devices via local (LAN/VPN) or cloud APIs. List/control devices, trigger flows, query zones. Works with Homey Pro, Cloud, and Bridge.
README (SKILL.md)

Homey Smart Home Control

Control Athom Homey devices via local (LAN/VPN) or cloud APIs using token authentication.

Setup

Requires Node.js >= 18.

  1. Decide local vs cloud

    • Local (LAN/VPN): use a local API key from the Homey Web App + Homey IP address
    • Cloud (remote/headless): use a cloud token from Developer Tools
  2. Configure

    Local (recommended when the agent runs on your home network):

    homeycli auth discover-local --save --pick 1
    echo "\x3CLOCAL_API_KEY>" | homeycli auth set-local --stdin
    # or interactive (hidden input): homeycli auth set-local --prompt
    

    Cloud (recommended for VPS/headless hosting):

    echo "\x3CCLOUD_TOKEN>" | homeycli auth set-token --stdin
    # or interactive (hidden input): homeycli auth set-token --prompt
    

    Check status:

    homeycli auth status
    
  3. Test connection

    homeycli status
    

Commands

Snapshot (recommended for agents)

homeycli snapshot --json
homeycli snapshot --json --include-flows

List Devices

homeycli devices              # Pretty table output
homeycli devices --json       # JSON output for AI parsing (includes latest values)

# Filter by name (returns multiple matches)
homeycli devices --match "kitchen" --json

Control Devices

Turn devices on/off:

homeycli device "Living Room Light" on
homeycli device "Bedroom Lamp" off

Set specific capabilities:

homeycli device "Dimmer" set dim 0.5                    # 50% brightness
homeycli device "Thermostat" set target_temperature 21  # Set temperature
homeycli device "RGB Light" set light_hue 0.5           # Hue (0-1)
homeycli device "Lock" set locked true                  # Lock device

Get capability values:

homeycli device "Thermostat" get measure_temperature
homeycli device "Motion Sensor" get alarm_motion

# Get all values for a device (multi-sensors)
homeycli device "Living Room Air" values
homeycli device "Living Room Air" get

Flows (Automations)

homeycli flows                        # List all flows
homeycli flows --json                 # JSON output
homeycli flows --match "good" --json  # Filter flows by name
homeycli flow trigger "Good Night"    # Trigger by name
homeycli flow trigger \x3Cflow-id>       # Trigger by ID

Zones (Rooms)

homeycli zones           # List all zones/rooms
homeycli zones --json    # JSON output

Status

homeycli status    # Show Homey connection info

Common Capabilities

Capability Type Description Example
onoff boolean Power on/off true, false
dim number Brightness (0-1) 0.5 (50%)
light_hue number Color hue (0-1) 0.33 (green)
light_saturation number Color saturation (0-1) 1.0 (full)
light_temperature number Color temp (0-1) 0.5 (neutral)
target_temperature number Thermostat target (°C) 21
measure_temperature number Current temp (read-only) -
locked boolean Lock state true, false
alarm_motion boolean Motion detected (read-only) -
alarm_contact boolean Contact sensor (read-only) -
volume_set number Volume (0-1) 0.5

Use homeycli devices to see what capabilities each device supports.

Fuzzy Matching

Device and flow names support fuzzy matching:

  • Exact match: "Living Room Light" → finds "Living Room Light"
  • Substring: "living light" → finds "Living Room Light"
  • Levenshtein distance: "livng light" → finds "Living Room Light" (typo-tolerant)

JSON Mode

Add --json to any command for machine-readable output:

homeycli devices --json | jq '.[] | select(.class == "light")'
homeycli status --json

Examples

Morning routine:

homeycli device "Bedroom Light" on
homeycli device "Bedroom Light" set dim 0.3
homeycli device "Thermostat" set target_temperature 20

Check temperature:

homeycli device "Living Room" get measure_temperature

Trigger scene:

homeycli flow trigger "Movie Time"

List all lights:

homeycli devices --json | jq '.[] | select(.class == "light") | .name'

Troubleshooting

"No auth configured"

Local (LAN/VPN):

  • Save local config: echo "\x3CLOCAL_API_KEY>" | homeycli auth set-local --address http://\x3Chomey-ip> --stdin

Cloud (remote/headless):

"Device not found" / ambiguous match

  • List devices with homeycli devices --json (or homeycli devices --match \x3Cquery> --json) to find the right id
  • If a query matches more than one device, the CLI returns candidate IDs and asks you to specify the device by ID

"Capability not supported"

  • Check available capabilities: homeycli devices shows what each device supports
  • Common issue: trying to turn on a sensor (use get instead of set)

API Reference

The CLI uses the official homey-api npm package (v3.15.0).

Auth/connection modes:

  • Local mode: HomeyAPI.createLocalAPI({ address, token }) using the Homey Web App local API key.
  • Cloud mode: AthomCloudAPI using a cloud bearer token (PAT) to create a session and access devices/flows/zones.
Usage Guidance
This skill appears to be what it says: a Homey CLI wrapper meant for agent use. Before installing, consider: 1) Tokens are powerful — any HOMEY_TOKEN or local API key you save or export grants control of your devices (locks, switches, flows). Only install if you trust the author/repo. 2) The installer runs npm install and will fetch dependencies from the npm registry; review package.json and dependency tree if you have supply-chain concerns. 3) The CLI stores credentials in ~/.homey/config.json (or reads env vars); if you later remove the skill, check and delete that file and rotate tokens if needed. 4) Prefer local mode when the agent runs on your LAN (limits exposure) and use --stdin or hidden prompt to avoid leaving tokens in shell history. 5) If you want extra assurance, inspect package.json and the included JS files (lib/) yourself or run the CLI in an isolated environment (container/VM) before giving it real tokens.
Capability Analysis
Type: OpenClaw Skill Name: homey Version: 1.1.2 The OpenClaw AgentSkills skill bundle for Homey CLI is benign. It provides legitimate functionality for controlling smart home devices via local or cloud APIs. The skill handles authentication tokens securely by storing them with restricted permissions in `~/.homey/config.json` and using secure input methods (`--stdin`, `--prompt`) in `bin/homeycli.js` and `lib/commands.js`. Network and file system access are strictly aligned with its stated purpose (communicating with Homey devices, mDNS discovery, and managing its own configuration). There is no evidence of data exfiltration, malicious execution, persistence mechanisms, or prompt injection attempts to subvert the agent's behavior beyond the skill's intended scope.
Capability Assessment
Purpose & Capability
Name/description match the code and runtime instructions. The package implements a CLI (homeycli) that uses the official homey-api library to list/control devices, flows, and zones. Required binary 'homeycli' and the node install that produces it are appropriate for this purpose. No unrelated credentials or tools are requested.
Instruction Scope
SKILL.md and CLI docs are narrowly scoped to Homey control: auth setup (local API key or cloud token), device/flow commands, snapshot, and JSON output. Instructions reference ~/.homey/config.json and environment variables (HOMEY_TOKEN, HOMEY_LOCAL_TOKEN, HOMEY_ADDRESS) — these are the expected configuration locations for storing Homey tokens. The skill prompts for tokens and recommends --stdin to avoid shell history, which is reasonable. Note: the skill can control sensitive devices (locks, flows) if given tokens.
Install Mechanism
Install spec uses a Node package install from the included package (npm install in the skill directory) and creates the 'homeycli' binary. This pulls dependencies from npm (including homey-api). That's standard for a Node CLI but carries the usual supply-chain risk of npm packages and any postinstall scripts in dependencies. No downloads from obscure external URLs or URL shorteners were observed.
Credentials
The skill does not require unrelated credentials. It optionally uses Homey credentials (HOMEY_TOKEN, HOMEY_LOCAL_TOKEN) and HOMEY_ADDRESS; these are appropriate. SKILL.md/frontmatter did not declare required env vars because tokens are optional until you configure the CLI — this is coherent. Be aware that any saved token or config (~/.homey/config.json or env vars) gives the skill (and therefore any agent invoking the CLI) full ability to control your Homey devices.
Persistence & Privilege
always:false and normal autonomous invocation are set. The install files write the CLI and may create/modify ~/.homey/config.json to store tokens (expected behavior). The skill does not request system-wide privileges or alter other skills' configs.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install homey
  3. After installation, invoke the skill by name or use /homey
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.1.2
- Add `homeycli` wrapper entrypoint to reduce "permission denied" issues and automatically install npm deps if missing. - Add `homeycli device <name> capabilities` to list settable capabilities. - Local onboarding smoothing: `auth set-local` attempts mDNS discovery if address is missing.
v1.1.1
- Auth hardening: reject wrong token types early (local triple-part key vs cloud token) and validate token characters to avoid invalid HTTP header errors.
v1.1.0
- Add **local + cloud** connection modes with `HOMEY_MODE=auto|local|cloud`. - Add local onboarding: - `homeycli auth discover-local` (mDNS) - `homeycli auth discover-local --save --pick <n>` / `--homey-id <id>` - `homeycli auth set-local` (stores local API key) - Improve cloud/headless setup (`auth set-token --stdin/--prompt`) and clearer `auth status` output. - Refactor name/id resolution to be deterministic and shared across devices/flows. - Docs: updated setup instructions + stable JSON output contract (`docs/output.md`).
v1.0.1
- Added detailed output documentation in docs/output.md. - Improved fuzzy matching with new resolve logic (lib/resolve.js added). - Updated and streamlined documentation, including commands and error docs. - Removed old CI workflow and summary/meta files for a cleaner codebase. - Made internal improvements in CLI, config, and command handling files.
v0.1.0
Initial release of the Homey skill: - Control Athom Homey smart home devices via Cloud API using a simple CLI (`homeycli`). - Supports listing and controlling devices, triggering flows, and querying zones. - Works with Homey Pro, Cloud, and Bridge platforms. - Enables device discovery, status queries, and capability control (power, dimming, color, temperature, lock, sensors). - Includes fuzzy matching and JSON output for easy integration and automation.
Metadata
Slug homey
Version 1.1.2
License
All-time Installs 6
Active Installs 6
Total Versions 5
Frequently Asked Questions

What is Homey?

Control Athom Homey smart home devices via local (LAN/VPN) or cloud APIs. List/control devices, trigger flows, query zones. Works with Homey Pro, Cloud, and Bridge. It is an AI Agent Skill for Claude Code / OpenClaw, with 2919 downloads so far.

How do I install Homey?

Run "/install homey" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Homey free?

Yes, Homey is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Homey support?

Homey is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Homey?

It is built and maintained by maxsumrall (@maxsumrall); the current version is v1.1.2.

💬 Comments