I am an IOT maker. I just happen to just finish making Zigbee arrival sensor. Based on my experience making them, I just want to share some internal information from the perspective of developer regarding the use of Zigbee sensor as presence detection. It is a bit long info. But, I hope it helps. Here we go…
A Zigbee end device (with most main stream Zigbee stack provider like TI, nordic, and sislab), has the capability to detect “lost of parent” (just simply lost connection). Once connection to the parent is lost, the device with attempt to establish reconnection. This behavior in the latest spec is not standardized. By default, I have stack provider that will try to reconnect up to 120 minutes. Other stack providers will continue to reconnect. This is why some devices are capable to be used as presence and some cannot. Those that stop the reconnection attempt is not a candidate for presence sensor.
One may ask why a device maker stop the reconnection. Reconnection is expensive in term of power consumption. A small battery devices in general will have issue with the power consumption.
With a device that will attempt to reconnect continuously, the small battery that come with the sensor is not adequate. If you search the ST arrival sensor, you will find a lot of people modify it to use 2 AA battery. The famous term about this issue is “battery draining”.
In my device, I attempted to address the “battery draining” issue above. I narrow the scope and ask myself what I can do if I use the sensor in my car. Obviously, I can not eliminate the reconnection issue. Therefore, I am trying to use recharge-able battery. I hope to get continuous power as long as the car is driven daily.
Knowing the car is off or on power, now, I can have separate strategy for reconnecting. While on power, I can attempt to reconnect much more aggressively. While on battery, the sensor will be much more calm. This is unique based on my experience. I do not think any main stream sensor in the market does this kind of optimization.