I’ve had an Aqara FP2 running in Sleep Monitor mode for about a year in the bedroom. Its sleep data (heart rate, breathing rate, body movement, sleep stage) lives in Aqara’s cloud and doesn’t reach Home Assistant through the local integration path, which gives you your presence information.
SleepRadar is a small Home Assistant app (HA OS/Supervised) hat brings those sleep readings in as MQTT discovery sensors, and ships with a one-file Lovelace card that shows the live reading.
Credit first: sdavides’ AqaraPOST covers similar ground with Node-RED or REST setups, and Darkdragon14’s ha-aqara-devices is a HACS integration backed by a RocketMQ bridge and capabilities for more products. Both work. SleepRadar is the narrow take: one app focused on the FP2’s sleep data, card included.
You need:
- Home Assistant OS or Supervised with support for apps
- An MQTT broker (I run it with Mosquitto)
- An FP2 in Sleep Monitor mode
- Your Aqara Home app login and the FP2’s subject_id (both from the smartphone app)
What I do with it (example YAML ships in the repo):
- cap bedroom lights at lower brightness, if someone is asleep for more than 5 minutes, and use it as a trigger for sleep light control via Magic Areas integration.
- control the vacuum cleaner when someone is asleep
- lower the thermostat when deep sleep starts
What SleepRadar is not: local-only or medical-grade. It polls Aqara’s private, undocumented app API, which Aqara can change or block anytime. But the history already recorded in HA stays yours. Heart rate and breathing are measured by the FP2 sensor and have been reliable for me. Sleep stage is calculated by Aqara; I treat it as a signal but not as definitive.
Repo: https://github.com/florianhorner/ha-fp2-sleep
Questions welcome.
The first FAQ reply below covers the usual questions (local-only, regions, accuracy) as a convenient snapshot. For install steps and the full FAQ, the GitHub README is the canonical, up-to-date documentation.
2026-07-05: removed typos, tightened terminology (add-on -> apps), tightened text, added note on canonical readme
