把 Wi-Fi 感知接进 Home Assistant:ESP32 与路由器两条路

2026-10-11 · 约 2 分钟

Home Assistant 用户想要的是"实体"(sensor/binary_sensor),不是 CSI 原始数据。这里有两条可行路线。

1. 路线 A:ESP32 + ESPHome(最简单)

ESPectre 这类项目已经把 CSI 运动/存在检测做成了 ESPHome 组件 [2](底层是 ESP32 的 CSI 采集 [3]):

# ESPHome 配置思路(字段以组件文档为准)
esphome:
  name: csi-motion
esp32:
  board: esp32dev
external_components:
  - source: github://<spectre-repo>
binary_sensor:
  - platform: espectre
    name: "客厅有人活动"

优点:开箱即用、直接产出 HA 实体;缺点:单点覆盖、20MHz/30–64 子载波、需要一块 ESP32。

2. 路线 B:路由器 CSI 平台(覆盖全屋,但工程量大)

本项目的 platform/(FastAPI + WebSocket + REST/MQTT)是这条路线的骨架 (CSI 感知的能力边界与适用条件可参考领域综述 [1]):

# Home Assistant:用 REST 轮询平台状态
sensor:
  - platform: rest
    name: "CSI 存在置信度"
    resource: http://<platform-host>:8090/api/csi/status
    value_template: "{{ value_json.present }}"
    scan_interval: 5

# 或者用 MQTT(daemon 支持 MQTT 输出)
mqtt:
  binary_sensor:
    - name: "客厅有人"
      state_topic: "csi/event/presence"
      payload_on: "1"
      payload_off: "0"

优点:全屋覆盖、无需额外硬件(已有路由器即可);缺点:要自己部署分析服务、标定阈值。

3. 自动化示例

automation:
  - alias: "无人 10 分钟后关灯"
    trigger:
      - platform: state
        entity_id: binary_sensor.ke_ting_you_ren
        to: "off"
        for: "00:10:00"
    action:
      - service: light.turn_off
        target: { area_id: living_room }

4. 可靠性建议

问题 做法
静止被误判为"无人" 加"呼吸微动"或 mmWave 作为补充;或提高超时时间
阈值在不同房间不一样 每个房间单独标定,保存基线
误触发频繁 加滞回(进入阈值高、退出阈值低)与最短保持时间
延迟敏感场景 用 WebSocket/MQTT 推送,而不是 REST 轮询

5. 两条路的取舍

ESP32 + ESPHome 路由器 CSI
上手时间 30 分钟 半天到 1 天
覆盖 单房间 全屋
维护 组件升级 服务与阈值维护
适合 先跑通概念 长期全屋部署

提醒:无论哪条路,不要用于未经同意的监控;在家庭场景中应让同住者知情。

参考与数据来源

本文的每条外部结论都标注来源与证据等级(分级标准);标注 E 级的是本项目可复现的实测数据。

  1. A 级 · 标准/综述 WiFi Sensing with Channel State Information: A Survey
    W. Ma, W. Zhou, X. Wang · ACM Computing Surveys · 2019
    doi:10.1145/3310194 · 被引 857 · 核实: CrossRef API, 2026-10-11 · 领域内最常被引用的 CSI 感知综述(被引 857 次,核实于 CrossRef)。
  2. C 级 · 官方资料 francescopace/espectre — Wi-Fi CSI motion sensing for ESP32 (ESPHome)
    F. Pace
    github.com/francescopace/espectre · 核实: GitHub API 2026-10-11 (stars 9,505)
  3. C 级 · 官方资料 espressif/esp-csi — Applications based on Wi-Fi CSI
    Espressif Systems
    github.com/espressif/esp-csi · 核实: GitHub API 2026-10-11 (stars 1,679) · 官方 README 原文:“All ESP32 series support CSI, including ESP32 / ESP32-S2 / ESP32-C3 / ESP32-S3 / ESP32-C5 / ESP32-C6 / ESP32-C61.”

本页含联盟链接(rel="sponsored"),你通过链接购买不会增加成本,本站可获得少量佣金。