How to build the easiest Zigbee chair occupancy sensor

Disclosure: This post contains affiliate links. If you click through and make a purchase, I will earn a commission, at no additional cost to you. Read my full disclosure here.

An illustration of a person sitting at a desk.

Reliably informing Home Assistant whether someone is occupying a room has to be one of the most challenging tasks we face on our home automation adventure. In an attempt to cover all bases, I built a cheap (~US$25) and simple chair occupancy sensor, and in this guide I will show you how you can do the same. Although it is a DIY project, This sensor requires no soldering, 3D-printing, or knowledge of electronics.

An Aqara/Xiaomi water leak sensor (model SJCGQ11LM) on a wooden floor. On the back of the sensor, there are two wires leading to the car seat sensor.
This is it: the chair occupancy sensor I use in the office.

A must for the home office

As remote work becomes the norm, I've discovered that motion sensors, or passive infrared sensors (PIR), are not sufficient when sitting at a desk for hours. These sensors need substantial movement to activate, more than what typing on a keyboard provides. With my DIY chair occupancy sensor, the lights stay on, regardless of how motionless I may be.

What you will need to build a Zigbee chair occupancy sensor

As the title suggests, this project relies on Zigbee, so you'll need one of the Zigbee integrations set up in Home Assistant. I am using Zigbee2MQTT, and ZHA will also work. You'll also need an Aqara/Xiaomi water leak sensor (model SJCGQ11LM). Yes, you read that correctly, a water leak sensor is required. Lastly, to detect a person in a chair, we'll utilize an existing solution: a car seat pressure sensor.

Why I'm using Zigbee for my chair occupancy sensor

A Zigbee sensor offers numerous benefits, primarily its ability to be powered by a single button cell. Its compact size allows for discreet placement under the chair or attachment using double-sided tape. With everything neatly concealed, you can enjoy the chair without worrying about accidentally damaging any cables.

An Aqara/Xiaomi water leak sensor on a wooden floor. The front of the device is shown, where there is an icon of a water drop.
A car seat sensor on a wooden floor.

The reason for choosing the Aqara/Xiaomi water leak sensor is quite simple: like other binary sensors, such as a door/window sensor, the water leak sensor is either on (circuit closed) or off (circuit open). Water leak sensors function by completing a circuit when two exposed terminals are submerged in a conductive liquid, like tap water.

Attaching the car seat pressure sensor

What the Aqara/Xiaomi water leak sensor allows you to do is attach wires to the terminals and use the sensor in whatever way you want to. The terminals on this sensor are two small screws you can loosen, wrap a wire around, and tighten again to make sure the wires don't come loose.

An Aqara/Xiaomi water leak sensor (model SJCGQ11LM) on a wooden floor. On the back of the sensor, there are two wires leading to the car seat sensor.
The car seat pressure sensor's wires can be attached to the two terminals of the Zigbee water leak sensor

The wires we are attacking to it are the two stemming from the car seat pressure sensor. It doesn't matter which wire you attach to which terminal. Simply strip a short section of the sleeving, loosing the screw on the Aqara/Xiaomi water leak sensor, wrap one exposed wire around each screw, and tighten the screws again.

Completing the car seat pressure sensor

Congratulations, you've just created your very own chair occupancy pressure sensor. If your chair has a removable case, you can conveniently place the car seat pressure sensor underneath it. Many popular IKEA office chairs seem to accommodate this.

Ensure that the car seat pressure sensor isn't weighed down too much when the chair is unoccupied, or it may continuously register the seat as occupied.

A screenshot of the Home Assistant entity manager showing a water leak sensor that is being used as a chair occupancy sensor before it is customized.
A screenshot showing how the DIY Zigbee chair occupancy sensor can be used in Home Assistant.

In Home Assistant, this DIY sensor will still appear as a water leak sensor. When using it in automations, simply select the water_leak attribute and use the states on (chair occupied) and off (chair unoccupied). The sensor detects a leak within a few seconds but takes around ten seconds to switch back. This delay should rarely pose an issue.

It's worth noting that the sensor's temperature reading, as seen in the screenshot above, is not useful. I'm unsure if it measures the internal temperature to protect the battery, but in any case, it provides no valuable information. I recommend disabling this entity altogether.

A portrait photo oif Liam Alexander Colman, the author, creator, and owner of Home Assistant Guide wearing a suit.

About Liam Alexander Colman

is an experienced Home Assistant user who has been utilizing the platform for a variety of projects over an extended period. His journey began with a Raspberry Pi, which quickly grew to three Raspberry Pis and eventually a full-fledged server. Liam's current operating system of choice is Unraid, with Home Assistant comfortably running in a Docker container.
With a deep understanding of the intricacies of Home Assistant, Liam has an impressive setup, consisting of various Zigbee devices, and seamless integrations with existing products such as his Android TV box. For those interested in learning more about Liam's experience with Home Assistant, he shares his insights on how he first started using the platform and his subsequent journey.

Comments

  1. Great info man, I always wanted to build something like that and now I will thanks to you.
    One question – can you please post a pic on where exactly did you put the car sear pressure sensor?

    Reply
    • Hey there. Sure, I can do that when I have the time. I have a pretty basic IKEA chair (this one) which allows you to remove the fabric part (which is blue in the image). I can then place the sensor between the fabric and the padding, so it’s literally right under my behind, with nothing pressing down on it when the chair is empty.

      Reply
  2. Regarding the built in temperature sensor – this is similar to other Aqara/Xiaomi sensors. You can set an ‘offset’ to the temperature value in Zigbee2MQTT if you are able to get another reliable sensor close by and see if it tracks it closely. I have this for a motion sensor and it gives a reasonably accurate room temperature with a large offset – although this sensor will probably track your butt temperature!!!

    Reply
    • Yes, I read that. However, I put the chair next to my open window when it was much colder outside and the reading didn’t budge. Either way, I have much more reliable temp sensors in the room.

      Reply
  3. how well is your car seat pressure sensor? since i’m sitting on it all day, now it refuse to bounce back to “unoccupied” state

    Reply

Leave a comment

Share to...