让RuView接入Home Assistant:MQTT自动发现+Matter桥接全指南(21个实体一次配好)
2026/9/3 9:40:59 网站建设 项目流程

让RuView接入Home Assistant:MQTT自动发现+Matter桥接全指南(21个实体一次配好)

【免费下载链接】RuViewπ RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.项目地址: https://gitcode.com/GitHub_Trending/wi/RuView

RuView 是一个用普通 WiFi 信号就能完成人体存在检测、生命体征监测(心率/呼吸率)和姿态感知的开源 WiFi 感知项目——全程不需要摄像头。本指南教你把 RuView 接入Home Assistant:通过MQTT 自动发现一条命令配好21 个实体(11 个原始信号 + 10 个语义推断状态),再用Matter 桥接让 Apple Home / Google Home 也能"看见"你的传感器。

📡 RuView 是什么:无摄像头的 WiFi 空间感知

RuView 利用现有路由器发出的 WiFi 信号(CSI/信道状态信息),通过 Rust 编写的wifi-densepose-sensing-server感知服务器,实时输出存在、人数、心率、呼吸率、跌倒、动作级别等数据。硬件上可以是一台树莓派 + ESP32-S3 感知节点,或信用卡大小的Cognitum Seed一体机。

它的核心卖点:没有摄像头、没有可穿戴设备,就能知道"卧室里有人、正在睡觉、呼吸率 16 RPM"。但感知数据关在 RuView 自己的界面里,对智能家居来说就是座孤岛——这就是本指南要解决的问题。

🧩 为什么是"双协议":MQTT 为主,Matter 互补

RuView 的 HA 集成(设计决策见 ADR-115)采用双协议策略,两条路径不是二选一,而是互补:

维度MQTT 自动发现(HA-DISCO)Matter 桥接(HA-FABRIC)
覆盖数据全部21 个实体(含心率、呼吸、姿态)标准化子集(存在/人数/跌倒/区域)
可用控制器Home Assistant + 任意 MQTT 消费者Apple Home / Google Home / Alexa / SmartThings / HA
配置方式HA 自动创建实体,零代码扫二维码配对
生物特征数据✅ 支持❌ Matter 协议尚无对应集群

一句话:MQTT 承载全量数据给 HA 玩家,Matter 承载标准子集给全屋生态。一个节点可以同时进两个体系,HA 通过unique_id自动去重,不会出现"幽灵设备"。

Cognitum Seed 是 RuView 的自学习硬件节点,插上网就能工作,无需云端账号:

🚀 MQTT 自动发现完整配置步骤(3 步搞定)

以下操作已在Home Assistant Core 2025.5 + Mosquitto 2.0.18上验证,完整操作手册见 Home Assistant 集成文档。

前置条件

  • 一台局域网内的MQTT broker——最简单的方式是在 Home Assistant OS 的附加组件商店里一键安装Mosquitto(EMQX、VerneMQ 也兼容)
  • Home Assistant 2025.5 或更新版本,MQTT 集成已启用并指向该 broker
  • RuViewwifi-densepose-sensing-serverv0.7.0+二进制(或源码cargo run编译)

第 1 步:启动带--mqtt的感知服务器

Docker 方式(推荐非开发者):

docker run --rm --net=host \ ruvnet/wifi-densepose:0.7.0 \ --source esp32 \ --mqtt --mqtt-host 192.168.1.10 \ --mqtt-username homeassistant --mqtt-password-env MQTT_PASSWORD

源码方式(Rust 1.78+):

MQTT_PASSWORD='your-broker-password' \ cargo run --release -p wifi-densepose-sensing-server \ --features mqtt -- \ --source esp32 --mqtt \ --mqtt-host 192.168.1.10 \ --mqtt-username homeassistant

第 2 步:等待自动发现(约 5 秒)

启动后,感知服务器会向homeassistant/.../config主题逐实体发布发现消息(保留消息、QoS 1,每 600 秒刷新一次,HA 重启也能自愈),Home Assistant 随即自动创建:

  • 1 个 device:每个 RuView 节点一个(以 MAC 或友好名称命名)
  • 21 个 entities:全部挂在该 device 下

第 3 步:验证

打开 HA 的设置 → 设备与服务,应能看到 "RuView node " 及其实体。感知服务器的实时数据面板长这样——这些 RSSI、动作带、呼吸带数值现在全部会同步进 HA:

💡 优雅停机:直接 Ctrl-C,发布会先向所有 availability 主题推送offline,HA 立即把实体标记为不可用;kill -9则由 MQTT LWT(遗嘱消息)兜底,30 秒内生效。

📋 21 个实体全清单:每个节点一次配好

11 个原始信号实体

HA 实体组件类型单位来源字段
Presence(存在)binary_sensoredge_vitals.presence
Person count(人数)sensorpersonsedge_vitals.n_persons
Heart rate(心率)sensorbpmedge_vitals.heartrate_bpm
Breathing rate(呼吸率)sensorbpmedge_vitals.breathing_rate_bpm
Motion level(动作级别)sensor%edge_vitals.motion
Motion energy(动作能量)sensoredge_vitals.motion_energy
Fall detected(跌倒)eventedge_vitals.fall_detected
Presence score(存在置信度)sensor%edge_vitals.presence_score
Signal strength(信号强度)sensordBmedge_vitals.rssi
Zone occupancy(区域占用)binary_sensorsensing_update.zones
Pose(姿态关键点,可选)sensor(属性)需加--mqtt-publish-pose

10 个语义推断实体(HA-MIND)⭐

这才是精华。RuView 内置一个服务端推理层,用小型状态机把原始信号融合成自动化真正需要的"高级状态",每个状态还附带reason解释属性(例如["motion<5%", "br=12bpm", "presence=true"]),方便你调试"为什么触发了":

语义实体触发条件
someone_sleeping有人在睡觉存在 + 动作<5% + 呼吸率 8–20 bpm,持续 5 分钟
possible_distress疑似不适心率超基线 1.5 倍 + 动作>20%,持续 60 秒
room_active房间活跃30 秒滚动窗口内动作 >10%
elderly_inactivity_anomaly老人活动异常空闲时间超过个人基线 2 倍
meeting_in_progress会议进行中≥2 人 + 低幅动作持续 10 分钟
bathroom_occupied卫生间有人存在 + 标记为 bathroom 的区域激活
fall_risk_elevated跌倒风险升高0–100 风险分,超过 70 触发事件
bed_exit夜间离床22:00–06:00 从睡眠状态离开床区域
no_movement无动作(安全检查)存在 + 动作<1% 持续 30 分钟
multi_room_transition跨房间移动10 秒内离开 X 区并进入 Y 区

每个原型的精确率/召回率数据公开在 语义原语指标文档。

🎁 8 个自动化蓝图 + 3 个看板:零代码直接用

仓库内置了可直接导入的资产,放在 examples/ha-blueprints/ 目录下——把 YAML 文件丢进 HA 的<config>/blueprints/automation/ruvnet/,然后在设置 → 自动化与场景 → 蓝图 → 导入即可:

蓝图场景
01 疑似不适时推送通知独居/老人看护
02 有人睡觉时走廊调暗夜起不刺眼
03 起床后唤醒流程灯光渐亮 + 咖啡机
04 老人活动异常告警平时 9 点起床,11 点还没动 → 提醒
05 会议灯光+勿扰模式办公室/居家办公
06 卫生间有人时开排风扇隐私模式安全
07 跌倒风险超阈值升级告警预防性干预
08 房间无人时自动布防自动安防

另外 examples/lovelace/ 提供 3 个开箱即用的Lovelace 看板:单房间总览、多节点全屋网格、以及一个医疗/AAL 看护视图(隐私模式下依然完整可用)。

🌐 Matter 桥接:Apple Home 也能接入

不想只用 HA?感知服务器内置 Matter 桥接(--matter开关,独立于--mqtt),把节点以Bridged Devices Aggregator形态暴露给任意 Matter 控制器:

cargo run -p wifi-densepose-sensing-server -- \ --source esp32 \ --matter \ --matter-setup-file /tmp/matter-qr.txt

启动后日志里会打印Matter 安装码 + 二维码字符串,用 iPhone 的 Apple Home 或 HA 的 Matter 集成扫码即可配对:

  • 支持多控制器:同一节点可同时进 Apple Home、Google Home 和 HA(Matter fabric 隔离机制),HA 里会自动去重
  • 暴露的能力:存在(OccupancySensing)、跌倒事件(Switch.MultiPressComplete)、人数(厂商扩展属性,仅 HA/SmartThings 可见)、每区域占用端点
  • 注意:心率、呼吸率、姿态不会走 Matter(协议没有对应集群),生物特征只走 MQTT;重置配对用--matter-reset
  • 目前使用开发厂商 ID0xFFF1,Apple Home 若提示"未知厂商"点"仍然添加"即可

v0.7.0 的完整变更与基准数据见 v0.7.0 发布说明。

🔒 隐私模式:健康数据不出家门

在医疗、养老、商用环境部署时,加上--privacy-mode

  • 心率、呼吸率、姿态关键点在MQTT 线上被直接剥离,发现消息都不发布——HA 根本不知道这些实体存在
  • 10 个语义推断状态照常工作:推理发生在服务器端,过线的只是布尔值/分数。护理员能看到"检测到不适",但永远看不到原始心率数值
  • 这是让 RuView 能合规部署在养老院、医院、学校的架构级优势(最小必要原则,契合 HIPAA/GDPR 思路)

建议非 localhost broker 一律搭配--mqtt-tls;v0.7.0 对明文连接会打 WARN,v0.8.0 起将直接硬失败。

🛠️ 常见故障排查

症状排查步骤
HA 里没有出现实体mosquitto_sub -h <broker> -t 'homeassistant/#' -v看是否有发现消息;没有 → 检查--mqtt-host和网络;有消息但 HA 无设备 → 确认 HA 的 MQTT 集成指向同一 broker
实体出现但状态不更新看服务器日志有无[ws]/[edge_vitals]行确认 CSI 数据流;诊断时把--mqtt-rate-vitals 1.0调高(默认 0.2 Hz 即每 5 秒一次)
出现"非 localhost 明文 MQTT" WARN--mqtt-tls并提供 CA,或把 Mosquitto 搬到与感知服务器同一台机器
Matter 配对失败检查--matter-setup-file里的安装码;确认主机与控制器同一 WiFi 子网;"未知厂商"提示点"仍然添加"

写在最后

一条--mqtt命令,21 个实体自动就位,8 个蓝图即导即用——RuView 从此不再是"又一个黑盒感知平台",而是任何 Home Assistant 安装(乃至任何 Matter 生态智能家居)的即插即用传感器。下一步可以试试:把someone_sleeping接进你的"晚安"场景,看看 WiFi 信号如何在你睡着时悄悄调暗走廊的灯 🌙

延伸阅读:ADR-115 完整设计文档 · Home Assistant 集成操作手册 · 语义原语精度指标

【免费下载链接】RuViewπ RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.项目地址: https://gitcode.com/GitHub_Trending/wi/RuView

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询