iamvaleriofantozzi

Moltbot Home Assistant

生活服务v0.1.1
作者:iamvaleriofantozzi更新于 2026-05-11moltbot-ha@clawhub_iamvaleriofantozzi/moltbot-ha
家庭助手#Smart Home

据 AlphaMoat 统计,截至 2026-09,Moltbot Home Assistant 累计下载 3,126 次、获 3 个星标,在全部 5,078 个 AI 技能中排名第 3,643 位,在「生活服务」分类(246 个)中排名第 188 位。

累计安装
102
累计下载
3,126
星标
3
全站排名
#3,643
全站前 72% · 「生活服务」前 77%
平台累计安装累计下载星标评论
ClawHub ↗1023,0853-
SkillHub ↗1013,1263—

各平台的计数口径不同,统计时间不一致。

这个技能是做什么的

它可查询实体状态、开关设备、调整属性、激活场景或调用自动化服务。配置需要 Home Assistant 长期访问令牌;门锁、警报和车库门等关键操作需要明确确认,不能在未获用户同意时使用 --force。

资料发布于 2026-10-29

可以用来做什么

  • 列出实体并查询其当前状态。
  • 控制灯、开关、窗帘等设备或调整支持的属性。
  • 查看场景、自动化及关键操作的确认流程。

什么时候用

  • 需要通过 Home Assistant CLI 查看或管理智能家居设备时。
  • 需要配置设备属性或调用场景与自动化服务时。
  • 控制门锁、警报、车库门等关键设备或处理访问令牌前,需要确认目标设备、操作和权限时。

示例提示词

以下是根据技能文档生成的示例,不代表实际运行结果。

只查询指定 Home Assistant 实体的状态,不执行任何控制命令。
准备控制车库门或门锁前,展示目标实体和拟执行动作并等待明确确认;不要自行添加 --force。

月度数据趋势

累计下载3,126
2,0112,6103,2092026-03 · 累计下载 2,0942026-05 · 累计下载 2,5412026-06 · 累计下载 2,6792026-07 · 累计下载 2,8872026-08 · 累计下载 2,9922026-09 · 累计下载 3,12626-0326-09
星标3
2342026-03 · 星标 32026-05 · 星标 32026-06 · 星标 32026-07 · 星标 32026-08 · 星标 32026-09 · 星标 326-0326-09

2026-09 起统计方法调整:同名技能按作者分别统计,并覆盖全部技能。图中虚线为调整前的月份,与之后的数据不直接比较,也不计算跨越调整的增长。

月份累计下载环比星标
2026-093,126—3
2026-082,992+3.6%3
2026-072,887+7.8%3
2026-062,679+5.4%3
2026-052,541—3
2026-032,094—3

SKILL.md 原文

以下是作者发布的原始文件,按纯文本显示,本站未做修改或审核;其中的链接不可点击,命令请核实后再运行。抓取于 2026-10-23。

7.2 KB · ClawHub v0.1.1
---
name: moltbot-ha
description: Control Home Assistant smart home devices, lights, scenes, and automations via moltbot-ha CLI with configurable safety confirmations.
homepage: https://github.com/iamvaleriofantozzi/moltbot-ha
metadata: {"moltbot":{"emoji":"🏠","requires":{"bins":["moltbot-ha"],"env":["HA_TOKEN"]},"primaryEnv":"HA_TOKEN","install":[{"id":"uv","kind":"uv","package":"moltbot-ha","bins":["moltbot-ha"],"label":"Install moltbot-ha (uv tool)"}]}}
---

# Home Assistant Control

Control your smart home via Home Assistant API using the `moltbot-ha` CLI tool.
展开全部(共 290 行)

## Setup

### 1. Install moltbot-ha
```bash
uv tool install moltbot-ha
```

### 2. Initialize Configuration
```bash
moltbot-ha config init
```

The setup will interactively ask for:
- Home Assistant URL (e.g., `http://192.168.1.100:8123`)
- Token storage preference (environment variable recommended)

### 3. Set Environment Variable
Set your Home Assistant long-lived access token:
```bash
export HA_TOKEN="your_token_here"
```

To create a token:
1. Open Home Assistant → Profile (bottom left)
2. Scroll to "Long-Lived Access Tokens"
3. Click "Create Token"
4. Copy the token and set as `HA_TOKEN` environment variable

### 4. Test Connection
```bash
moltbot-ha test
```

## Discovery Commands

### List All Entities
```bash
moltbot-ha list
```

### List by Domain
```bash
moltbot-ha list light
moltbot-ha list switch
moltbot-ha list cover
```

### Get Entity State
```bash
moltbot-ha state light.kitchen
moltbot-ha state sensor.temperature_living_room
```

## Action Commands

### Turn On/Off
```bash
# Turn on
moltbot-ha on light.living_room
moltbot-ha on switch.coffee_maker

# Turn off
moltbot-ha off light.bedroom
moltbot-ha off switch.fan

# Toggle
moltbot-ha toggle light.hallway
```

### Set Attributes
```bash
# Set brightness (percentage)
moltbot-ha set light.bedroom brightness_pct=50

# Set color temperature
moltbot-ha set light.office color_temp=300

# Multiple attributes
moltbot-ha set light.kitchen brightness_pct=80 color_temp=350
```

### Call Services
```bash
# Activate a scene
moltbot-ha call scene.turn_on entity_id=scene.movie_time

# Set thermostat temperature
moltbot-ha call climate.set_temperature entity_id=climate.living_room temperature=21

# Close cover (blinds, garage)
moltbot-ha call cover.close_cover entity_id=cover.garage
```

