Any good room presence detection sensors out there?

Seriously I keep waiting for something good to show up but nothing fits the bill. I’m looking for ROOM presence detection. Not motion sensors that don’t detect you sitting on a couch. They’ve got to be better than that. Not Bluetooth beacons that are unreliable and require you to have your phone on you.

There’s got to be a sensors that can do this. Occupancy sensors. Anybody have any suggestions?

2 Likes

I use some Nut Mini for room presence detection together with some Pi Zero Ws distributed in the different rooms. This works now for around 2 years and it’s reliable as hell, the only time it failed me was when the battery died for the first time after 7 months, since then I proactively change them every 6 months. Currently I use it only to detect if we are home or not because I haven’t found a use case for room based presence detection that couldn’t be solved easier with other methods.
What is your use case or what is your end goal?

End goal is to have lights, TVs, climate controls, music, etc. automate based on room occupancy.

As of now I can reliably automate based on being home or away from home and to a degree which room I’m in with motion sensors but they just come up short.

I’ve considered load cells under the couch and bed but I keep dreaming of a better occupancy sensor of some kind.

2 Likes

If you wear slippers at home, cut a hole and put the Nut mini in there.

3 Likes

Hello linkdevk, welcome to the forum. I just read your question and I found the question very interesting. Good presence detection is also important to me, which is why I have been looking for a good solution for a long time. I just discovered this here. Unfortunately I can not have any experience or information on the use and integration in HA, I do not know if an integration is possible! Have fun here in the forum and set up HA.

1 Like

Haha or just wear an ankle bracelet

1 Like

Dude did you check the price? Almost 500 euros for 1 unit!!!

I also thought that is damn expensive …

I’ve been using an amg8833 with great success.
Just want to point out a few things:

  1. the FOV is just 55° on this one, there are other models though
  2. It is an 8x8 grid. I’ve seen people scale it up with a cubic interpolation to 16x16 pixels and run blob detection to detect how many people there are, but I never understood the point of it and how you get more information by some interpolation on pixels. It also did not work that well for >2 people for me - but I only cared about the binary value of room occupation
  3. as with all thermal cameras, the heat dissipation is with an e-function, so if you are in the room for a while, it can take 3-5min for the temperature to be below a threshold. but some smarter logic behind it solves this issue for me
  4. I am running it on a pi.
  5. you’ll have to DIY

While it seems silly, I do not like to have a camera pointing at me to run real person detection, but the small thermal camera is fine for me (and the GF)

5 Likes

I missed this reply, but just happened on this sensor yesterday. This looks really promising. I read that it works reliably up to 5m. Have you found this to be the case?

Also, any tutorials or places where I can get more information on how to do this?

Thanks, this is definitely the answer for room presence detection.

Not really, just a bit of python and you’re good to go! (the other docs I have found have been using some old library that was not working anymore)
All that’s necessary is described here

If you wanna do it on the pi as well, make sure to activate i2c in the raspi-config.

Once you’ve installed the library
sudo pip3 install adafruit-circuitpython-amg88xx

and initialized it

    import time
    import busio
    import board
    import adafruit_amg88xx
    i2c = busio.I2C(board.SCL, board.SDA)
    amg = adafruit_amg88xx.AMG88XX(i2c)

you get via amg.pixels your 8x8 data. Then you can play around with it and test it out!

absolutely. I’ve read it was 7m, but I can verify that it detects me as soon as I enter the room from the other corner of where the sensor is, which is a bit more than 5m away

I also wanna point out if you happen to dine a hot meal and leave the room, the food is a potential case for detection, gotta think of how to avoid that if it bothers you (motion sensors, gradient detection and verifying it, other sources of occupancy in other rooms, … the possibilities are endless)

1 Like

I would really like to give his a go as it seems like the best approach to room detection.

But I must admit not really sure how to get started. Im good at electronics, Newish to HA but dont have python experience… :confused:

Is there any chance you could share some more info about the project? :slight_smile:

Since then I have changed my setup to an ESP32, so if you are more comfortable with C/C++ then this seems like a good option as well :slight_smile: (installing the adafruit library made it plug and play as well)
I am communicating via MQTT (PubSubClient library on ESP32) with HA.

The first iteration was on a pi3 with only the amg8833, I (calibrated and) averaged the 8x8 pixels and set a threshold for a boolean. This works well, but needs to be re-calibrated regularly as the room temperature rises

The second iteration was on the esp32 including more sensors (especially the BME280) and did some flood fill for a blob detection kind of approach

As of now I am simply using the ESP32 to gather the data and publish them via MQTT and have the postprocessing and blob detection done on another hardware (just be aware that there is a size limit for MQTT messages on the ESP32, so you will have to split the array of 64 values into seperate messages)

Anything in particular you’d like to know?

I’m tracking this with great interest. I’m also looking for a reliable room presence detection. Did you also see https://www.room-assistant.io/ ?

Did you try to change the max size limit of mqtt messages.
PubSubClient::setBufferSize(size)
?

1 Like

Hey,
thanks for the suggestions!
I did, but still could not see my message being published, but might have done something wrong
Can you verify that a float, or rather char array, of 64*6 ("xx.xx ") can be sent with MQTT on the esp32? I’d love to try it again!

Edit:
I just tried it - I was overriding the #define before which did not work, but the setBufferSize did the trick - thank you for the hint!

1 Like

I’ve seen it supports thermal sensor types like the AMG8833 as well, but never got around trying it in the end
But I have heard many good things about people using it with bluetooth!

Honestly though, this is more of a learning project for me, since many things (including the esp) are new to me :slight_smile:
My current setup sends a batch of data to my NUC, storing data in a db in docker and running some neural network considering the extra sensors instead of a blob detection from the AMG8833 alone.
Overkill? most likely. Fun nevertheless :slight_smile:

I did and I use it for 2 years now, it’s working pretty well. I documented everything here in case you are interested.

1 Like

Nice thanks! Any experience with the thermal sensors? As I’m reading it is supposed to be the best solution for room presence detection as they can determine presence even when sitting still like on the couch watching a movie :grin:

Too bad. I’m a newbie and that sounds complicated! :innocent: Where did you get the wisdom to set that up? Any info you written about it somewhere? Sounds interesting.