The INFO-level logging guard in _status_changed() called device.ping() before logging, purely to show accurate online status. But ping() has side effects — it sets device.online based on the result. When a ConnectionStateChangedEvent correctly marked a device online, the subsequent _status_changed() callback would re-ping. If the device wasn't ready yet (e.g. Centurion headset still booting), the ping timed out and set online back to False, requiring 2-3 power cycles to sync state. Remove the unnecessary ping — the log message already reads device.online which reflects the state set by the event handler. |
||
|---|---|---|
| .. | ||
| hid_parser | ||
| hidapi | ||
| keysyms | ||
| logitech_receiver | ||
| solaar | ||