A distributed Bluetooth presence detection system that reports device arrivals and departures via MQTT for home automation.
Monitor is a distributed Bluetooth presence detection system that uses passive scanning and MQTT reporting for home automation. It detects the arrival and departure of Bluetooth devices like phones and beacons, providing confidence scores that smart home platforms can use to trigger automations. The system is designed to run on multiple Raspberry Pi devices for comprehensive coverage throughout a property.
Home automation enthusiasts and developers who want to build presence-based automations using Bluetooth devices, particularly those using MQTT-based systems like Home Assistant.
Monitor offers a privacy-focused, efficient alternative to cloud-based presence detection by running entirely locally and minimizing Bluetooth interference. Its distributed architecture and fine-tunable filters provide reliable occupancy data without relying on proprietary hardware or services.
Distributed advertisement-based BTLE presence detection reported via mqtt
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses passive Bluetooth listening and triggered scans to minimize active inquiries, aligning with its philosophy of reducing interference and protecting device anonymity.
Can be deployed on multiple Raspberry Pi nodes throughout a property, as demonstrated in the Home Assistant example, for comprehensive coverage and redundancy.
Sends JSON-formatted MQTT messages with 0-100% confidence scores, enabling precise automations in systems like Home Assistant based on likelihood of presence.
Allows configuration of manufacturer and flag filters to optimize scanning behavior and reduce false positives, detailed in the Fine Tuning section.
Requires imaging SD cards, configuring network settings, installing specific versions of Mosquitto, and editing multiple configuration files, which is time-consuming and error-prone.
Each Bluetooth device must be manually added to the 'known_static_addresses' file, and there's no automatic discovery for new devices, increasing maintenance overhead.
Performance can degrade in environments with many Bluetooth devices, necessitating fine-tuning of filters that may require technical expertise to optimize.