Vous le savez, maintenant, la Vera est un petit serveur que j'adore :p Après avoir fait communiquer Homeseer avec mes Squeezebox, j'ai donc cherché ensuite à les faire communiquer avec ma Vera. Là, pas de plugin aussi complet que sur Homeseer, mais il existe tout de même un petit plugin gratuit, et pas mal de bidouilles…
I. Installation
Pour installer le plugin Squeezebox, il faut tout d'abord aller dans le magasin MIOS, et rechercher le plugin Squeezebox (disponible dans les plugins en beta, à sélectionner en haut de l'écran, sinon vous le ne verrez pas).
Installez le, un nouveau module apparait dans l'interface de la Vera:
Cliquez sur la molette du nouveau device, puis dans l'onglet Advanced, tout en bas, renseignez l'adresse IP de votre serveur Squeezebox, ainsi que le port (le port par défaut est déjà renseigné):
Assurez vous que votre logiciel Squeezebox Server est bien lancé sur le pc l'hébergeant, puis sauvez la configuration de la Vera. Il devrait se créer autant de modules que de Squeezebox connectées sur votre réseau:
La configuration est terminée !
II. Utilisation
L'affichage des “players” ne va jamais bouger (dommage, ce serait sympa d'avoir l'état du lecteur directement sur le Dashboard). Par contre, en allant dans ses paramètres, on peut voir en bas le nom du morceau en cours, l'état du lecteur, et même le niveau sonore:
Ces informations pourront être récupérées via des scripts Lua pour en faire ce que vous voudrez.
Le principal intérêt de ce plugin est l'ajout de fonctions dans les scénarios. Pour les utiliser, il faudra créer un nouveau scénario, et aller dans l'onglet Avancé:
Une fois le module ajouté, différentes fonctions sont disponibles:
On pourra via ces commandes mettre en pause, reprendre la lecture, passer au morceau suivant, etc…
L'intérêt reste à mon avis assez limité, mais cela peut être utile par exemple pour mettre en pause la musique lorsqu'aucune présence n'est détectée dans la maison, pour la reprendre où elle s'est arrêtée quand une présence est de nouveau détectée. Personnellement, j'y vois quelques utilisations: arrêter la musique quand j'active l'alarme totale, ce qui signifie que je suis absent; lancer la lecture d'une webradio à des heures aléatoires, quand l'alarme est activée, pour une simulation de présence (en complément des lampes qui s'allument toutes seules…). Ces actions peuvent se faire très facilement en créant des scénarios et en utilisant les commandes du plugin.
III. Pour aller plus loin
Il faut bien avouer que le plugin en lui même reste limité, surtout après avoir vu celui pour Homeseer :/
Mais la possibilité d'écrire des scripts en Lua sur la Vera, et l'existence de contrôles en ligne de commande côté Squeezebox (CLI), vont permettre d'aller beaucoup plus loin.
Il faudra donc pour cela utiliser les scripts Luup dans les scénarios. La structure sera toujours semblable à cela:
socket=require('socket') local client = socket.connect('', 9090) client:send("\n") local result=client:receive()
Il faudra indiquer l'adresse du pc où est installé Squeezebox Server, puis indiquer l'une des nombreuses commandes disponibles sur les Squeezebox.
Par exemple:
Ce scénario va afficher un message sur l'écran de la Squeezebox correspondant à l'adresse MAC que j'ai indiquée:
La syntaxe utilisée ici est
address of player> display
Il faut éviter les caractères spéciaux, et remplacer les espaces par des %20, mais cela fonctionne. A partir de là, il est très simple de récupérer l'état d'un device (par exemple la température extérieure) pour l'afficher avec un message sur la Squeezebox.
Autre exemple, une commande comme celle ci aura pour effet de lire le morceau précédent dans la playlist en cours:
client:send(“00:04:20:XX:XX:XX playlist index -1\n”)
Cette fonction augmentera le son de 10%:
client:send(“00:04:20:XX:XX:XX mixer volume +10\n”)
L'une des fonctions les plus utilisées sera sans doute la commande bouton, qui simule l'appui sur une touche:
client:send(“00:04:20:XX:XX:XX button brightness_toggle\n”)
En indiquant le nom du bouton, cela aura le même effet que si nous appuyions nous même sur la touche de la télécommande !
La liste complète des fonctions est disponible dans l'aide fournie avec le Squeezebox Server: Aide > Informations techniques > Command Line Interface
Il y a quelques pages de commandes, très bien expliquées, qui permettent vraiment de tout contrôler sur ses Squeezebox:
Ces commandes permettront aussi bien d'envoyer des ordres aux Squeezebox, que de récupérer certaines informations, comme l'état du lecteur, l'artiste en cours, etc…
L'utilisation est certes un peu plus compliquée que le plugin Homeseer, mais en s'y intéressant un peu, cela se fait assez facilement, et on se rend compte de la puissance des actions qu'on peut réaliser.
Une page sur le Wiki de Micasaverde est consacrée à la Squeezebox, sur laquelle j'ai trouvé ces explications, mais également quelques astuces, comme le fait d'utiliser le plugin des caméras pour afficher la jaquette de l'album en cours:
Bref, il y a de l'idée ! Certes un peu plus compliqué qu'avec Homeseer, mais le principal est de pouvoir interfacer tout cela sans trop de problèmes. C'est chose possible avec les scripts Lua et les commandes CLI de la Squeezebox, qui permettent de parfaitement contrôler tout le système Squeezebox, et cela gratuitement :p