Sensor Integration Considerations

Practical notes on hardware, placement, and event ingestion for the POC.

Why Aqara FP2

The Aqara FP2 is a low-cost mmWave presence sensor designed for zone detection rather than identification. It fits the privacy posture: detect that a zone is occupied without recording who is present.

It supports HomeKit and Matter, which makes it accessible via several open automation layers (Home Assistant, Apple Home).

Placement

Mount above doors, at corridor junctions, near stair access, and inside restricted rooms. Aim the sensor's coverage cone toward the boundary, not the rest of the room.

Avoid line-of-sight to fans, curtains, or pets, which trigger false detections.

Reliability & limits

Expect occasional false alarms (staff movement, environmental noise) and missed detections (multiple people clustered, edge of zone). Rules and staff verification compensate for both.

Battery life on FP2 depends on activity; flag low-battery states in the dashboard.

Power, network, maintenance

FP2 is USB-powered. Plan cable routing during install. Wi-Fi quality at the mount point matters — confirm signal before commissioning.

Schedule monthly health checks: battery, last-seen, false-alarm rate per zone.

Data normalization

The webhook receives brand-specific payloads, then normalizes them into a single internal event shape. This means we can later add Zigbee door sensors, PIR sensors, or LoRa beacons without rewriting the dashboard.

Future extensibility

The schema is hardware-agnostic. Adding a new sensor type means: register the device, map its payload to the generic event shape, and (optionally) add rules.

Conceptual API endpoint
POST /api/sensor-event
Content-Type: application/json

{
  "sensor_id": "SEN-EX01",
  "sensor_name": "Main Exit FP2 Sensor",
  "brand": "Aqara",
  "model": "FP2",
  "zone": "Main Exit",
  "event_type": "presence_detected",
  "timestamp": "2026-05-06T10:42:15Z",
  "battery_level": 86,
  "signal_strength": "good"
}

→ matched to sensors table
→ persisted to sensor_events
→ rules engine evaluated
→ outcome: { severity: "alert" | "caution" | "log_only" }
Ethical reminder. CareWatch detects presence in zones — it does not identify individuals or track residents continuously. Staff judgement remains central; the system surfaces signals, it does not make care decisions.