Bonjour,
Depuis le passage de mes HomePod en OS 27, le plugin HomepTalk ne produisait plus aucun son, alors qu’un HomePod resté en 26.6 fonctionnait toujours.
Après plusieurs tests, le problème semble venir de cliraop / l’ancien transport RAOP utilisé par HomepTalk.
Le TTS généré par HomepTalk est toujours correct. La solution qui fonctionne chez moi consiste à conserver HomepTalk pour générer le TTS, mais à envoyer le son avec pyatv en AirPlay 2.
1. Installer pyatv
Sur mon Jeedom Debian 12 / x86_64 :
apt update
apt install -y python3-venv ffmpeg
python3 -m venv /opt/pyatv-homeptalk
/opt/pyatv-homeptalk/bin/pip install --upgrade pip
/opt/pyatv-homeptalk/bin/pip install pyatv
On peut vérifier la détection des HomePod avec :
/opt/pyatv-homeptalk/bin/atvremote scan
2. Créer un wrapper AirPlay 2
cat > /usr/local/bin/homeptalk-airplay2 <<'EOF'
#!/bin/bash
PYATV="/opt/pyatv-homeptalk/bin/atvremote"
FFMPEG="/usr/bin/ffmpeg"
VOLUME=""
IP=""
FILE=""
while [ $# -gt 0 ]; do
case "$1" in
-v)
VOLUME="$2"
shift 2
;;
-p|-w|-d|-nf|-ntp)
shift 2
;;
-*)
shift
;;
*)
if [ -z "$IP" ]; then
IP="$1"
elif [ -z "$FILE" ]; then
FILE="$1"
fi
shift
;;
esac
done
[ -z "$IP" ] || [ -z "$FILE" ] && exit 1
TMPFILE=$(mktemp /tmp/homeptalk-airplay2-XXXXXX.wav)
trap 'rm -f "$TMPFILE"' EXIT
"$FFMPEG" -loglevel error -y \
-f s16le -ar 44100 -ac 2 \
-i "$FILE" "$TMPFILE" || exit 2
CMD=("$PYATV" -s "$IP")
[ -n "$VOLUME" ] && CMD+=("set_volume=$VOLUME")
CMD+=("stream_file=$TMPFILE")
"${CMD[@]}"
EOF
chmod 755 /usr/local/bin/homeptalk-airplay2
3. Remplacer cliraop par le wrapper
Faire impérativement une sauvegarde avant :
cd /var/www/html/plugins/homepTalk/resources/libraop/bin
cp -a cliraop-linux-x86_64 cliraop-linux-x86_64.original
rm -f cliraop-linux-x86_64
ln -s /usr/local/bin/homeptalk-airplay2 cliraop-linux-x86_64
HomepTalk continue alors à fonctionner normalement côté Jeedom, mais le chemin audio devient :
HomepTalk
→ TTS PCM
→ wrapper
→ FFmpeg PCM/WAV
→ pyatv
→ AirPlay 2
→ HomePod
Chez moi, cela permet de nouveau de faire parler les HomePod sous OS 27, sans modifier les scénarios Jeedom.
Retour arrière
En cas de problème :
cd /var/www/html/plugins/homepTalk/resources/libraop/bin
rm -f cliraop-linux-x86_64
cp -a cliraop-linux-x86_64.original cliraop-linux-x86_64
Attention : les groupes HomepTalk utilisent des fonctions spécifiques de cliraop (-ntp, -nf) qui ne sont pas réellement reproduites par ce wrapper. Les HomePod individuels fonctionnent chez moi, mais les groupes/synchronisations restent à tester.
Une mise à jour de HomepTalk peut également remettre le binaire cliraop d’origine ; il faudra alors éventuellement recréer le lien symbolique.


