Home AssistantmmWaveCameras

Office entry while empty

Know when someone actually walks into an empty room — not when a door is just left open. Contact sensor + mmWave presence + camera person detection, with a snapshot push and cooldown.

Difficulty · IntermediateSetup · 45–90 minutesHA · current stable (blueprint)ESPHome · current stable
Get the pack · from $19LEMON SQUEEZY PLACEHOLDERHave us set it up

Some hardware links on this page are affiliate links. We may earn a commission if you buy through them, at no extra cost to you. See the affiliate disclosure.

A door contact by itself is a bad occupancy signal. People leave a room door cracked; pets bump it; a draft moves it. This workflow only alerts after three cheap sensors agree: the door opened, mmWave sees a person linger, and the room camera reports a person — then it sends a snapshot and stays quiet for a cooldown.

It is written as a generic room pattern. You pick the contact, presence sensor, and camera in the blueprint inputs. Do not copy someone else’s entity names.

What problem it solves

You want a push when someone walks into a room that should be empty (office hours, a shop, a spare room), without a page every time the door is left open.

How it works

  1. Door opens — a contact sensor fires. That starts a short confirmation window; it does not alert by itself.
  2. Presence confirms — an LD2410 (or similar mmWave) must go occupied and stay occupied for a few seconds. That filters a door that swung and nothing walked in.
  3. Camera agrees (optional but recommended) — person detection on a room camera. Treat this as a second vote, not as a map of which doorway the camera covers.
  4. Snapshot + notify — Home Assistant takes a camera snapshot and sends it with Pushover or Companion.
  5. Cooldown — a helper boolean suppresses repeats (default ten minutes). A separate condition ignores “door has been open for a long time.”

Default timings in the pack are starting points, not a schedule of when a house is empty. Tune them for your room.

Hardware notes

  • Contact. Any Zigbee/Z-Wave/ESPHome binary sensor is fine. Mount it so “open” means the door actually opened.
  • mmWave. LD2410 over UART or the common ESP32 breakout, flashed with ESPHome. Keep it off metal and give it a clear view of the walk-in path. Pair it with the contact so a ghost occupancy blip does not page you.
  • Camera. Any Home Assistant camera entity that can snapshot and, ideally, has a person binary sensor. Indoor PTZ/fixed RTSP cams (Reolink and similar) work. Do not publish or reuse clips from a real home; test with a dummy scene.
  • Notify. Pushover is simple; Companion works if phones are already enrolled.

Some of those product links are affiliates — see the disclosure on this page.

Snippet

The pack ships a blueprint. Inputs replace real entity ids:

trigger:
  - platform: state
    entity_id: !input presence_sensor
    to: "on"
    for: "00:00:15"
condition:
  - condition: state
    entity_id: !input cooldown_helper
    state: "off"
  - condition: state
    entity_id: !input door_sensor
    state: "on"
action:
  - service: camera.snapshot
    target:
      entity_id: !input room_camera
  # notify + set cooldown — full blueprint in the pack

Setup outline

  1. Add the contact, mmWave, and camera to Home Assistant.
  2. Create the cooldown input_boolean (or let the pack’s helpers do it).
  3. Import the blueprint, fill the four inputs, pick a notify service.
  4. Walk the loop with the room occupied and empty. Confirm: open door only → no alert; walk in → one alert; repeat within cooldown → silence.

Troubleshooting

  • Alerts on door-left-open. The contact is still on and presence flickered. Tighten the “for” on presence, or require the camera person sensor.
  • Missed walk-ins. mmWave is aimed at a desk, not the doorway. Move it or drop the presence for slightly.
  • Snapshot missing. The camera entity must support camera.snapshot and the notify service must accept a file. Check HA media path permissions.
  • ESPHome LD2410 silent. UART pins and rx/tx swapped are the usual fault; the pack YAML comments the Super Mini / generic ESP32 pin choices.

Security note

This is a room-entry pattern, not an alarm system. Do not publish lock codes, arming schedules, or which camera covers which opening. Keep those in your private config.

Changelog

v1.0 · DATE: First publish.