Which is the best way to build a room presence detection system?

I am a little confused about if it is better using motion detectors, bluetooth devices,or what, to turn lights on as I am moving in my house…
Motion detectors are easy and cheap, but the light can go off if I am seated watching tv.
Bluetooth devices are cheap too, I could use the smartwatch I always wear as bluetooth device, but I am not sure if it will be accuracy and fast enought to turn lights on and off…
Is there any way to do it? What system do you think will be better?

2 Likes

Bluetooth devices are fast enough, however you need some good positioning of the bluetooth receivers, otherwise your bluetooth device may “jump” between rooms.
However I would go the motion sensor route and add conditions to your automations.
E.g. in my office is a motion detector that turns on the light on motion, starts a timer of 10 minutes and turns the light off once the timer is finished. However if one of the PCs or the AV Receiver is on, it will restart the timer once it is finished instead of turning the light off. This way the light turns off only if there was no motion for 10 minutes and none of the devices is on.

4 Likes

Thank you for your answer.

This is a good starting point. I had not thought that depending on the BT receivers position, I could be closer to the next room BT receiver than the actual room’s BT receiver… and maybe the wall between rooms can not be muffing enought to get lowest BT signal in next room receiver…

About motion sensors, 10 minutes is much time to build an efficient lights on-off system in a house with 4 people living in… lights can be all day on. I’ll think about this, maybe room presence detection isn’t a good idea for automate normal lights.

The delay differs from room to room. In rooms where there are no other devices than the motion sensor I have a longer interval. In the living room it is only 1 min, because there is always some device on when we are in the living room (sound or TV). For the delay you also need to take into account how long it takes the motion sensor to report “no motion” after the last motion event. E.g. I configured mine to reset to “no motion” after 10 seconds of no motion, but some motion sensors are not configurable and take for example 4 minutes to reset to “no motion” after the last motion, therefore the minimum delay will be 4 minutes anyway.
In the end of the day, I rather have the light be on a little longer (power consumption is anyway extremly low with LED bulbs) than standing in the dark at an unconvenient moment.

2 Likes

I have been reading about motion sensors… it seems the number of RF motion sensors is limited to 16 (4 sensors for every RF bridge, and max 4 RF bridges) so, I am thinking to use PIR sensors directly plugged to my sonoff mini swithches…

1 Like

No experience with RF sensors, I only use ZigBee motion sensors.

1 Like

Burning, your English is excellent, Josep’s is pretty good too. But the word you were after here is ‘inconvenient’ :smiley:

Is there any limit about how many ZigBee motion sensors can be controlled? What receiver are you using? An usb stick adapter?

I should have known this one, as I use it almost daily :rofl:

I use the ConBee II stick to connect devices to the ZigBee network. I think there is a limit of 200 devices connected to one stick, but not sure on this one. However there is a limit for how many end devices (battery powered device, like door sensor) can be connected to one router (mains powered ZigBee device, like light bulb), which is 32 as far as I know.

1 Like

Interesting reading about ZigBee network capacity:


Seems limit is in range of several millions of devices in single mesh.
1 Like

Don’t know if your house is pre-cabled for this purpose but using an ordinary consumer alarm system with IP module including PIR sensors for every room would be much more flexible. Or you can use consumer grade alarm system wireless sensors for this (Though you have to compare total price for that). I have xiaomi zigbee body sensors in my bedroom; but they have a min of 2mins between movement registers (1.5 mins with deconz). On the other hand, i have this very cheap Crow alarm system with IP module, which registers movements online without and delays on or off, so i see movements in every room instantly. Btw, this cheap alarm system (all cabled reed or pir sensors) on my smart home network is the most stable of all among zigbee, zwave and wifi…

I use a mix of bluetooth and motion sensors, It works pretty well. Motion sensor will trigger the light but once the timer reports no motion it HASS to pass a condition of no bluetooth devices detected in that room. In my case it’s Mibands, which isn’t an issue as everyone in my house wears one.

The sweet automations are having custom modes for each room based on who’s in there. When I walk in to my living room the lights set to my preferred settings, the temperature i like, tv turns on and changes to Plex. If my housemates in there already, it’s on his settings and stays the same. When everyone leaves, everything turns off.

4 Likes

What do you use to detect the mibands? Pi Zero W? Are you using room-assistant as well?

1 Like

Yeah, room-assistant on a bunch of pi’s.

1 Like

Hey I’ve been using this for over a year now Monitor - multi user passive presence detector is room assistant better?

Do u have an example of your automation when the timer restarts if a specific device is in use in that room. I like this idea

I would use a “tripwire” to count the persons in the room and turn the lights on/off. Something like an infrared or laser receiver/transmitter pair. If you want also to personalise the scene, you could use bluetooth devices for individual recognition but that’s far far from perfect :wink:

My whole config is available here. However I’m afraid, all my automations are in AppDaemon :sweat_smile:

However in HA automations, I would do it like this:

Create a timer:

timer:
  office:
    duration: '00:10:00'

Create an automation that triggers on motion and turns the light on and starts the time (just in case you didn’t know this, when you try to start an already running timer, it will restart the timer instead).

automation:
- alias: "Turn on office lights on motion"
  trigger:
  - platform: state
    entity_id: binary_sensor.motion_office
    to: 'on'
  action:
  - service: light.turn_on
    entity_id: light.office_ceiling
  - service: timer.start
    entity_id: timer.office

Create a second automation that triggers when the timer finishes that starts the timer again if one of the “override” devices is on.

- alias: "Restart timer if an override device is on"
  trigger:
    platform: event
    event_type: timer.finished
    event_data:
      entity_id: timer.office
  condition:
    condition: or
    conditions:
      - condition: state
        entity_id: switch.computer_office
        state: 'on'
      - condition: state
        entity_id: media_player.office
        state: 'playing'
  action:
    service: timer.start
    entity_id: timer.office

Create a third automation that also triggers when the timer finishes that turns the lights off if none of the override devices is on.

- alias: "Turn off lights if no override device is on"
  trigger:
    platform: event
    event_type: timer.finished
    event_data:
      entity_id: timer.office
  condition:
    - condition: state
      entity_id: switch.computer_office
      state: 'off'
    - condition: state
      entity_id: media_player.office
      state: 'off'
  action:
    service: light.turn_off
    entity_id: light.office

The last two automations can probably be merged into one automation, not an expert in HA automations :upside_down_face:
I didn’t test these automations, but feel free to try it.

6 Likes

Good idea, but how about this:
One person is in the room, another person enters the room, how does the “tripwire” know if the person inside the room left the room or another person entered the room? I think you would need at least two tripwires to know in which direction it was tripped, or am I completely wrong?