Home Assistant : éviter la déconnexion d’un dongle Bluetooth

Votre dongle Bluetooth pour Home Assistant se déconnecte régulièrement? Nous avons la solution : POWER ON AUTOMATIQUE !

Si vous utilisez le BLE, il se peut que votre dongle USB Bluetooth connecté sur Raspberry (Pi4) s’éteigne tout seul aléatoirement. C’est normal, il s’agit d’un problème de noyau, ou kernel, du Raspbery Pi avec Home Assistant OS. Heureusement, il est possible de le contourner en automatisant un allumage régulier du dongle. Voici comment faire.

  1. Les prérequis :

    – Un dongle USB Bluetooth comme le Sena Parani UD100
    Home Assistant OS (tutoriel d’installation),
    – « SSH & Web Terminal » installé, avec root comme username (obligatoire)

    Si vous avez déjà un username renseigné dans les réglages de SSH & Web Terminal, changez-le par « root ».

    Dans le Terminal, il est possible de voir l’état du Contrôleur Bluetooth.

    Commandes : « bluetoothctl » puis « show »

    « Powered » doit être sur « yes »

    Si ce n’est pas le cas, il est possible de l’allumer manuellement avec la commande : « power on »

    Hélas, cette manipulation revient un peu trop souvent. Nous allons donc fixer ce problème définitivement.

  2. Etape 1 : Préparer le login SSH sans password

    Se connecter en SSH depuis un ordinateur Windows ou Mac, si vous avez modifié votre username, il faudra supprimer le fichier « known_host », le terminal vous donnera le chemin de votre ordinateur pour le trouver, puis taper cette commande en remplaçant ce qui suit « @ » par votre adresse IP de Home Assistant.

    ssh root@[HASSIO IP]

    Créer le dossier avec cette commande :

    mkdir /config/.ssh

    Créer la clé en tapant :

    ssh-keygen

    Et la faire stocker ici avec cette commande :

    /config/.ssh/id_rsa

    Ne pas mettre de mot de passe ! Valider avec Entrer plusieurs fois sans en mettre.

  3. Étape 2 : créer les commandes Shell

    Dans Home Assistant maintenant, dans le fichier « configuration.yaml », rajouter les lignes suivantes :

    shell_command:
    turn_bluetooth_off: 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i /config/.ssh/id_rsa [email protected] sudo bluetoothctl power off'
    
    turn_bluetooth_on: 'ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i /config/.ssh/id_rsa [email protected] sudo bluetoothctl power on'
  4. Étape 3 : créer l’automatisation

    Cette automatisation va servir à faire un power off puis un power on du dongle Bluetooth, toutes les 5 minutes (durée à adapter selon les besoins).
    Nous avons également ajouté « au démarrage de Home Assistant » en déclencheur.

    alias: Restart Bluetooth
    
    description: ''
    
    trigger:
    
    - platform: time_pattern
    
    minutes: /5
    
    condition: []
    
    action:
    
    - service: shell_command.turn_bluetooth_off
    
    - service: shell_command.turn_bluetooth_on
    
    mode: single

 

Faîtes un restart de Home Assistant pour la prise en compte de ces changements, et votre dongle ne vous posera plus aucun soucis de déconnexion !
Nous tenons à remercier Vincent Ghesquiere, membre du groupe Facebook Home Assistant – Entraide Francophone, qui a été d’une efficacité redoutable pour compiler et assembler les solutions. Merci !

 

Passionné de technologie, j'ai découvert l'univers de la Smart Home avec Xiaomi, puis Alexa et Les Alexiens m'ont mené à me passionner pour Home Assistant que je maîtrise chaque jour mieux !