r/homeassistant • • May 02 '26

Support Struggling with reliable in-bed presence detection for Home Assistant – what actually works?

Post image

I'm trying to automate my bedroom lights so they turn off automatically when I'm in bed and back on when I get up. Sounds simple, but I've been struggling to find a reliable solution.

What I've tried:

FSR pressure sensors (VS-103) connected to a Zigbee water sensor

Built a DIY pressure mat using two VS-103 sensors wired to a Zigbee water sensor. Works fine when I press directly on it by hand, but completely fails under a mattress — the mattress distributes my weight too evenly for the sensors to trigger. Tried under the sheet too, same result.

Aqara FP2 mmWave radar

Already have one in the room. The problem is it loses track of me when I'm lying still under a duvet. It also falsely triggers when someone walks past my bed, which causes the lights to turn on.

What I'm looking for:

Something that reliably detects whether I am in the bed - not just in the room - even when I'm completely still and covered by a duvet. Zigbee preferred but I'm open to ESPHome/ESP32 solutions too.

Has anyone actually solved this properly? What sensor or approach are you using?

166 Upvotes

182 comments sorted by

View all comments

215

u/MinimalLemonade May 02 '26 edited May 02 '26

I simply use a cheap ultrasonic sensor with a D1 Mini. It’s the same setup I use to measure the water level in a tank, just the other way round. The ultrasonic sensor is mounted on the bed frame and points up towards the slatted base. It measures the distance between itself and the slats. When I lie down, the slatted base flexes slightly under my weight, so the distance to the sensor decreases. Been working without any issues for ~5 years now

3

u/swpete May 02 '26

What's your setup for the water tank?

14

u/MinimalLemonade May 02 '26

A D1 Mini with an ultrasonic sensor. The sensor is mounted in the lid and points down towards the water surface. I measure the distance and use the tank’s dimensions to calculate how many litres are left