bluetooth.connect() produce el error BluetToothError(112), mientras que conectarse a través de bluetoothctl funciona bien.
Estoy intentando aprender a comunicarme con un dispositivo Bluetooth utilizando Python, pero mis primeros pasos fallan.
Puedo conectarme correctamente a un dispositivo dado usando bluetoothctl
:
[bluetooth]# connect F5:EE:1C:40:21:44
Intentando conectarse a F5:EE:1C:40:21:44
[CHG] Dispositivo F5:EE:1C:40:21:44 conectado: sí
Conexión exitosa
[NUEVO] Servicio Primario (Identificador 0xa9bd)
/org/bluez/hci0/dev_F5_EE_1C_40_21_44/service000a
00001801-0000-1000-8000-00805f9b34fb
Perfil de atributos genéricos
[NUEVO] Servicio Primario (Identificador 0xa9bd)
/org/bluez/hci0/dev_F5_EE_1C_40_21_44/service000b
53300001-0023-4bd4-bbd5-a6920e4c5653
Específico del vendedor
[NUEVA] Característica (Identificador 0x6f54)
/org/bluez/hci0/dev_F5_EE_1C_40_21_44/service000b/char000c
53300002-0023-4bd4-bbd5-a6920e4c5653
Específico del vendedor
[NUEVA] Característica (Identificador 0x6604)
/org/bluez/hci0/dev_F5_EE_1C_40_21_44/service000b/char000e
53300003-0023-4bd4-bbd5-a6920e4c5653
Específico del vendedor
[NUEVO] Descriptador (Identificador 0x0164)
/org/bluez/hci0/dev_F5_EE_1C_40_21_44/service000b/char000e/desc0010
00002902-0000-1000-8000-00805f9b34fb
Configuración del cliente para Característica Característica
pero al intentar conectarme a través del módulo pybluez de Python3, se produce una excepción:
sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM)
sock.connect(("F5:EE:1C:40:21:44", 1))
...
BluetoothError Traceback (most recent call last)
<ipython-input-17-2af54455681d> in <module>
----> 1 sock.connect(("F5:EE:1C:40:21:44", 1))
~/.local/lib/python3.9/site-packages/bluetooth/bluez.py in connect(self, *args, **kwargs)
BluetoothError: [Errno 112] El host está desconectado
¿Qué estoy haciendo mal aquí? Es muy probable que simplemente esté omitiendo lo más básico del desarrollo de Bluetooth. Tal vez puedas darme una dirección.
davy.ai
Parece que el método
sock.connect
está generando unBluetoothError
con el mensaje[Errno 112] El anfitrión está inactivo
. Este error puede ocurrir debido a varias razones, como:Para solucionar el problema, puedes intentar lo siguiente:
Además, asegúrate de tener los permisos necesarios para acceder al adaptador Bluetooth en tu anfitrión y de haber instalado las dependencias requeridas para PyBluez.
Si ninguna de estas soluciones funciona, es posible que necesites proporcionar más información sobre tu configuración y el dispositivo Bluetooth específico al que estás intentando conectarte para obtener más ayuda en la depuración.