Multiroom audio et vidéo avec la eedomus

par | Fév 11, 2014 | Domotique | 4 commentaires

Emmanuel est un de nos lecteurs réguliers et clients fidèles. Il souhaite vous faire partager aujourd’hui son expérience avec son installation multiroom audio et vidéo, qu’il contrôle à partir de sa box domotique eedomus.

Dans notre maison domotisée, nous voulions pouvoir profiter de nos vidéos dans 3 pièces et de notre musique dans plusieurs pièces. Comme nous n’avions pas les moyens de recourir à des solutions clés en mains type SONOS ou autre, j’ai choisi une solution à base de Synology, de Raspberry Pi et d’eedomus. Je parlerai ici de l’eedomus mais n’importe quelle box domotique capable d’envoyer des requêtes HTTP peut faire la même chose.

multiroom_audio-video_eedomus

Tout d’abord la source : j’avais depuis quelques temps un Synology 112 que je n’exploitais pas vraiment. Il a donc été mis en source des vidéos et de l’audio. Il y a dedans un disque dur de 1To. Mais on peut, si le besoin d’espace se fait sentir, y coller un disque dur externe (voire un boitier avec plusieurs disques). En ce qui me concerne, c’est une liaison en USB3, je ne sais pas si l’USB2 tient la cadence pour les vidéos. J’utilise également, pour la TV, un décodeur satellite.

multiroom_audio-video_eedomus_synology

Le réseau : j’en avais marre que mes boitiers CPL (pourtant des DEVOLO 500) me lâchent les uns après les autres. Du coup, j’ai câblé le réseau en direct dans les pièces où on regardera des vidéos. C’est une solution, certes un peu lourde à mettre en place au début (surtout si on est locataire) mais le résultat est là. Il faut faire attention de prendre des switchs gigabite et avec suffisamment de ports car on en manque rapidement. J’ai de très bons débits, les vidéos passent sans problème et je n’ai plus de soucis avec des relais CPL. Et pour l’audio, le Wi-Fi suffit dans les pièces non câblées. Au besoin, j’ajouterai un relais Wi-Fi dans certaines pièces un peu lointaines.

Les lecteurs : j’ai choisi des Raspberry Pi avec une distribution XBMC. Plusieurs avantages : le prix bien sûr, la puissance suffisante, la capacité de lire aussi bien de l’audio que de la vidéo et la possibilité de les commander soit par l’eedomus soit par l’interface web intégrée. Et enfin, la possibilité de remonter des infos vers l’eedomus pour créer des scénarii en fonction de l’état du Raspberry Pi grâce à un plugin externe. On peut également choisir un lecteur DUNE, qui peut être commandé par des requêtes en lieu et place de la télécommande infrarouge.

multiroom_audio-video_eedomus_rpi_kira

La diffusion et la TV : n’importe quel appareil pouvant être commandé par infrarouge. Pour commander mes appareils infrarouge par la box, j’ai installé également des relais IR KIRA 128. Leur avantage est qu’ils peuvent être commandés via des requêtes HTTP du type « http://***.***.*.**/remote2.htm?button001 ». Attention, seuls les modèles 128, avec base de données des codes infrarouges, ont cette particularité, les autres doivent être commandés par commande UDP.

La TV : grâce à mes relais KIRA, j’ai pu pousser un peu plus l’intégration et le WAF/MAF en incluant la possibilité de changer de chaine depuis l’eedomus en cliquant sur le logo de la dite chaine. Pratique pour ne plus avoir à se souvenir des numéros.

Mise en place : Je ne vais pas détailler ici l’installation d’XBMC, du Syno ou l’apprentissage des codes infrarouges par les KIRA, il y a des tuto sur ces points sur plusieurs sites et blogs. Je vais vous montrer comment centraliser les appareils avec la box.

Tout d’abord il faut créer un périphérique Actionneur HTTP (je préfère cette solution à celle du périphérique UPNP car les commandes sont plus nombreuses). Comme valeurs, il y a des adresses du type :

–        Pour aller à l’accueil :

http://admin:pwd@***.***.*.**:port/jsonrpc?request={« jsonrpc »: « 2.0 », « method »: « Input.Home », « id »: 1}

–        Play/Pause :

http://admin:pwd@***.***.*.**:port/jsonrpc?request={« jsonrpc »: « 2.0 », « method »: « Player.PlayPause », « id »: 1}

 

