Bed Presence for ESPHome by Elevated Sensors

Thank you for your helpful answers. I have now ordered everything once and will report whether it works.:+1:

My bed has “satellites” instead of slats. Do you think this will work? They are hard plastic but can bounce up and down individually.

I would not be confident it would work. There are potentially a couple challenges, but the biggest one in my mind is mounting 24 inch wide sensor strips across the satellites without damaging them when the satellites move. There’s also the question of if the satellites would provide enough pressure against the sensor strips.

1 Like

Makes sense. Too bad, thanks anyway!

Single sensors kits are now available for Twin/Full beds! These kits are identical, only ship with one sensor strip instead of two. This gives you the flexibility to plug the single sensor strip into either side of the module, or even upgrade to a dual sensor setup down the road.

4 Likes

8 posts were merged into an existing topic: FSR - the best bed occupancy sensor

I have a completely flat baseboard for my mattress and I’ve just mounted it upside-down and used the extension wires provided (otherwise the FSR would bend a bit).

I’ll report back after some time with how it’s working out, but it seems good so far.

I would like to adopt this device into ESPHome so I can add my encryption key, add a status binary sensor and adjust the device name.

However I never see the adopt option in the ESPHome add-on dashboard. I do see it available to Add in Devices & Services but want to do the adopt and make the changes first.

Do I have to download the yaml file?

Is your HA server and IoT devices (ESPhome devices) on different VLAN’s? That’s my issue and the ESPhome Dashboard never displays newly added devices if they are brought in externally (ie: not created from YAML). I had that issue with a couple of Athom Presence sensors.

Nope. One flat network.

I just turned off “use ping for status” in the ESPHome add-on and it found it.

oh nice. I haven’t tried that before because using ping was the only way for the ESPhome dashboard to see my devices as online given the VLAN setup

Yeah one of my other sensors now fails to show up as online in the esphome dashboard but I can connect to it and view the serial logs. Weird. That’s probably why I turned ping on initially.

All sorted except…

As for adding the status binary sensor, which I prefer to the uptime sensor for monitoring devices on my network, I’m not 100% sure if I can add that. Or if it will interfere with the binary sensor declaration in the package include.

So maybe this would be best asked for as a future request for a future firmware update?

If you do find that it conflicts for some reason, you can always remove the uptime sensor. The underlying package (sensor-configs/bed-presence-mk1/base.yaml at b6af5cad30f6a0196b2c253b769db3aef87f976f · ElevatedSensors/sensor-configs · GitHub) includes an id for each sensor, so you can remove it as documented here (Packages — ESPHome). For the uptime sensor, it would look something like this…

sensor:
  - id: !remove bed_presence_uptime

Not bad. I like the idea of a readily made locally controlled bed sensor. I am still missing this kind of sensor to include in my automations. I’ll wait if you will be coming up with an idea how to reliably measure presence in a box spring bed (the proper one with two thicker box spring mattresses and a thinner topper)

Thanks for the advice Stephen. I’ll give adding the status sensor a go later. What I meant by ‘interference’ was having a binary_sensor: definition in the main file and in the included package. I guess that should be ok.

The first night with the new sensor has proven very positive. No false alerts (from an unusually restless night’s sleep) and yet it was also very fast to respond to being out of bed.

Very easy to set up too. I might try another calibration as I noticed the FSR is settling a little lower now that it has had time to straighten out from the shipping kinks (curls really) under pressure of the mattress.

That was the easy bed though. I have another bed with a much denser mattress. That’s tonight’s test.

Ah, understood. I just verified you can add the status sensor to your config without causing any issues with the underlying packages. I added the following binary_sensor section after the packages section.

packages:
  remote_package:
    url: https://github.com/ElevatedSensors/sensor-configs
    ref: main
    files: [bed-presence-mk1/base.yaml]
    refresh: 1s

binary_sensor:
  - platform: status
    name: "Bed Presence Status"

Glad to hear it’s performing as expected!

You beat me to reporting it. I had already tried it and confirmed it working. :smile:

I’ve noticed that the minimum pressure % when the bed is unoccupied is slowly getting a lot closer to 0 on both my beds. Is there some sort of auto calibration or is it just the FSRs flattening out after being curled up in packing?

Either way it’s a good thing. Much better range. I just need to recalibrate the triggers once it has settled to 0.

The Pressure % sensor just reports what it sees (inversely correlates with FSR resistance), no calibration to try to move it down to 0%. So it very well could be the sensor just straightening out from shipping. It’s great to see people’s setups return to 0% when unoccupied, but it’s not expected for all beds. It seems that memory foam is the most challenging. It seems to remove most of its weight from the slats immediately after you get out of bed, but then slowly relax and put its weight back on the slats over many hours (picture below). I’ve also see the opposite, where the pressure decreases slowly while the bed is unoccupied. As long as the Trigger Pressure is set above this rebound point, it doesn’t cause problems.

As we see more bed types in the mix, we’ll learn how different bed setups respond. If you don’t mind sharing, what kind of mattresses do you have?

I have a memory foam mattress as well and was wondering the same thing as tom if there’s some kind of calibration since mine also started reporting 0% when no one was in bed, but that makes sense since it was a bit rolled up from shipping.

I know I’ll get some flak for this, but maybe the solution is pretty simple if you can resist the temptation.

Install the hardware and don’t do the software part until you’ve slept on the thing for at least week. That should solve the majority of “settling” issues, provided you resist the urge to play with your new toy :wink: