Connecter enceinte bluetooth Sony HT-CT780 - TTS, Son, Parler, etc

Oui, de toute façon, en domotique, il faut un hub 10 USB et une clé par protocole. Au final, ça prend une place énorme et plein de filasse pour du sans fil :smiley:

1 « J'aime »

:sweat_smile:

Yop,

J’utilise la sortie Jack 3.5 native (aussi bien sur Pi3B+ que maintenant sur le Pi4B) et le son est plus que correct, rien à redire.
PlayTTS, pas de configuration particulière à faire.

1 « J'aime »

Merci @Fabrice, ça me conforté dans l’idée… :wink:

Et en plus… Playtts permet de créer des lecteurs déportés, comme blea et ses antennes.

La suite avec PlayTTS

aplay, c’est bien mais PlayTTS s’appuie sur mplayer
J’ai galéré (comme à chaque fois) pour que mplayer utilise la sortie BT

Il faut créer un fichier de conf /etc/asound.conf

sudo nano /etc/asound.conf

Et on copie dedans

pcm.bt_speaker {
        type plug
        slave.pcm {
                type bluealsa
                device "12:34:56:78:90:12"
                profile "a2dp"
        }
       hint {
            show on
            description "Mon enceinte BT"
        }
}

ctl.bt_speaker {
        type bluealsa
}

Vous pouvez bien sûr changer le non « bt_speaker », il faut juste que ce soit cohérent partout.

Vérification avec la commande aplay -L
La configuration créée « bt_speaker » doit apparaitre dans la liste

bt_speaker
    Mon enceinte BT

Lecture du fichier audio avec MPlayer en sélectionnant la bonne sortie « bt_speaker »

mplayer -ao alsa:device=bt_speaker mon_fichier_audio.wav

Maintenant, dans la configuration du plugin PlayTTS, on rajoute la bonne option pour mplayer
image

Et enfin :champagne:
image

Méthode avec PulseAudio au lieu de BlueALSA

Pour info, j’ai investigué aussi la méthode en installant le module BlueTooth de Pulse à la place de BlueALSA.

sudo apt install pulseaudio-module-bluetooth

Bien sûr BlueALSA est supprimé.
Redémarrage du BlueTooth et de Pulse

sudo systemctl restart bluetooth.service
sudo killall pulseaudio
pulseaudio --start

On connecte l’enceinte (voir post précédent)

Si tout va bien, la commande pactl list sinks short devrait retourner une ligne avec bluez_sink.xx_xx_xx_xx_xx_xx.a2dp_sink

0	alsa_output.platform-bcm2835_audio.analog-stereo	module-alsa-card.c	s16le 2ch 44100Hz	SUSPENDED
1	bluez_sink.12_34_56_78_90_12.a2dp_sink	module-bluez5-device.c	s16le 2ch 48000Hz	SUSPENDED

La commande version Pulse devient

mplayer -ao pulse::bluez_sink.12_34_56_78_90_12.a2dp_sink /chemin/de/mon_fichier_audio.mp3

Dans PlayTTS, il suffit de changer l’option pour mplayer avec
-ao pulse::bluez_sink.12_34_56_78_90_12.a2dp_sink

Echec #5 : mplayer fonctionne en SSH, le script Jeedom fonctionne en SSH
Mais ni le plugin PlayTTS ni le script via le plugin Script ne fonctionnent dans Jeedom
Solution : pas encore trouvé

En effet, dans le log http.error, j’ai la même erreur que @betux ici Problème de droit avec Pulse audio - #8 par betux

AO: [pulse] Init failed: Connection refused
Failed to initialize audio driver 'pulse'
Could not open/initialize audio device -> no sound.

J’ai fouillé dans l’ancien forum [Plugin Tiers][Sujet Principal] PlayTTS : Jeedom parle et lit des fichiers - Page 18 - Forum Communauté Jeedom

Il y a un problème de droits quelque part… En vain.

Avantage de la solution Pulse
On pourrait jouer plusieurs fichiers audio en simultané, c’est le flux global qui est envoyé vers la sortie BlueTooth (comme pour le Jack)

1 « J'aime »

Bonjour,

merci pour les informations.
Je confirme, il est possible de connecter une enceinte Bluetooth avec un peu de travail. J’ai une clé Bluetooth 4.0 (j’avais commandé sur domadoo réf. JEEDOM_USBBT) : la portée est bonne (autre pièce) vers mes enceintes Bluetooth (2 systèmes différents). Je me sers également de la clé Bluetooth pour piloter 2 Jardibric BL-PNR dans le jardin (avec BLEA). J’ai donc abandonné pulseaudio et suis parti avec Bluealsa.

