ClawSkills logoClawSkills

Homey

通过本地(LAN/VPN)或云 API 控制 Athom Homey 智能家居设备。列出/控制设备、触发流程、查询区域。适用于 Homey Pro、Cloud 和 Bri

介绍

# Homey Smart Home Control

使用令牌认证,通过本地(LAN/VPN)或云端 API 控制 Athom Homey 设备。

## 设置

需要 Node.js >= 18。

1. **确定使用本地还是云端**

- **本地 (LAN/VPN):** 使用来自 Homey Web App 的本地 API 密钥 + Homey IP 地址 - **云端 (远程/无头模式):** 使用来自开发者工具的云端令牌

2. **配置**

**本地(当代理在家庭网络中运行时推荐):**

```bash homeycli auth discover-local --save --pick 1 echo "<LOCAL_API_KEY>" | homeycli auth set-local --stdin # or interactive (hidden input): homeycli auth set-local --prompt ```

**云端(推荐用于 VPS/无头主机托管):**

```bash echo "<CLOUD_TOKEN>" | homeycli auth set-token --stdin # or interactive (hidden input): homeycli auth set-token --prompt ```

检查状态:

```bash homeycli auth status ```

3. **测试连接**

```bash homeycli status ```

## 命令

### 快照(推荐用于代理) ```bash homeycli snapshot --json homeycli snapshot --json --include-flows ```

### 列出设备 ```bash 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 ```

### 控制设备 打开/关闭设备: ```bash homeycli device "Living Room Light" on homeycli device "Bedroom Lamp" off ```

设置特定功能: ```bash 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 ```

获取功能值: ```bash 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 ```

### 流程(自动化) ```bash 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 <flow-id> # Trigger by ID ```

### 区域(房间) ```bash homeycli zones # List all zones/rooms homeycli zones --json # JSON output ```

### 状态 ```bash homeycli status # Show Homey connection info ```

## 常用功能

| 功能 | 类型 | 描述 | 示例 | |------------|------|-------------|---------| | `onoff` | boolean | 电源开关 | `true`, `false` | | `dim` | number | 亮度 (0-1) | `0.5` (50%) | | `light_hue` | number | 色相 (0-1) | `0.33` (绿色) | | `light_saturation` | number | 饱和度 (0-1) | `1.0` (全饱和) | | `light_temperature` | number | 色温 (0-1) | `0.5` (中性) | | `target_temperature` | number | 恒温器目标温度 (°C) | `21` | | `measure_temperature` | number | 当前温度 (只读) | - | | `locked` | boolean | 锁定状态 | `true`, `false` | | `alarm_motion` | boolean | 检测到动作 (只读) | - | | `alarm_contact` | boolean | 门磁传感器 (只读) | - | | `volume_set` | number | 音量 (0-1) | `0.5` |

使用 `homeycli devices` 查看每个设备支持的功能。

## 模糊匹配

设备和流程名称支持模糊匹配: - **完全匹配:** "Living Room Light" → 找到 "Living Room Light" - **子字符串:** "living light" → 找到 "Living Room Light" - **编辑距离:** "livng light" → 找到 "Living Room Light" (容错拼写)

## JSON 模式

在任何命令中添加 `--json` 以获取机器可读的输出: ```bash homeycli devices --json | jq '.[] | select(.class == "light")' homeycli status --json ```

## 示例

**晨间例程:** ```bash homeycli device "Bedroom Light" on homeycli device "Bedroom Light" set dim 0.3 homeycli device "Thermostat" set target_temperature 20 ```

**检查温度:** ```bash homeycli device "Living Room" get measure_temperature ```

**触发场景:** ```bash homeycli flow trigger "Movie Time" ```

**列出所有灯光:** ```bash homeycli devices --json | jq '.[] | select(.class == "light") | .name' ```

## 故障排除

**"No auth configured"(未配置认证)**

本地 (LAN/VPN): - 保存本地配置:`echo "<LOCAL_API_KEY>" | homeycli auth set-local --address http://<homey-ip> --stdin`

云端 (远程/无头模式): - 保存云端令牌:`echo "<CLOUD_TOKEN>" | homeycli auth set-token --stdin` - 云端令牌可以在 Homey 开发者工具中创建:https://tools.developer.homey.app/api/clients

**"Device not found"(设备未找到)/ ambiguous match(匹配模糊)** - 使用 `homeycli devices --json`(或 `homeycli devices --match <query> --json`)列出设备以找到正确的 `id` - 如果查询匹配到多个设备,CLI 会返回候选 ID 并要求您通过 ID 指定设备

**"Capability not supported"(不支持该功能)** - 检查可用功能:`homeycli devices` 会显示每个设备支持的功能 - 常见问题:尝试打开传感器(请使用 `get` 而不是 `set`)

## API 参考

CLI 使用官方的 `homey-api` npm 包 (v3.15.0)。

**认证/连接模式:**

- **本地模式:** `HomeyAPI.createLocalAPI({ address, token })`,使用 Homey Web App 的本地 API 密钥。 - **云端模式:** `AthomCloudAPI`,使用云端持有者令牌 (PAT) 创建会话并访问设备/流程/区域。

更多产品