Install Guide · Presence Suite

Bed Presence Sensor Installation

Transform any bed into a privacy-first presence surface. This guide walks you from industrial design–grade mounting through calibration, telemetry literacy, and the subtle tuning that makes OpticWorks presence feel invisible — until you need it.

Calibration
60 seconds

Baseline capture with our z-score engine ensures the bed's still energy is perfectly mapped.

Confidence
>0.85

Presence state is stabilized by adaptive hysteresis so automations never flicker or fail.

Integrations
Home Assistant + Matter

Expose binary sensors, change reasons, and tuning controls with zero reflashing required.

Experience Blueprint

Crafted installation flow

Each phase stacks engineering precision with spa-grade finish. Follow the progression for a flawless, invisible deployment that feels native to your bedroom architecture.

Phase 1

Stage & Align

Mount the capsule and align the mmWave field

  • Snap the magnetic enclosure to the bracket and fasten it 18" from the headboard, centered beneath the mattress.
  • If you have an adjustable base, clip the enclosure to the moving rail to keep orientation locked-in.
  • Confirm the radar window is parallel with the mattress — millimeter precision matters for stillness detection.

Phase 2

Power & Route

Deliver pristine power and shielded data

  • Run the braided USB-C lead along the frame using the adhesive strain-relief clips provided.
  • Seat the cable into the ESP32 hub and connect to a 5V supply capable of 2A to avoid brown-outs during Wi-Fi bursts.
  • Dress any excess cable inside the enclosure to keep the install invisible from every viewing angle.

Phase 3

Baseline

Teach the sensor your version of "empty"

  • Open Home Assistant → Integrations → OpticWorks Presence and launch the baseline capture sequence.
  • Leave the bed untouched for a full 60 seconds while the adaptive filter computes the still-energy offset.
  • Observe the live z-score trace in the dashboard — it should fall and stabilize between -0.2 and 0.2.

Phase 4

Validate

Confirm absolute confidence before shipping automations

  • Lie down naturally. The presence confidence should rise above 0.85 within 2 seconds.
  • Stay perfectly still for 45 seconds to ensure Absolute Clear Delay holds state and prevents false clears.
  • Leave the bed. After ~30 seconds the sensor should gracefully return to the Idle state without chatter.

Installation timeline

  • 1

    1. Mount the enclosure

    Attach the magnetic enclosure to the included bracket and secure it 18" from the headboard, centered under the mattress. Adjustable bases can use the clip mounts.

  • 2

    2. Route power + data

    Connect the USB-C cable to the ESP32 hub, then tuck the cable along the bed frame using the adhesive clips. Plug into a 5V power supply.

  • 3

    3. Capture baseline

    Open Home Assistant → Integrations → OpticWorks Presence and start the baseline. Leave the bed empty for 60 seconds to record the still-energy offset.

  • 4

    4. Validate confidence

    Lie on the bed and watch the console for presence confidence > 0.85. Stay still for 45 seconds to confirm Absolute Clear Delay behavior.

Launch checklist

Sensor mounted under bed rail

USB-C cable strain relieved

Baseline captured with empty bed

Presence flips to Occupied within 2 seconds

Clear delay holds for 30 seconds after getting up

Expose presence_reason and absolute_clear_timer on your dashboard to observe the 4-state engine evolving in real time.

Hardware & physical architecture

Premium sensing demands premium placement. Assemble the kit below, then use the placement guide to tuck the hardware away without sacrificing fidelity.

$15–$30

ESP32 Core

M5Stack Basic or equivalent with Wi-Fi + BLE

Acts as the secure hub running the OpticWorks Presence firmware profile.

$8–$15

LD2410 mmWave Module

24GHz radar tuned for still-body detection

Delivers the ultra-fine motion data that powers our 4-state decision engine.

$3–$5

USB-C Cable

Braided, 1.5m minimum

Used for power and provisioning; rated for sustained current with minimal voltage drop.

$2–$5

Jumper Harness

4× female-to-female for UART

TX↔RX must cross over; keep runs short for noise immunity.

Placement essentials

Think like an industrial designer: you're creating an invisible halo that cradles the sleeper.

Height
1–3 feet above the mattress plane

Keeps the radar lobe tight to the sleep surface while avoiding mattress springs.

Position
Centerline of the primary sleeper

Balanced coverage ensures equal fidelity for each side of the bed.

Angle
Perpendicular to the mattress

Prevents the beam from catching walls or dressers that cause ghost returns.

Avoid
HVAC vents, mirrored wardrobes, power supplies

Thermals and reflections introduce noise the adaptive filter has to fight.

Knowledge console

Deep control without the guesswork

Tap through each capsule to unlock expertise for every phase — from prerequisites to telemetry nuance. The content below mirrors our in-house install playbooks.

Prerequisites & orientation

Foundational requirements

  • • Home Assistant installed and operating on your network
  • • ESPHome integration enabled (dashboard or CLI)
  • • 2 uninterrupted hours for mounting, wiring, and calibration
  • • Comfortable handling low-voltage wiring and provisioning ESP32 hardware

Why this kit is different

  • Statistical intelligence: Adaptive z-score baselining with drift monitoring
  • Four-state verification: Idle → Micro-motion → Occupied → Clear Delay
  • Stillness detection: Comfortably tracks sleepers without body movement
  • Transparent decisions: Every transition is logged with human-readable reasons

Diagnostics playbook

If something feels off, move methodically. Each scenario below contains the exact fixes our field engineering team runs through during concierge installs.

Device never appears in Home Assistant

  • Confirm Wi-Fi credentials in secrets.yaml — network and password must match casing.
  • Make sure the ESP32 joined your main VLAN, not a guest SSID that blocks discovery.
  • Run esphome logs bed-presence-detector.yaml to inspect provisioning output in real time.

binary_sensor stays OFF

  • Rerun the baseline procedure with the bed completely empty.
  • Verify the enclosure is within the 1–3 ft height band and still centered.
  • Inspect TX/RX wiring — they must be crossed and powered strictly at 3.3V.
  • Check the z-score from presence_state_reason. If it never rises above k_on, reposition the module.

Clears while someone is sleeping

  • Increase absolute_clear_delay_ms to 60000. If needed, extend to 120000 for extra stillness buffering.
  • Lower k_off to 3.0 to keep the hysteresis wider in low-motion scenarios.

Rapid ON/OFF flapping

  • Raise k_on to 10.0 and lower k_off to 3.0 to widen hysteresis.
  • Increase on/off debounce to 5000ms and 8000ms respectively to smooth noise.
  • Check jumper connections and cable routing for interference or loose pins.

What you'll unlock

Fully functional bed presence sensor anchored to OpticWorks firmware

Accurate stillness detection even during deep sleep or meditation

Zero false positives from HVAC turbulence, pets, or hallway motion

Complete transparency into decisioning via change reasons and z-scores

Tuning controls surfaced in Home Assistant — no reflashing required

Automations that honor true occupancy, not guesswork