control4-home
使用本地 Python 包装器通过 pyControl4(灯、继电器、房间媒体)控制 Control4 智能家居。当用户请求控制设备、设置级别、切换继电器、切换房间媒体源或检查 Control4 设备映射时使用。
安装 / 下载方式
TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~niallel-control4-homecURL直接下载,无需登录
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.