Je me suis inspiré du wiki de cette adresse : http://wiki.xbmc.org/index.php?title=JSON-RPC_API/Examples

Et j’en ai trouvé d’autres :

Up :         http://admin:pwd@***.***.*.**:port/jsonrpc?request={« jsonrpc »: « 2.0 », « method »: « Input.Up », « id »: 1}

Down :  http://admin:pwd@***.***.*.**:port/jsonrpc?request={« jsonrpc »: « 2.0 », « method »: « Input.Down », « id »: 1}

Left :      http://admin:pwd@***.***.*.**:port/jsonrpc?request={« jsonrpc »: « 2.0 », « method »: « Input.Left », « id »: 1}

Right :   http://admin:pwd@***.***.*.**:port/jsonrpc?request={« jsonrpc »: « 2.0 », « method »: « Input.Right », « id »: 1}

Select :                  http://admin:pwd@***.***.*.**:port/jsonrpc?request={« jsonrpc »: « 2.0 », « method »: « Input.Select », « id »: 1}

Back :    http://admin:pwd@***.***.*.**:port/jsonrpc?request={« jsonrpc »: « 2.0 », « method »: « Input.Back », « id »: 1}

Stop : http://admin:pwd@***.***.*.**:port/jsonrpc?request= {« id »:1, »jsonrpc »: »2.0″, »method »: »Player.Stop », »params »:{« playerid »: 1 }}

Volume :

http://admin:pwd@***.***.*.**:port/jsonrpc?request={« id »:1, »jsonrpc »: »2.0″, »method »: »Application.SetVolume », »params »:{« volume »: 100 }}

http://admin:pwd@***.***.*.**:port/jsonrpc?request={« id »:1, »jsonrpc »: »2.0″, »method »: »Application.SetMute », »params »:{« mute »: true }}

http://admin:pwd@***.***.*.**:port/jsonrpc?request={« id »:1, »jsonrpc »: »2.0″, »method »: »Application.SetMute », »params »:{« mute »: false }}

Afficher un message :

http://admin:pwd@***.***.*.**:port/jsonrpc?request={« id »:1, »jsonrpc »: »2.0″, »method »: »GUI.ShowNotification », »params »:{« title »: » Titre_du_message « , »message »: » Corps_Du_Message « }}

multiroom_audio-video_eedomus_tuto2

Ensuite, création d’un autre actionneur HTTP pour les appareils infrarouges. Les valeurs permettent d’envoyer les ordres infrarouges via le réseau par la box. Voici un exemple.

multiroom_audio-video_eedomus_tuto1

J’ai choisi par confort de créer un actionneur par pièce mais vous pouvez en créer un par appareil. Pour les chaines de TV, j’ai créé des macros avec l’appareil décodeur satellite. Cela permet de choisir des chaines nécessitant plusieurs numéros. En effet les KIRA ne peuvent envoyer qu’un ordre à la fois. Donc pour choisir la chaine 100 par exemple, il faut passer par une macro du type « Bouton du 1 », « attend 1 seconde », « Bouton du 0 », « attend 1 seconde », « Bouton du 0 ». Le temps de latence entre les 2 permet que le décodeur reçoive bien les ordres et qu’ils ne se « télescopent » pas. La création des macros est un peu longue, surtout avec toutes les chaines que nous avons maintenant, mais vous n’êtes pas obligé de mettre toutes les chaines. Voilà le résultat chez moi :

multiroom_audio-video_eedomus_tuto4

 

multiroom_audio-video_eedomus_tuto3

Et enfin, pour parfaire l’intégration, comme j’ai un plafonnier et 2 bandeaux LED dans la pièce où on se tient le plus souvent pour regarder des vidéos, j’ai fait en sorte que quand le Raspberry Pi est en lecture, le plafonnier s’éteint et un bandeau de LED s’allume. Si on met en pause le Raspberry Pi, le 2nd bandeau LED s’allume. Et enfin, quand on arrête la vidéo, le plafonnier se rallume et les bandeaux LED s’éteignent. On peut même pousser l’intégration plus loin en le faisant allumer ou éteindre la TV en même temps que l’on met sur play ou sur stop.

Merci à Emmanuel pour le partage !

Restez connecté sur l'actualité domotique!