How do I detect when a user is sitting in the chair in front of a computer? [closed]
I am interested in detecting when a user is actually sitting down in a chair in front of a computer. The presence of the user affects many scheduling and user notification decisions that need to be made and as such, the data obtained about the user would need to be readable by a scripting engine.
What I am looking for:
- Better to accidentally presume the user is in his chair when he is not. If the method of detection is not accurate, it must err on the side of the user being in the chair when he/she is not.
- Identifying whether the person sitting in the chair in front of the computer is indeed the user that is logged in. This needs to happen without the user explicitly authenticating/identifying. As such, it will not be used for security or privacy related features as it may fail at times.
- A method of broadcasting what chairs are being occupied (and by whom) to other members of an intranet. A way of managing inventory, tying chairs to computers would be ideal.
- Mac, Linux and Windows support for the solution :)
Some possible methods that COULD exist out there in the world (but in practice, are not easy to configure and set up):
- Monitor inputs with short timeout period. When timeout is reached, broadcast empty chair message.
- Add a sitting weight test to the chair which transmits the result to the workstation. If the weight is within a 5lb range of the user's known weight, it presumes the correct user is sitting in front of the machine.
- Add motion camera support. Photograph an empty workstation scenario and compare the current image capture to that of the empty, testing the delta with a known threshold.
Update: This is not for employer/employee tracking. It is to allow a user to take part of their workstation user interface with them on their smartphones or portable devices when they leave their desks. Determining where the user is at a given time allows the updates to be sent to the proper device. Consider it an optimization of the signal to noise ratio of notifications. The goal is to avoid sending the notifications to unmanned desktops/the wrong user.
Under Windows there is an API call that returns simple data on keyboard/mouse activity. This is what IM applications use to automatically detect when the user is away or idle. Would that suffice for your needs? There is no doubt an equivalent for other OSs too.
Of course this method can't tell the difference between the user actually being away from the desk and being at the desk but not using the keyboard/mouse (reading documentation perhaps, watching an automated presentation, or discussing matters, ...).
This bit here:
Identifying whether the person sitting in the chair in front of the computer is indeed the user that is logged in. This needs to happen without the user explicitly authenticating/identifying. As such, it will not be used for security or privacy related features as it may fail at times.
Tells me that you're looking for facial recognition and biometric software. This is not likely to be something cheap, or something you're going to find in an off-the-shelf (at least I've never heard of it). Cisco has done this for some of their high-end conference room setups, but beyond that I've not seen it. You'd probably be better off with personnel solution, than a technological one.
How about "requiring" your "employees" to wear RFID bracelets and install readers at each workstation that reports what RFID tag(s) are present at their location once every 10 seconds or so?
//I can think of no ways that this plan could go wrong.
Mandate that company phones should always have bluetooth switched on. Pair phone and PC, detect when phone is no longer in range?
Echoing the above, I can't see any good reason for any of my employers to have ever done something like this.
A more low-tech alternative is a "dead man's switch" as used by train drivers and the like (if the driver's hand isn't holding the lever in place, then the brakes automatically engage). Possibly using weight in the chair, pressure on the mouse, or something similar.