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.
-
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)SENA Parani UD100 G03 - Dongle Bluetooth Home Assistant, Jeedom...48,00€Domadoo.frSi 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.
-
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.
-
É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'
-
É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
ça ne fonctionne pas chez moi sur mon RPI 4 équipé d’un SSD, il semble toujours vouloir un mot de passe pour exécuter la commande malgré l’id_rsa
Bonjour, et merci pour ce tuto,
Lorsque je mets » turn_bluetooth_on: ‘ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i /config/.ssh/id_rsa [email protected] sudo bluetoothctl power o » dans le configuration.yaml HA le refuse.
Il n’y aucune erreure de syntaxe ?
Bonjour,
Si, effectivement, le n en dernier à « on »… C’est corrigé ! 😉