“Frigate 集成”的书房智能自动化控灯保姆级教程
这套方案利用 Frigate 的 AI 边缘计算划分出“虚拟隔间”,能做到比传统人体传感器精准数倍的控制(人走到书桌前才亮,坐在椅子上不动绝不灭灯)。
🗺️ 第一阶段:Frigate 端 —— 划分书房的“特定区域(Zone)”
首先,我们需要在 Frigate 里用坐标把书房的“书桌”和“门口”圈出来。
1. 借助图形界面一键圈地
访问你的 Frigate 后台(例如
http://192.168.0.1:5678)。点击顶部的
Cameras➔ 进去你的书房摄像头(scam_front)。点击右上角的
Mask & Zone creator(区域创造器)。点击
Add Zone,分别创建两个区域,起名为:study_desk(书桌区)和study_door(门口区)。用鼠标在画面上点击拖动,把范围框死。框好后,下方会自动生成一串
coordinates(坐标)数字。
2、摄像头核查设置
点击进入 设置 (Settings) ➔ 摄像头设置 ➔核查。
确保最上方的 警报 (Alerts) 和 检测 (Detections) 两个总开关处于开启(蓝色)状态。
往下看 核查分类 (Review Classification):
在左侧 警报 (Alerts) 下方:勾选
Study_desk和Study_door。在右侧 检测 (Detections) 下方:同样勾选
Study_desk和Study_door。勾选下方的
限制仅在特定区域内进行检测(限制只在框内触发事件,防止框外杂物干扰)。
点击最下方的蓝色
保存 (Save)按钮。
3. 写入 config.yml 配置文件
回到你的 Ubuntu 终端(/root/frigate/config.yml),将圈好的坐标规范写入。
⚠️ 避坑死理:YAML 对数字极其严格,坐标里的整数
0必须规范写成浮点数0.0,否则底层解析会弹语法错误!
YAML
zones:
study_desk:
coordinates: 0.0,0.596,0.23,0.598,0.23,0.89,0.0,0.887 # 💥 整数0全部规范改写为0.0
loitering_time: 0
objects:
- person # 💥 让书桌区域只过滤“人”
study_door:
coordinates: 0.581,0.222,0.825,0.105,0.897,0.76,0.785,0.803,0.637,0.94,0.598,0.983
loitering_time: 0
objects:
- person # 💥 让门口区域只过滤“人”
3. 让容器吃下新配置
在 Ubuntu 的 /root/frigate/ 目录下,执行强刷组合拳:
Bash
docker compose down
docker compose up -d
🔌 第二阶段:Home Assistant 端 —— 激活“虚拟设备”
由于新版 Frigate 集成非常智能,它不会把 Zone 当作零散的传感器,而是会在 HA 里直接把它们升格为独立的“虚拟设备”。如果找不到,我们需要强行逼它现身。
1. 强行重新加载集成(逼出设备)
进入 HA 设置 ➔ 设备与服务 ➔ 找到 Frigate 大卡片。
点击卡片右下角的 三个点
⋮➔ 选择重新加载 (Reload)。重新加载后,你会发现 Frigate 的设备数量瞬间暴增!它会整整齐齐地多出两个全新设备:
📺
Study Desk📺
Study Door
2. 精准揪出你的“触发开关”
点击进入 Study Desk 这个新设备页面,在里面你会看到 6 个专属实体。我们要用来做自动化的核心实体就是它:
binary_sensor.study_desk_person_occupancy(书桌区域是否有人)状态值为
on(有人)和off(没人)
🚀 第三阶段:编写自动化 —— 纯本土图形化状态写法 (未验证)
现在“任督二脉”全通,我们在 HA 里配置那条聪明的自动化逻辑。
1. 场景一:天黑有人进书桌,自动点亮台灯
进入 HA 设置 ➔ 自动化与场景 ➔ 创建自动化。点击右上角三个点 ⋮ 选择 以 YAML 格式编辑,直接粘贴以下完美对齐你环境的代码:
YAML
alias: "智能书房:天黑有人进书桌区域自动亮台灯"
description: "利用 Frigate 升格的独立 Zone 设备实现精准控灯"
trigger:
- platform: state
# 💥 触发实体:刚刚揪出来的书桌区域人流占用开关
entity_id: binary_sensor.study_desk_person_occupancy
from: "off"
to: "on"
condition:
- condition: state
entity_id: sun.sun
state: below_horizon # 环境门槛:太阳在地平线以下(天黑)
action:
- service: light.turn_on
target:
entity_id: light.study_desk_lamp # 💥 动作:秒开你的书房智能台灯
mode: single
2. 场景二:人离开书桌后,超时自动灭灯
为了防止你起身后台灯一直亮着,我们再建一条反向熄灭自动化:
YAML
alias: "智能书房:人离开书桌区域 2 分钟后自动灭灯"
description: "区域内没人持续 2 分钟则关闭台灯"
trigger:
- platform: state
entity_id: binary_sensor.study_desk_person_occupancy
from: "on"
to: "off"
for:
hours: 0
minutes: 2 # 💥 缓冲时间:持续 2 分钟没人,防止你只是弯腰捡个笔或者短离
seconds: 0
condition: []
action:
- service: light.turn_off
target:
entity_id: light.study_desk_lamp # 💥 动作:自动熄灭台灯
mode: single
🏆 通关成就
现在,整套系统彻底闭环:
画面捕捉:Foscam 摄像头将 RTSP 流送给 Ubuntu 容器。
边缘计算:i3-7100U 通过 Vaapi 核显硬解,并在你画好的
study_desk框内秒级锁定了“人”。状态广播:通过 MQTT 总线,HA 里的
Study Desk虚拟设备开关瞬间由off变on。完美执行:HA 判断当前是夜晚,啪的一声,台灯为你点亮。
你现在可以彻底甩开桌底下那些隔三差五就需要换电池、人在椅子上坐久了不动就误判灭灯的传统人体传感器了。好好享受这套纯本地、零延迟的顶级 AI 智能书房吧!
评论区