BlueZ fills Device1.RSSI only while scanning; sensors connect to us, so
the field stayed empty. MGMT_OP_GET_CONN_INFO (like btmgmt conn-info)
returns the link RSSI; polled per connected sensor and after each write.
Needs CAP_NET_ADMIN (AmbientCapabilities in the collector unit).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- every BlueZ call runs off the asyncio thread with a timeout; if bluetoothd
stays unresponsive for 30 s the collector restarts bluetooth.service and
exits for a clean re-registration
- Type=notify + WatchdogSec for buttontask-collector, never give up restarting
- bluetooth.service drop-in: Restart=always (BlueZ 5.55 crashes on assert/SEGV),
installed by device-install.sh and OTA (bt-update)
- bt-service: bluez-restart action for the collector
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>