Another solution is to set up reelyActive (BT tracking) or FIND (wifi tracking) which has enough resolution to track devices on a room by room basis. But this also means that the occupants need to keep one or more devices with them while at home.
For some people, this is easy (smart watch, some medical devices, etc) but for most this is a deal killer.
Unfortunately, as you are finding, this is one of the hard problems to solve affordability in home automation.
Whenever I face a problem like this, my first instinct is to step back and see if there is some way I can reshape the original problem to make it easier to solve. For example:
-
Automate the lights based on time of day or lighting conditions and ignore whether the room is occupied or not.
-
Make the amount of time the light stays on based on time of day so if you enter the room at a time when you are likely to be awake leave the light on for long enough that you are likely to be detected moving around again or will have exited the room (i.e. hours instead of minutes).
-
Automate the lights strictly based on time or some other event instead of the motion sensor, or a combination of states. For example, turn on the light when the motion sensor detects motion and keep the light on until you go to bed or presence is no longer detected in the house.
-
Use sound, sonic distance sensors, vibration sensors in the couch, etc. in addition to the motion sensors when determining room presence. Use a weighted average or sum of all the sensors when determining room presence (e.g. if three sensors say the room is occupied treat the room as occupied).
-
As already suggested, cameras can be used to detect if there is someone in the room.
There are lots of ways to go about this, all of which either require a lot of work or require a compromise on your part.