Bluealsa non disponible pour une architecture 64 bits (j’ai une jeedom Smart avec Debian 9 stretch) , j’ai donc compilé en m’inspirant de ce post :

puis suivi la procédure en bas pour installer.

J’ai installé alsa-utils, aplay et mpg123 puis j’ai ajouté une interface sur le dashboard Jeedom pour connecter/déconnecter un système d’enceinte, choisir le système d’enceinte + musique, jouer, stop… (à base de script Bash et virtuel pour créer des listes déroulantes).
J’ai également ajouté PlayTTS : le son part sur l’enceinte par défaut.

J’ai perdu un peu de temps en voulant essayer avec bluealsa-aplay mais ça ne fonctionne pas comme expliqué dans le post armbian. Je suis donc reparti sur aplay et mpg123.

J’ai passé un peu de temps sur un problème de droits :
Bluealsa est prévu pour être utilisé par défaut avec root. Il faut modifier le fichier /etc/dbus-1/system.d/bluetooth.conf pour autoriser un autre utilisateur. Sur ma box Jeedom, l’utilisateur www-data (voir plugin jeedom Script) ne pouvait pas exécuter les scripts bash que j’avais testés en root, j’ai donc ajouté les balises allow own=« org.bluealsa » et allow send_destination=« org.bluealsa » pour le groupe bluetooth. J’ai ajouté www-data au groupe bluetooth.

Ça fonctionne et en bonus, en parallèle du plugin BLEA :grinning: (alors que pulseaudio et BLEA :frowning_face:)

Pour moi, les principaux intérêts d’envoyer du son de Jeedom vers enceinte par Bluetooth:

  • utilisation du matériel disponible sans acheter nouveau matériel (enceinte Bluetooth, clé Bluetooth Jeedom)
  • synchroniser son et lumière pour créer des effets (scénarios)
  • jeedom peut parler (TTS) et si l’enceinte est portable, on peut déplacer où on veut sans fil.
  • pas besoin d’un laptop ou autre pour envoyer du son sur les enceintes en Bluetooth (Jeedom connectée 24h/24)
  • je ne voulais pas passer par le wifi, ethernet, dlna…
2 « J'aime »

Merci @marcoo77 pour ton partage :wink:

Je te rejoins sur les avantages qui m’avaient poussé à tester.
C’est quand même pas évident au 1er abord…

1 « J'aime »

Quel est la fréquence d’échange d’info ?
Avec des Nuts en BLEA, c’est +/- 30 secondes. J’ai peur que ça ne marche pas avec une enceinte qui doit streamer…

Bonjour,

je ne connais pas la fréquence exacte de rafraichissement pour BLEA. Je vois un clignotement régulier tous les x secondes (x < 30 secondes).

Cela fonctionne chez moi, je ne perçois pas de différence entre BLEA + stream musique ou stream musique (sans BLEA, plugin arrêté).
En revanche, j’ai essayé le stream de musique x2 en parallèle (1 stream vers une adresse mac Bluetooth et 1 autre stream vers une autre adresse mac Bluetooth) : coupures, inaudible.

1 « J'aime »

Je suis passé en Jeedom V4 / Debian Buster 10. (J’étais en Stretch Debian 9)
Et plus rien ne fonctionne, ni blue-alsa, ni pulseaudio.
Erreurs variées lorsque je tente un connect après pair et trust par bluetoothctl.
(J’ai lancé bluetoothd et pulseaudio ou blue-alsa en debug + btmon).

:angry:

Je confirme : pas simple.

https://www.mail-archive.com/debian-user@lists.debian.org/msg748492.html
J’ai aussi essayé de changer de port usb (on ne sait jamais si c’est un problème hard) mais ça ne fonctionne pas. Je pense que c’est côté soft.

Mince alors.

En fait, c’est le streaming sur enceinte Bluetooth depuis Linux qui est le vrai problème :wink:
Avec Jeedom c’est un effet collatéral.

Dommage qu’il n’existe pas de solution plus facile a mettre en œuvre sous Linux pour streamer en Bluetooth…

Oui, il faut prévoir une journée pour se lancer là dedans ! :sweat_smile:

Il faudrait prendre des dongles USB BlueTooth Audio Only dit « sans driver » qui sont vu par le système comme des cartes son. Il suffit d’envoyer tous les flux audio vers la carte son et le dongle USB fait tout le boulot. L’inconvénient est qu’on ne peut plus appairer, connecter ou déconnecter la liaison BlueTooth depuis Linux, il faut de faire à la main avec le bouton physique d’appairage.

1 « J'aime »

Bonjour.

Picoreplayer le fait. Appairage d’enceinte bluetooth presque aussi simple que sur pc ou smartphone.

Picoreplayer, en un clic, permet l’installation de lms.

Oui, c’est Linux et Bluetooth pas jeedom. J’ai trouvé des articles / discussions dans ce sens. par exemple : Bluez - greatest linux mystery

En effet, j’ai passé pas mal d’heures en tout depuis mon passage à Buster effectivement. Je suis allé dans les sources de bluez + debug. J’ai tenté :

  • la dernière version de bluetooth Debian stretch : 5.43 (en modifiant le /etc/apt/sources.list)
  • la version 5.60 de bluez à partir de l’archive tar (compilation).
  • dernière version taguée stable sur github de blue-alsa
  • des modifications dans les fichiers de conf. /etc/bluetooth/main.conf et /etc/dbus-1/system.d/bluetooth.conf
  • MAJ du kernel apt install --reinstall linux-image$(uname -r)
  • désactivation securité dans /etc/bluetooth/network.conf
  • plusieurs fois, remove, pair, trust, connect
  • nettoyage du dossier /var/lib/bluetooth/
  • avec pulseaudio + autres lib pulseaudio
  • docker avec un debian stretch (bluetooth 5.43)
  • recompilation des drivers bluetooth (btusb) (à partir des sources kernel.org) + chargement
  • autre clé usb bluetooth (ancienne)

Cette conversation est absolument passionnante ! Voila des mois que j’essaie en vain de faire parler la Smart Jeedom, et que j’écume les forums sans trouver de solution… Je n’avais pas vu la votre car son titre ne parle pas de « TTS », ou de « parler » ou de « son ».

Pour exactement la même raison j’ai voulu remplacer mon ampli Home Cinema au lieu de m’encombrer d’un équipement supplémentaire :
Je n’avais pas d’enceinte BT mais de grandes enceintes filaires sur un ampli HomeCinema trop vieux pour le BT, Ethernet, HDMI, etc…
J’ai donc préféré le remplacer par un nouvel ampli pilotable en Ethernet. L’idée est de faire parler mes enceintes filaires par l’ampli.
J’ai pris l’ampli Yamaha RX-V6 dont le plugin de Luc Guinchard est très bien fait (après avoir essayé un Denon 1600H que je n’ai pas réussi à piloter).
Comme je ne suis pas arrivé à mettre mon ampli en « équipement déporté » par ethernet dans PlayTTS car il faut son SSH, j’ai voulu essayer par Pulseaudio et pour cela j’ai acheté la clé CSR V4,0 (JEEDOM_USBBT).
Pour l’instant je n’ai pas réussi à faire détecter mon ampli par BLEA, peut être que je devrais suivre les conseils suivants ? :

Faisait-tu allusion à cette clé ci-dessous :

C’est fait :wink:

. Blea n’est pas fait pour cela.
. Playtts permet d’installer des lecteurs sur des machines fonctionnement sur Debian, il n’est pas possible d’installer des applications sur un amplificateur.

Le plus simple étant de raccorder une enceinte filaire sur la box Jeedom, soit directement sur le Jack soit via une carte son USB.
Ou, en raccordant un amplificateur sur la box Jeedom, via une sortie (type dac pas exemple) elle aussi, issue d’un dongle USB.

Merci Fabrice, effectivement tu l’avais écrit dans plusieurs discussions : Playtts nécessite un lecteur déporté.
Mes enceintes sont raccordées à mon ampli en filaire, c’est donc compliqué de les raccorder à une carte son USB sur ma Box Jeedom.
Il me reste l’autre option, raccorder l’ampli à la Box via un Dongle.
Vu que je suis sur box Smart Jeedom, tu as un Dongle USB à me conseiller pour avoir cette sortie DAC ?
J’espère que cette sortie sera vue par Playtts comme étant « l’équipement local » du plugin.

Merci pour avoir remplacé l’intituler du fil, ça permettra peut être à d’autres de trouver l’info :+1: