Dans ce billet, je vais expliquer la mise en place d'un système permettant la diffusion de fichier audio vers différents périphériques connectés.
Je prendrai comme contexte les éléments suivants : je suis dans un lieu possédant 3 pièces.
Dans les pièces 1 et 2 y est disposé un Raspberry pi (3 ou 4) raccordé a des enceintes.
Dans la pièce 3 se trouve le serveur permettant de diffuser les fichiers audio vers les Raspberry pi des autres pièces.
Les Raspberry pi sont sous la distribution raspbian lite et le serveur principal est sous ubuntu 20.04 (LTS).
Préparation périphérique Mopidy
Afin de pouvoir lire de la musique depuis un Raspberry pi, je vais installer l'application Mopidy.
Mopidy est un lecteur de fichier audio avec plusieurs plugin intéressant tel qu'un plugin spotify, soundcloud, TuneIn et avec plusieurs thèmes ect...
Via son plugin mopidy-mdp, je vais pouvoir contrôler la lecture depuis d'autres applications. Home Assistant dans notre cas.
Je me connecte donc à un des deux Raspberry pi en gardant en tête que je devrai refaire la même oopération sur l'autre.
Installation Mopidy
Ajout de l'archive GPG
sudo mkdir -p /usr/local/share/keyrings
sudo wget -q -O /usr/local/share/keyrings/mopidy-archive-keyring.gpg \
https://apt.mopidy.com/mopidy.gpg
Ajout de la nouvelle source de paquet
sudo wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/buster.list
Installation de Mopidy
sudo apt update
sudo apt install mopidy
Installation des extensions
Parmis les extensions, seulement 2 sont intéressantes pour le projet : mopidy-mpd et mopidy-iris
Modipy-MPD permettra de contrôler la lecture depuis Home Assistant et Mopidy Iris est une interface graphique pour simplifier son utilisation direct
La liste des extensions disponibles sont accessible au lien suivant : liste des extensions
Mopidy-MDP
pour installer l'extension:
sudo python3 -m pip install Mopidy-MPD
Ensuite, je passe à la configuration:
sudo nano /etc/mopidy/mopidy.conf
et j'y ajoute les lignes suivante
[mpd]
enabled = true
hostname = 192.168.0.48
port = 6600
"enabled" correspond a l'activation de l'extension.
"hostname" est l'adresse IP de la machine sur laquelle je suis.
"port" est à 6600, ce qui est le port par défaut de mpd.
Mopidy-Iris
Voici la commande pour l'installation de l'interface graphique Iris
sudo python3 -m pip install Mopidy-Iris
Rien n'oblige à utiliser spécifiquement cette interface. Elle est installé juste par soucis esthétique.
Aucune configuration est requise.
configuration HTTP
Afin d'accéder pour navigateur web a Mopidy, il faut configurer son accès. Pour cela, il faut ajouter les lignes suivantes dans le fichier "/etc/mopidy/mopidy.conf"
[http]
enabled = true
hostname = 192.168.0.48
"enabled" active l'extension
"hostname" est l'adresse de notre Raspberry pi
Maintenant, mopidy est accessible par le navigateur à l'adresse du Raspberry pi et au port 6680 (pour ma part http://192.168.0.48:6680)
Il faut maintenant effectué la même installation sur l'autre Raspberry pi en prenant soin de changer l'adresse IP.
Préparation du serveur HomeAssistant
Ce serveur Permettra de diffuser et de controller la lecture d'un ou plusieurs fichiers audio vers les lecteur Mopidy installer précédement.
Pour commencer, il faut se rendre sur le serveur et y faire les mise à jour
sudo apt-get update
sudo apt-get upgrade -y
Ensuite, installer les dependances
sudo apt-get install -y python3 python3-dev python3-venv python3-pip libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 libturbojpeg0-dev tzdata
Créer un compte utilisateur sur le serveur
sudo useradd -rm homeassistant
Ainsi qu'un environement virtuel
sudo mkdir /srv/homeassistant
sudo chown homeassistant:homeassistant /srv/homeassistant
sudo -u homeassistant -H -s
cd /srv/homeassistant
python3 -m venv .
source bin/activate
Une fois l'environement activé, il est necessaire d'installer le paquet python suivant
python3 -m pip install wheel
Il est maintenant temps d'installer homeassistant
pip3 install homeassistant
Pour démarrer homeassistant
hass
Et l'interface de Home Assistant est maintenant accessible depuis le navigateur à l'adresse IP du serveur et au port 8123 (http://192.168.0.79:8123)
Configuration de Home Assistant
Configuration des contrôles des Raspberry pi par MPD
Afin de pouvoir faire lire aux Raspberry pi des fichiers audio depuis Home Assistant, il faut déclarer les adresses d'accès des Raspberry pi dans la configuration de Home Assistante.
sudo vim /home/homeassistant/.homeassistant/configuration.yaml
et ajouter les lignes suivantes
media_player:
- platform: mpd
host: 192.168.0.48
port: 6600
name: rpi48
- platform: mpd
host: 192.168.0.35
port: 6600
name: rpi35
"platform": correspond à l'entité utilisé
"host": c'est l'adresse IP de la machine à contrôler
"port": le port d'accès
"name": le nom qui apparaitra dans l'interface de Home Assistant afin de le repérer plus facilement
Ici, j'ai déclaré les 2 Raspberry pi que j'ai configuré précédement
Mise en place de l'espace media
Il existe un espace par defaut où Home Assistant va chercher les fichiers audio. Ce dossier "media" se trouvant à "/home/homeassistant/.homeassistant/"
sudo mkdir /home/homeassistant/.homeassistant/media
C'est dans ce dossier que vous pouvez disposer vos fichiers audio à diffuser
Test
Une fois Home Assistant configuré et démarré, il faut placer les fichiers audio dans le dossier "/home/homeassistant/.homeassistant/" du serveur Home Assistant et ajouter les cartes de contrôle de chaque Raspberry pi sur le reseau.
Ajout des cartes de contrôle de média
Pour cela il faut cliquer sur l'icone "menu" en haut à droite de la page puis sur modifier le tableau de bord.
Clic sur le bouton "Ajouter une carte"
Dans la nouvelle fenêtre, il faut chercher le terme "media" et cliquer sur la carte "Contrôle des medias"
Selectionner une des entités proposé que nous avons déclaré dans le fichier de configuration "/home/homeassistant/.homeassistant/configuration.yaml"
Pour mon exemple, ça sera les entités rpi48 et rpi35.
Une fois les cartes ajoutées, il est maitenant possible de diffuser un fichier audio vers le périphéque souhaité.
Diffusion du fichier audio
Pour diffuser un fichier audio que nous avons stocké au préalable sur le serveur Home Assistant, il faut repérer la carte du raspberry pi souhaité et cliquer sur le logo "media" en bas à droite de la carte.
Selectioner "Local Media" et sélectionner le fichier audio souhaité.
le fichier est maintenant lu sur le périphérique souhaité
Top comments (0)