room-assistant

website·Indexed 32 days ago

https://www.room-assistant.io/

A room automation system capable of tracking room occupancy and location. It features a distributed cluster architecture and supports various integrations including Bluetooth Low Energy, Bluetooth Classic, MQTT, Home Assistant Core, GPIO, and thermal sensors like Grid-EYE and Omron D6T. It can be deployed via NodeJS, Docker, or on Raspberry Pi hardware.

Tokens
14.6K
Snippets
67
Records
110
Agent score
66%

What's inside room-assistant

  1. Overview of the room-assistant Shell integration

    The Shell integration (shell) allows you to execute shell commands on a schedule and use the output as the state of a sensor. This is primarily used for extracting machine metrics or integrating sensors without native support. Commands are executed using the same user permissions as the room-assistant process.
  2. Overview of Omron D6T integration

    The Omron D6T integration uses thermopile sensors to measure a matrix of temperatures to detect human presence, even when stationary, by analyzing localized temperature peaks. It provides a sensor that counts people in a room and includes their relative coordinates in the sensor attributes. Note that due to low resolution, multiple people are only recognized if they are at different ends of the sensor's field of view. This integration currently only supports the D6T-44L-06 sensor.
  3. Overview of room-assistant GPIO integration

    The GPIO integration allows room-assistant to interface with devices directly connected to GPIO pins (e.g., PIR motion sensors). It utilizes the Linux GPIO Sysfs Interface and is therefore only compatible with Linux-based systems.
  4. Overview of Grid-EYE integration

    The Grid-EYE integration uses a Panasonic thermopile sensor to measure an 8x8 matrix of temperatures. It detects human presence (including stationary people) by analyzing localized temperature peaks. The integration provides a sensor that reports the count of people in the room and their relative coordinates as attributes.
  5. Overview of room-assistant occupancy tracking

    room-assistant is a software suite designed for room automation. It tracks room occupancy and user location with high accuracy by integrating various sensor types. Unlike simple motion sensors, it can detect stationary people, allowing for automations like maintaining lights and heating based on actual presence. It integrates with home automation suites to enable personalized settings (e.g., thermostat preferences or TV channels) based on who is in a specific room.
  6. Overview of Bluetooth Classic integration

    The Bluetooth Classic integration (bluetoothClassic) detects the location of Bluetooth devices by sending connection requests to configured device addresses and measuring the signal strength (RSSI) of the response. Devices do not need to be paired with the room-assistant machines. Note that enabling this may slightly impact the battery life of the tracked Bluetooth devices.
  7. Overview of Bluetooth Classic integration

    The Bluetooth Classic integration (bluetoothClassic) detects the location of Bluetooth devices by sending connection requests to configured device addresses and measuring the signal strength (RSSI) of the response. Devices do not need to be paired with the room-assistant machines. It is specifically noted to work well with Apple Watches, though it may slightly impact the battery life of the tracked devices.
  8. Access and explore the room-assistant HTTP API

    room-assistant exposes an HTTP API for debugging and service integration, accessible by default on port 6415. The API is documented via an OpenAPI schema available at the /api-json endpoint, and a visual interactive interface is available at /api for making direct API calls from a browser.
  9. Set up room-assistant integration with Home Assistant Core

    The homeAssistant integration shares data with Home Assistant Core via MQTT. To function, an MQTT broker must be accessible to both Home Assistant Core and all room-assistant instances. For users on Home Assistant OS, the official Mosquitto add-on is recommended. It is strongly recommended to enable the MQTT auto-discovery feature in Home Assistant Core so that entities are created automatically.
  10. Select a Presence Detection integration for room-assistant

    Depending on the required refresh rate and data type, choose from the following presence detection integrations:

    • Bluetooth Low Energy: High speed (up to 100ms), provides location and distance, supports distributed setup.
    • Bluetooth Classic: Moderate speed (6s), provides location, supports distributed setup.
    • Omron D6T: Fast speed (250ms), provides locations within Field of View (FOV), not distributed.
    • Grid-EYE: Slower speed (1s), provides locations within Field of View (FOV), not distributed.
  11. Decrypt encrypted Xiaomi sensors (LYWSD03MMC)

    Some sensors, like the LYWSD03MMC, encrypt their BLE advertisements. To read this data, you must provide a bindKey in the sensor configuration.

    To retrieve the bind key using a mobile phone:

    1. Enable Bluetooth on your phone and keep the sensor close.
    2. Navigate to https://atc1441.github.io/TelinkFlasher.html in your mobile browser.
    3. Click [Connect] and wait for the "Connected" status in the log.
    4. Click [Do Activation] to reveal the "Mi Bind Key".
  12. Install Bluetooth Classic requirements for NodeJS on Linux

    The Bluetooth Classic integration requires Linux and the hcitool utility. If not pre-installed, install the necessary Bluetooth packages. To run room-assistant without root privileges, you must grant specific capabilities to hcitool and hciconfig using setcap.
    # Install dependencies
    sudo apt-get install bluetooth bluez
    
    # Grant permissions for non-root execution
    sudo setcap cap_net_raw+eip $(eval readlink -f `which hcitool`)
    sudo setcap cap_net_admin+eip $(eval readlink -f `which hciconfig`)