访客模式:仅本地录制,私密房间摄像头自动停用
一个布尔量把整屋切到访客模式:室内摄像头停止录制并物理合上隐私挡板,云端上传暂停,门厅仍按存在感应亮灯。最后一位访客设备离开 Wi-Fi 后 6 小时,模式自动退出。
# HearthNodes recipe 04 - guest mode camera pause
alias: "Presence - guest mode stops indoor recording"
id: hn_presence_guest_camera_pause
description: "Guest mode -> shutters closed, cloud upload cut, entry cameras stay armed"
mode: restart
max_exceeded: silent
trigger:
- platform: state
entity_id: input_boolean.guest_mode
to: "on"
- platform: event
event_type: wall_button
event_data:
device: hall_panel
gesture: double_press
variables:
private_cams:
- camera.bedroom
- camera.guest_room
- camera.study
gated_cams:
- camera.front_door
- camera.garden
condition:
- condition: template
value_template: >-
{{ is_state('person.primary','home') or is_state('person.partner','home') }}
- condition: template
value_template: "{{ private_cams | select('is_state','recording') | list | count > 0 }}"
action:
- service: camera.turn_off
target:
entity_id: "{{ private_cams }}"
- service: switch.turn_off
target:
entity_id: switch.camera_cloud_upload
- service: script.guest_arrival_lighting
- service: switch.turn_off
target:
entity_id: switch.poe_port_cam_bedroom
- service: timer.start
target:
entity_id: timer.guest_mode_expiry
data:
duration: "06:00:00"
- wait_for_trigger:
- platform: state
entity_id: sensor.guest_ssid_clients
to: "0"
for: "00:10:00"
timeout: "24:00:00"
continue_on_timeout: true
- service: input_boolean.turn_off
target:
entity_id: input_boolean.guest_mode
# The guest-verifiable signal is the physical shutter plus a dark status LED.
# Cloud uplink for the private-room VLAN is blocked at the firewall, not merely
# paused in software. Entry and garden cameras stay armed by design.
触发器 · state
input_boolean.guest_mode
访客模式布尔量置为开,可由墙面按钮双击或手机伴侣 App 触发。
分步说明
- camera.bedroom · camera.guest_room · camera.study停止卧室和书房的录制,并在支持机械挡板的机型上合上隐私挡板;入户与花园摄像头保持布防。
turn_off · shutter close - switch.camera_cloud_upload切断云端上传通道,使访客期间录制的片段只保存在本地录像机。
turn_off - script.guest_arrival_lighting下发访客动线照明场景(门厅、楼梯、客卫),让摄像头静默期间可见的自动化仍然正常工作。
run - timer.guest_mode_expiry启动 6 小时到期计时;只要仍有访客设备连着访客 SSID,到期时间就顺延。
start · duration 06:00:00 · restore true
让访客能看到的信号成为真实信号
一台挡板会动、指示灯会灭的摄像头,比任何隐私政策文字都更有说服力。如果现有摄像头没有挡板,优先更换卧室的那几台;入户摄像头没有挡板要好解释得多。
切断上行链路,而不只是停止录制
停止录制后设备仍在线,仍可能推送事件。在防火墙上阻断摄像头 VLAN 的外网路由,并用抓包验证摄像头确实不再外连。这是「姿态」和「保证」之间的差别。
按设备关联自动过期,而不是按固定时钟
固定 24 小时计时会在访客离开后的第二天早上仍让摄像头处于关闭状态。把到期条件设为「最后一台访客设备离开 SSID 后 6 小时」,房子就能自动恢复防护,不需要任何人记得去按按钮。
硬件
| 型号 | 协议 | 连接 | 在本链路中的作用 |
|---|---|---|---|
| Reolink E1 Pro (or any camera with a mechanical privacy shutter) | wifi |
无线 | 带物理挡板的室内摄像头,让「已关闭」对访客可核查,而不只是一句承诺。 |
| Local NVR with a dedicated VLAN | wifi |
有线 | 录制到本地存储,位于无外网出口路由的隔离 VLAN 上。 |
| Guest SSID on a separate AP or VLAN | wifi |
无线 | 访客 SSID 上的客户端关联,是维持访客模式的存在信号。 |
失效时怎么办
如果摄像头未确认挡板关闭命令,自动化重试一次后直接关闭交换机上该摄像头的 PoE 端口——这是唯一访客能自行验证的保证。若交换机不可达,通知会明确告知哪台摄像头仍在工作,方便你在访客到达前手动断电。