I recently purchased a Bluetooth dongle for my Home Assistant setup on Arch Linux and set up Bluetooth tracking. I managed to get it to detect my household’s phones and smartwatches, which show up in known_devices.yaml. However, my phones often appear as “not_home” even when they are near the server, and my watches almost always show “not_home.” The log shows no Bluetooth issues, and the signal strength is excellent (~-20 RSSI) throughout the house.
Do I have a bad dongle? Would switching to Bluetooth LE Tracker help? Also, devices don’t need to remain in “discoverable” mode to be tracked, right? My phone shows as “home” once I manually make it discoverable from the Bluetooth menu, but this isn’t an option for the watches since they can only be made discoverable by unpairing or using ADB.
This sounds a lot like what I experience when I use the “ping” device tracker on my iPhones. In order to save energy and increase security, the radios are turned off while the phones are not in use (locked, idle, or dark screen).
It is likely that your devices are in an idle state and the Bluetooth transceiver is not responding due to low power.
When the phone is unlocked and in use, what do you observe?
Your Bluetooth dongle may be malfunctioning, resulting in poor device tracking. Not all dongles operate well with Linux, so make sure yours is compatible and has high reviews.
Switching to a Bluetooth Low Energy (LE) Tracker may be beneficial because it is better suited for low-power devices like smartwatches.
Devices do not have to be in discoverable mode to be tracked, thus if yours only appear when discoverable, there could be a connectivity problem.
Even if the signal strength is adequate, interference or software flaws can still cause problems.
Ensure your dongle’s firmware and drivers are current, and position the dongle to avoid interference. Check your devices’ power-saving settings, as these may be hurting the Bluetooth connection.