快速开始
用仓库自带的 examples/quickstart 走一遍完整链路:一台虚拟温度计 10 秒内爬过
28°C,触发规则把一台虚拟风扇自动打开。全程不需要任何真实设备。
-
构建
Terminal window cargo build --release -
生成一个 token(API 鉴权用,随便一串就行)
Terminal window export RHA_TOKEN=$(openssl rand -hex 16) -
校验配置
Terminal window ./target/release/rha --config examples/quickstart check输出
config ok: 2 entities, 2 rules就说明配置能正常加载。改配置之后都先跑一遍 这条,全过才生效。 -
启动
Terminal window ./target/release/rha --config examples/quickstart serve这条命令常驻,占住当前终端;日志里能看到
rha api listening addr=127.0.0.1:8420。 -
另开一个终端,设置同一个 token,看状态、看 trace、手动控制
Terminal window export RHA_TOKEN=<同上>./target/release/rha --config examples/quickstart status一开始
thermo_demo.temperature在 25°C 左右、fan_demo.power是false;10 秒内 温度会穿过 28°C,再看一次status就会看到fan_demo.power变成true。查规则为什么 触发:Terminal window ./target/release/rha --config examples/quickstart trace demo_fan_on_hot示例输出(时间戳每次都不同):
2026-07-30T16:19:33.938691Z done 1 action(s)2026-07-30T16:19:33.938390Z fired thermo_demo.temperature: Some(Float(27.5)) -> Float(29.0)2026-07-30T16:19:28.936246Z no_match thermo_demo.temperature: Some(Float(25.0)) -> Float(27.5)2026-07-30T16:19:24.934636Z no_match thermo_demo.temperature: None -> Float(25.0)最后手动把风扇关掉,覆盖规则刚下发的状态:
Terminal window ./target/release/rha --config examples/quickstart set fan_demo.power off
配置目录长什么样
Section titled “配置目录长什么样”examples/quickstart/ 就是一个完整的配置目录:
examples/quickstart/ rha.toml 必须存在——API 监听地址与 token devices.toml 必须存在,哪怕是空文件——设备清单 bridges.toml 可选——对外协议(HomeKit 等),本例里全部注释掉 automations/ demo.toml 可选目录——自动化规则,按文件名字典序加载 spec.d/ 10-generated.toml 仅当有 miot 设备时才需要,由 `rha spec-gen` 生成rha.toml 与 devices.toml 是无条件读取的,缺了直接报错;bridges.toml 与
automations/ 只在存在时才加载,不存在就当没配。四份主文件的完整字段说明在配置参考区:
rha.toml、devices.toml、
bridges.toml、automations/*.toml。
spec.d/*.toml 是给 miot 设备用的型号表,不算配置文件,见
spec.d/*.toml。