room-assistant is an MIT-licensed, TypeScript-based tool that brings presence detection and room-level occupancy tracking to home automation, aimed at self-hosters and smart-home tinkerers who want automations keyed to which room a person is actually in.
What it is
room-assistant is a self-hosted service that tracks room occupancy and the location of people around a house, and exposes any additional sensors attached to the same node. It runs as a Node.js/TypeScript process, is distributed for Docker deployment, and feeds the data it collects into a home automation suite rather than acting as one itself. The project lives in the home-automation ecosystem and is built around Home Assistant and hassio as its primary integration target.
The concrete problem it solves is the failure mode of motion sensors. A motion sensor sees movement, so it goes dark when someone is sitting still on a couch, and it cannot tell which of two adjacent rooms a person occupies. room-assistant replaces that coarse, movement-triggered signal with continuous presence and location data gathered per room, which is what makes automations such as heating or lighting only the occupied room possible in the first place.
Key capabilities
- Tracks room occupancy and location around the house, using Bluetooth and thermopile sensors among the supported sensing approaches.
- Reports presence accurately enough to cover stationary situations, which the README calls out as the case where a motion sensor would fail and leave lights off.
- Accepts additional sensors on the same node, so occupancy and attached sensor data come from one service.
- Lets operators pick and choose only the components they need, rather than deploying the full stack.
- Integrates collected data with a home automation suite, with Home Assistant and hassio named in the project topics.
- Ships as a Docker-deployable service built on Node.js and TypeScript.
- Distributed under the MIT licence, with source on GitHub at 1,348 stars and 125 forks.
Who uses it and how
- Households that want lighting and heating switched on only in rooms where people are present.
- Residents who spend long periods seated or still, where a motion sensor would report an empty room and turn the lights off.
- Users who want per-person preferences applied automatically, such as personal thermostat settings or a preferred TV channel, based on who is in the room.
- Home Assistant and hassio users who need room-level occupancy as an input to their existing automations.
- Self-hosters comfortable running a Docker container and placing sensing nodes in the rooms they want covered.
Getting started
Installation and configuration are documented at room-assistant.io, with the installation guide at https://www.room-assistant.io/guide/installation.html and configuration at https://www.room-assistant.io/guide/configuration.html. Docker appears among the project topics, so container deployment is the expected path.
How it compares
room-assistant is a companion to Home Assistant rather than a substitute for it: Home Assistant supplies the automation engine and rules, while room-assistant supplies the room-level presence data those rules consume. The facts provided name no direct equivalent product in this registry, so it stands alone here as a room-level presence service that feeds a larger suite.
When to use it — and when not to
Pick it if you already run a home automation suite and need occupancy data finer than a motion sensor can give, and you are willing to operate a Docker service plus the Bluetooth or thermopile sensing hardware each room requires. Do not pick it if you want a single hub to cover the whole house, since room-level accuracy depends on hardware placed in the rooms themselves. Note also that the repository README is thin and defers installation and configuration detail to the external documentation site, and the project currently carries 76 open issues.