What is the difference between show as presence, motion and occupancy?

Today In was trying to build a dashboard showing all my motion sensors, and I have discover that I have three types of “motion sensors”.
The oldest one were motion, which makes sense.
Then some more advanced ones started to appear as presence, mostly milliwave ones.
But recently I have discovered that I also have occupancy sensors.
What is the difference between all those, and why would I want to have different devices that all I want from them is report if there is something in some room?
I get the difference between motion and presence, but why the additional occupancy?
For reference, see the attached picture

At the end of the day, they’re all just binary sensors (so on or off). It’s just a matter of how it looks in the front end (text and icon). Here’s a list of all the binary sensor device classes:

Yes, that is exactly my experience - it only affects how it is displayed in the UI and for automatic dashboards. However, why several devices are configured by default with different versions of this? that’s my question also.

PIR sensors have hard time detection small movements, so the object needs to move quite a bit to be detected.
These will normally be designated motion/moving.
mmWave can detect even small movements like a chest moving when breathing, so these can be presence/occupancy.

No idea what the difference between motion and moving, and presence and occupancy is though.
It might just be an user defined difference, like a room can be occupied, ie. bathroom, and a human can be present in the office.

Mostly semantics for UI purposes: I would say I’m occupying my bed, but present at home.

1 Like

Thar makes sense when you’re speaking about different types of things.
However, I have milliwave sensors that were configured by default as presence and other milliwave sensors were configured by their integration as occupancy, and I can’t understand why, and if it would be a good idea to change them to be of the same kind

HA show what the integration provides, and the integration often takes what the manufacturer provides.

What about the idea of “unifying” all under either motion or presence? Any drawback?

Not that I know. At one moment Zigbee2MQTT changed the name from ‘motion’ to occupancy, which clashed with my non-Zigbee motion sensors. So I changed them all to motion. Never had problems.

This is my personal hierarchy of these terms - but I acknowledge that others may not share this. And this sort of definition gets even more challenging when translated into other languages…

Motion: Actual movement has been detected.

Presence: Some sort of physical detection of a person has occurred, but it may be via heat, pressure, sound, or other attribute(s), not necessarily motion.

Occupancy: A higher-level logical determination that someone is there, that may or may not be based on motion or presence sensors. For example, occupancy could be determined via logic associated with WiFi-connected devices or door opening history.

5 Likes

This is the definition I use in my system.

Ir detection / someone passing through a room (pir) v giant bag of mostly water (mmwave) seated in room… or something else going on to indicate something is going on in that room. (presence + something active) All three are different conditions… On top of it I add wasp in box. To combine with door/portals to lock occupancy in closed spaces. They all mean different things.

1 Like

Are you asking whether HA should get rid of what you see as ambiguous/redundant/confusing or are you asking what you should choose to update your entities?

The device class doesn’t affect functionality. It affects how things are displayed on the frontend (text labels for states and units, where applicable).

1 Like

The second

I asked this same question, but then looking at the strings for binary sensors it seems very obvious:

  • Occupancy: a property of a room / home / space being occupied
    ("{entity_name} is (not) occupied")
  • Presence: a property of a person (or animal or other entity) being in a room / home / space
    ("{entity_name} is (not) present")
1 Like