A meeting room shows "occupied" in your dashboard forty minutes after everyone left, because the only signal feeding Home Assistant is a PIR sensor that latched on a swaying window blind. Meanwhile the HVAC keeps conditioning an empty space. If you manage more than a handful of rooms, you already know this pattern: motion is not occupancy, and treating them as the same thing is where most Home Assistant deployments in commercial or campus buildings quietly waste money.
This guide covers what a serious Home Assistant occupancy integration actually looks like: how counting data should enter the system, how to model it as entities, and which automations pay for the effort.
Home Assistant's native occupancy model is binary: a binary_sensor with device class occupancy is either on or off. That works for a hallway light. It fails for anything where the number of people matters — ventilation rates, room booking reconciliation, safety limits, cleaning schedules triggered by actual usage rather than the calendar.
The upgrade path is a numeric occupancy count per zone, sourced from AI-based counting sensors rather than PIR or mmWave presence detectors. Modern counting platforms deliver a contractual minimum of 96% accuracy, and typically 98–99% when lighting, layout and visitor behaviour allow it. That precision matters once you drive automations from thresholds: a sensor that miscounts by two people in a twelve-person room will trigger the wrong ventilation stage repeatedly, and facility teams stop trusting the system fast.
Staff exclusion is worth flagging early in scoping conversations. If cleaners, security rounds and facilities staff are counted as occupants, your after-hours automations will fight you every night. Counting platforms that distinguish staff from visitors — Vemco's AI sensors support this — remove an entire category of false triggers before you write a single automation.
There are three realistic transport patterns, in descending order of preference for building-scale work:
A practitioner note that rarely makes it into documentation: set an expire_after or availability topic on every MQTT occupancy sensor. When an edge device drops offline, you want the entity to go unavailable, not silently freeze at its last count. A room stuck at "4 occupants" over a long weekend will run ventilation for three days, and nobody notices until the energy report lands. Pair this with an automation that alerts on any occupancy entity unavailable for more than fifteen minutes.
Model each zone with two entities: a numeric sensor for the count and a template binary_sensor derived from it (count > 0, with a short off-delay to absorb doorway flicker). Automations should reference the binary sensor for on/off logic and the numeric sensor for staged logic. This separation means you can later change the source — swap a sensor vendor, move from REST to MQTT — without rewriting automations.
Use Home Assistant's areas to group entities, but don't rely on area membership for automation targeting in large buildings; explicit entity lists or labels are easier to audit when an integrator hands the system over to a facilities team. Naming discipline matters more than any add-on: sensor.occ_f2_r204_count beats sensor.room_sensor_3 every time someone new opens the YAML.
Be honest with stakeholders about roles. Home Assistant excels as an automation and visualisation layer: fast iteration, no per-point licensing, an enormous integration catalogue. It is not a certified BMS, and it should not be the system of record for occupancy analytics or compliance reporting. The pattern that works in practice is a professional counting platform as the data source and long-term analytics store, the BMS handling life-safety and core plant control, and Home Assistant orchestrating the flexible layer in between — the automations that would take six months and a change order to implement in the BMS directly.
For integrators, this division also answers the maintenance question. When the counting platform owns accuracy and the BMS owns safety, Home Assistant changes can be made quickly without triggering revalidation of either system.
If you're scoping a Home Assistant occupancy integration and need counting data accurate enough to automate against — with staff exclusion, predefined-limit alerts and direct connections into HVAC and BMS — talk to Vemco about your building and your stack at vemcogroup.com/contact-us. Bring your zone list and your automation wishlist; that conversation is more useful than any datasheet.