### Generic Service Call
```bash
# With parameters
moltbot-ha call automation.trigger entity_id=automation.morning_routine

# With JSON data
moltbot-ha call script.turn_on --json '{"entity_id": "script.bedtime", "variables": {"brightness": 10}}'
```

## Safety & Confirmations

moltbot-ha implements a **3-level safety system** to prevent accidental actions:

### Safety Level 3 (Default - Recommended)

Critical operations require explicit confirmation:
- **lock.***: Door locks
- **alarm_control_panel.***: Security alarms
- **cover.***: Garage doors, blinds

### How Confirmation Works

1. **Attempt critical action:**
```bash
moltbot-ha on cover.garage
```

2. **Tool returns error:**
```
⚠️  CRITICAL ACTION REQUIRES CONFIRMATION

Action: turn_on on cover.garage

This is a critical operation that requires explicit user approval.
Ask the user to confirm, then retry with --force flag.

Example: moltbot-ha on cover.garage --force
```

3. **Agent sees this error and asks you:**
> "Opening the garage door is a critical action. Do you want to proceed?"

4. **You confirm:**
> "Yes, open it"

5. **Agent retries with --force:**
```bash
moltbot-ha on cover.garage --force
```

6. **Action executes successfully.**

### Important: Never Use --force Without User Consent

**⚠️ CRITICAL RULE FOR AGENTS:**

- **NEVER** add `--force` flag without explicit user confirmation
- **ALWAYS** show the user which critical action is being attempted
- **WAIT** for explicit "yes" / "confirm" / "approve" before using `--force`
- **BE SMART** about what constitutes confirmation: "Yes", "OK", "Sure", "Do it", "Confirmed", or any affirmative response in the context of the request is sufficient. You do NOT need the user to type a specific phrase verbatim.

### Blocked Entities

Some entities can be permanently blocked in configuration:
```toml
[safety]
blocked_entities = ["switch.main_breaker", "lock.front_door"]
```

These **cannot** be controlled even with `--force`.

### Configuration

Edit `~/.config/moltbot-ha/config.toml`:

```toml
[safety]
level = 3  # 0=disabled, 1=log-only, 2=confirm all writes, 3=confirm critical

critical_domains = ["lock", "alarm_control_panel", "cover"]

blocked_entities = []  # Add entities that should never be automated

allowed_entities = []  # If set, ONLY these entities are accessible (supports wildcards)
```

## Common Workflows

### Morning Routine
```bash
moltbot-ha on light.bedroom brightness_pct=30
moltbot-ha call cover.open_cover entity_id=cover.bedroom_blinds
moltbot-ha call climate.set_temperature entity_id=climate.bedroom temperature=21
```

### Night Mode
```bash
moltbot-ha off light.*  # Requires wildcard support in future
moltbot-ha call scene.turn_on entity_id=scene.goodnight
moltbot-ha call cover.close_cover entity_id=cover.all_blinds
```

### Check Sensors
```bash
moltbot-ha state sensor.temperature_living_room
moltbot-ha state sensor.humidity_bathroom
moltbot-ha state binary_sensor.motion_hallway
```

## Troubleshooting

### Connection Failed
- Verify `HA_URL` in config matches your Home Assistant URL
- Ensure Home Assistant is reachable from the machine running moltbot-ha
- Check firewall settings

### 401 Unauthorized
- Verify `HA_TOKEN` is set correctly
- Ensure token is a **Long-Lived Access Token** (not temporary)
- Check token hasn't been revoked in Home Assistant

### Entity Not Found
- Use `moltbot-ha list` to discover correct entity IDs
- Entity IDs are case-sensitive
- Format is `domain.entity_name` (e.g., `light.kitchen`, not `Light.Kitchen`)

### Docker Networking
If running in Docker and can't reach Home Assistant on `homeassistant.local`:
- Use IP address instead: `http://192.168.1.100:8123`
- Or use Tailscale for reliable mesh networking

## Configuration Reference

Full config file (`~/.config/moltbot-ha/config.toml`):

```toml
[server]
url = "http://homeassistant.local:8123"
# token = "optional_here_prefer_env_var"

[safety]
level = 3
critical_domains = ["lock", "alarm_control_panel", "cover"]
blocked_entities = []
allowed_entities = []

[logging]
enabled = true
path = "~/.config/moltbot-ha/actions.log"
level = "INFO"
```

## Examples for Agents

### Discovery Pattern
```
User: "What lights do I have?"
Agent: moltbot-ha list light
Agent: "You have these lights: light.living_room, light.kitchen, light.bedroom"
```

### Safe Action Pattern
```
User: "Turn on the living room light"
Agent: moltbot-ha on light.living_room
Agent: "Living room light is now on"
```

### Critical Action Pattern
```
User: "Open the garage"
Agent: moltbot-ha on cover.garage
<receives CriticalActionError>
Agent: "⚠️ Opening the garage door is a critical action. Do you want to proceed?"
User: "Yes, open it"
Agent: moltbot-ha on cover.garage --force
Agent: "Garage door is opening"
```

## Notes

- All write actions are logged to `~/.config/moltbot-ha/actions.log` by default
- Safety settings are configurable per installation
- Wildcards (`*`) are supported in `allowed_entities` and `blocked_entities`
- JSON output available with `--json` flag for programmatic parsing

「生活服务」分类下的热门技能

数据月份:2026-09 · 下载/星标/安装数聚合自公开技能注册库(ClawHub、SkillHub),按月更新。口径说明见数据方法。