control4-home

TotalClaw 作者 totalclaw

使用本地 Python 包装器通过 pyControl4(灯、继电器、房间媒体)控制 Control4 智能家居。当用户请求控制设备、设置级别、切换继电器、切换房间媒体源或检查 Control4 设备映射时使用。

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~niallel-control4-home
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~niallel-control4-home/file -o niallel-control4-home.md
## 概述(中文)

使用本地 Python 包装器通过 pyControl4(灯、继电器、房间媒体)控制 Control4 智能家居。当用户请求控制设备、设置级别、切换继电器、切换房间媒体源或检查 Control4 设备映射时使用。

## 原文

# Control4 Home

Use the scripts in `scripts/` to control Control4 locally.

## Files

- `scripts/control4_cli.py` — low-level Control4 commands (discover/list/light/relay/room/media + generic method calls)
- `scripts/nl_control4.py` — natural language command wrapper (lights, relays, room media, mute/unmute, volume)
- `scripts/device_map.example.json` — alias template for mapping names to Control4 IDs

## Setup

1. Create a Python venv (example):
   - `python3 -m venv .venv-control4`
2. Install dependency:
   - `.venv-control4/bin/pip install pyControl4`
3. Create `scripts/.env` (or export env vars) with:
   - `CONTROL4_USERNAME`
   - `CONTROL4_PASSWORD`
   - `CONTROL4_CONTROLLER_IP`
   - `CONTROL4_CONTROLLER_NAME` (optional if only one)
4. Copy and customize alias map:
   - `cp scripts/device_map.example.json scripts/device_map.json`

## Common commands

- Discover controller/account:
  - `.venv-control4/bin/python scripts/control4_cli.py discover`
- List items:
  - `.venv-control4/bin/python scripts/control4_cli.py list-items --compact`
- Set light:
  - `.venv-control4/bin/python scripts/control4_cli.py light-set --id 229 --level 40`
- Toggle relay:
  - `.venv-control4/bin/python scripts/control4_cli.py relay-toggle --id 571`
- Natural language:
  - `.venv-control4/bin/python scripts/nl_control4.py "turn kitchen lights off"`
  - `.venv-control4/bin/python scripts/nl_control4.py "watch apple tv in master bedroom"`
  - `.venv-control4/bin/python scripts/nl_control4.py "mute master bedroom"`
- List all exposed methods for an entity:
  - `.venv-control4/bin/python scripts/control4_cli.py methods --entity room --id 45`
- Call any exposed pyControl4 method:
  - `.venv-control4/bin/python scripts/control4_cli.py call --entity climate --id 752 --method getCurrentTemperatureC`
  - `.venv-control4/bin/python scripts/control4_cli.py call --entity light --id 229 --method rampToLevel --args-json "[25,1000]"`
  - Sensitive methods require explicit override:
    - `.venv-control4/bin/python scripts/control4_cli.py call --entity security-panel --id <id> --method setArm --allow-sensitive`

## Safety

- Treat gate/door/alarm relays as sensitive actions.
- Confirm before running high-risk commands if user intent is ambiguous.
- Do not commit secrets (passwords/tokens) into git.