es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el método sock.connect está generando un BluetoothError con el mensaje [Errno 112] El anfitrión está inactivo. Este error puede ocurrir debido a varias razones, como:

    • El dispositivo no está en modo detectable.
    • El dispositivo está fuera de rango o apagado.
    • El dispositivo Bluetooth no está utilizando el protocolo RFCOMM.
    • El dispositivo Bluetooth no está emparejado con el anfitrión.

    Para solucionar el problema, puedes intentar lo siguiente:

    • Verificar que el dispositivo esté en modo detectable y dentro del rango.
    • Confirmar que el dispositivo Bluetooth esté utilizando el protocolo RFCOMM y que el número de canal sea correcto (en este caso, 1).
    • Verificar nuevamente que el dispositivo esté emparejado con el anfitrión y que el anfitrión tenga permisos para conectarse al dispositivo.
    • Comprobar si hay otros procesos utilizando la interfaz Bluetooth, ya que esto puede generar conflictos.

    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.

Comments are closed.