Sommaire
Le package Squeezebox vous permet de contrôler vos Squeezebox via le Logitech Media Server (lecture, pause, suivant, contrôle du volume …).
Cette documentation a été réalisé avec la version 1.2.1 du package Squeezebox ainsi que la version 2.0 du plugin Constellation pour Logitech Media Server.
Le code source est disponible sur https://github.com/myconstellation/constellation-packages/tree/master/Squeezebox
Installation du package Squeezebox
Depuis le “Online Package Repository” de votre Console Constellation, déployez le package Squeezebox :
Une fois le package télécharger votre repository local, sélectionnez la sentinelle sur laquelle déployer le package.
Pour finir, sur la page de Settings vous devez obligatoirement spécifier l’adresse URL ainsi que le port du Logitech Media Server sans le « http:// » :
Vous pouvez également déployer ce package manuellement dans la configuration de votre Constellation :
|
1 2 3 4 5 |
<package name="Squeezebox"> <settings> <setting key="ServerUrl" value="192.168.1.10:9000" /> </settings> </package> |
Détails du package
Les Settings
| Nom | Type | Détail | Description |
| ServerUrl | String | Obligatoire | Adresse IP du LMS avec le port |
| ServerUser | String | Facultatif | Pseudo pour se connecter au LMS si défini |
| ServerPassword | String | Facultatif | Mot de passe pour se connecter au LMS si défini |
Les StateObjects
Ce package ne comporte aucuns StateObjects.
Les MessageCallbacks
Le package expose 2 types de MessageCallbacks :
- SendToServer :
Ces Message Callbacks ne produisent aucunes réponses (saga).
| Nom | Description |
| Scan_Cancel | Annule le scan de la librairie |
| Scan_Fast | Lance un scan rapide de la librairie |
| Scan_Full | Lance un scan complet de la librairie |
- SendToSqueezebox :
Le champs Squeezebox correspond au nom ou à l’adresse MAC de la squeezebox cible.
Si ce champ est laissé vide, la commande sera lancée sur toutes les squeezebox.
Vous pouvez également indiquer plusieurs squeezebox en les séparant par une virgule, exemple : « SdB,Salon » ou « e4:f4:c6:47:5e:2a,00:15:5d:01:6a:04 »
Ces Message Callbacks ne produisent aucunes réponses (saga).
| Nom | Champ value | Champ squeezebox | Description |
| Add_Album_Id | Id de l’album | Nom ou adresse MAC de la squeezebox cible | Ajoute un album par son id à la fin de la playlist |
| Add_Artist_Id | Id de l’artiste | Nom ou adresse MAC de la squeezebox cible | Ajoute un artiste par son id à la fin de la playlist |
| Add_Title_Id | Id du titre | Nom ou adresse MAC de la squeezebox cible | Ajoute un titre par son id à la fin de la playlist |
| Delete_Album_Id | Id de l’album | Nom ou adresse MAC de la squeezebox cible | Supprime les titres de l’album de la playlist |
| Delete_Artist_Id | Id de l’artiste | Nom ou adresse MAC de la squeezebox cible | Supprime les titres de l’artiste de la playlist |
| Delete_Title_Id | Id du titre | Nom ou adresse MAC de la squeezebox cible | Supprime le titre de la playlist |
| Connect | Adresse IP de l’autre serveur LMS | Nom ou adresse MAC de la squeezebox sur l’autre serveur LMS | Connecte la squeezebox d’un autre serveur à ce serveur |
| Connect_To | Adresse IP de l’autre serveur LMS | Nom ou adresse MAC de la squeezebox cible | Connecte une squeezebox de ce serveur à un autre serveur |
| Mute_Off | Aucun | Nom ou adresse MAC de la squeezebox cible | Désactive l’option muet |
| Mute_On | Aucun | Nom ou adresse MAC de la squeezebox cible | Active l’option muet |
| Mute_Toggle | Aucun | Nom ou adresse MAC de la squeezebox cible | Active/désactive l’option muet |
| Next | Aucun | Nom ou adresse MAC de la squeezebox cible | Lance la prochaine musique dans la playlist |
| Pause | Aucun | Nom ou adresse MAC de la squeezebox cible | Met sur pause la musique |
| Play | Aucun | Nom ou adresse MAC de la squeezebox cible | Met en lecture la musique |
| Play_Album | Nom de l’album | Nom ou adresse MAC de la squeezebox cible | Lance un album basé sur son nom
(remplace la playlist en cours) |
| Play_Album_Id | Id de l’album | Nom ou adresse MAC de la squeezebox cible | Lance un album basé sur son id
(remplace la playlist en cours) |
| Play_Artist | Nom de l’artiste | Nom ou adresse MAC de la squeezebox cible | Lance un artiste basé sur son nom
(remplace la playlist en cours) |
| Play_Artist_Id | Id de l’artiste | Nom ou adresse MAC de la squeezebox cible | Lance un artiste basé sur son id
(remplace la playlist en cours) |
| Play_Index | Index du titre dans la playlist | Nom ou adresse MAC de la squeezebox cible | Lance une musique par sa position dans la playlist |
| Play_Playlist | Nom de la playlist | Nom ou adresse MAC de la squeezebox cible | Lance une playlist basée sur son nom
(nom de la playlist requis – remplace la playlist en cours) |
| Play_Playlist_Id | Id de la playlist | Nom ou adresse MAC de la squeezebox cible | Lance une playlist basée sur son id
(remplace la playlist en cours) |
| Play_Title | Nom du titre | Nom ou adresse MAC de la squeezebox cible | Lance un titre basé sur son nom
(remplace la playlist en cours) |
| Play_Title_Id | Id du titre | Nom ou adresse MAC de la squeezebox cible | Lance un titre basé sur son id
(remplace la playlist en cours) |
| Play_Title_Id_Next | Id du titre | Nom ou adresse MAC de la squeezebox cible | Ajoute un titre à la prochaine position de la playlist basé sur son id |
| Play_Toggle | Aucun | Nom ou adresse MAC de la squeezebox cible | Alterne pause et lecture de la musique |
| Playlist_Clear | Aucun | Nom ou adresse MAC de la squeezebox cible | Vide la playlist en cours |
| Power_Off | Aucun | Nom ou adresse MAC de la squeezebox cible | Éteint virtuellement la squeezebox |
| Power_On | Aucun | Nom ou adresse MAC de la squeezebox cible | Allume virtuellement la squeezebox |
| Power_Toggle | Aucun | Nom ou adresse MAC de la squeezebox cible | Alterne éteindre/allumer virtuellement la squeezebox |
| Previous | Aucun | Nom ou adresse MAC de la squeezebox cible | Lance la musique précédente dans la playlist |
| Random_Album | Aucun | Nom ou adresse MAC de la squeezebox cible | Lance un mix aléatoire par album |
| Random_Artist | Aucun | Nom ou adresse MAC de la squeezebox cible | Lance un mix aléatoire par artiste |
| Random_Title | Aucun | Nom ou adresse MAC de la squeezebox cible | Lance un mix aléatoire |
| Random_Year | Aucun | Nom ou adresse MAC de la squeezebox cible | Lance un mix aléatoire par année |
| Repeat_Off | Aucun | Nom ou adresse MAC de la squeezebox cible | Désactive la répétition |
| Repeat_Playlist | Aucun | Nom ou adresse MAC de la squeezebox cible | Active la répétition de la playlist |
| Repeat_Title | Aucun | Nom ou adresse MAC de la squeezebox cible | Active la répétition du titre en cours |
| Repeat_Toggle | Aucun | Nom ou adresse MAC de la squeezebox cible | Alterne les modes de répétition |
| Shuffle_Album | Aucun | Nom ou adresse MAC de la squeezebox cible | Active le mélange par album |
| Shuffle_Off | Aucun | Nom ou adresse MAC de la squeezebox cible | Désactive le mélange |
| Shuffle_Title | Aucun | Nom ou adresse MAC de la squeezebox cible | Active le mélange par titre |
| Shuffle_Toggle | Aucun | Nom ou adresse MAC de la squeezebox cible | Alterne les modes de mélange |
| Stop | Aucun | Nom ou adresse MAC de la squeezebox cible | Stop la musique en cours de lecture |
| Sync | Nom ou adresse MAC de la squeezebox qui sera synchronisée | Nom ou adresse MAC de la squeezebox cible | Synchronise une autre squeezebox avec celle-ci |
| Sync_Off | Aucun | Nom ou adresse MAC de la squeezebox cible | Désynchronise la squeezebox |
| Sync_To | Nom ou adresse MAC de la squeezebox « maître » | Nom ou adresse MAC de la squeezebox cible | Synchronise cette squeezebox à une autre |
| Volume | Niveau du volume | Nom ou adresse MAC de la squeezebox cible | Définie le niveau du volume |
| Volume_Down | Aucun | Nom ou adresse MAC de la squeezebox cible | Baisse le volume de 2% |
| Volume_Up | Aucun | Nom ou adresse MAC de la squeezebox cible | Augmente le volume de 2% |
Le plugin Logitech Media Server (version 2.0)
Installation
Afin d’éviter de questionner le Logitech Media Server toutes les x secondes et pour obtenir les informations le plus rapidement possible, un plugin pour le Logitech Media Server a été développé.
Pour l’installer, il faut rajouter le répertoire http://erwann.laville.free.fr/repo.xml en bas de la page plugins de votre Logitech Media Server.
Une fois validé, un nouveau plugin sera disponible à l’installation. Il faudra le coche, valider et redémarrer pour l’installer.
Une fois installé, vous pourrez indiquer les informations de Constellation dans les paramètres du plugin :
- L’adresse IP de Constellation sans http:// et sans le port
- Le port de Constellation (par défaut 8088)
- La clé API correspondant au package virtuel
- Le nom de la sentinel dans laquelle sera publiée les informations (par défaut Squeezebox)
- Le nom du package dans lequel sera publié les informations (par défaut Info)
Une fois tout indiqué, celui-ci va envoyer un message dans les logs de Constellation afin de tester la connexion.
Vous pouvez alors rafraichir cette page de paramètre pour voir le résultat de cette communication (cela peut prendre jusqu’à 5 secondes).
Si le résultat est Ok, vous aurez « Communication Ok » dans la partie résultat.
S’il y a eu un problème de transmission, cette erreur s’affichera.
Vous aurez également en dernier l’url qu’utilisera LMS pour envoyer des informations à Constellation.
À noter qu’à la connexion avec Constellation, LMS réalise une purge de la Sentinel / du Package indiqués dans la configuration.
Voilà la configuration du plugin est terminé. Tous les StateObjects seront envoyés vers la sentinelle et le package indiqués.
Il faut donc les rajouter dans Constellation, par exemple ici :
|
1 2 3 4 5 |
<sentinel name="Squeezebox" credential="Standard"> <packages> <package name="Info" /> </packages> </sentinel> |
Les StateObjects
Vous retrouverez autant de StateObject que de lecteurs connectés au LMS ainsi qu’un StateObject indiquant la liste des Squeezebox connectées :
| Nom | Type | Description |
| Players | N/A | Liste des lecteurs avec pour chacun le nom et l’adresse MAC. |
| << Nom du lecteur >> | N/A | Informations sur le lecteur (nom, adresse MAC, adresse IP…) ainsi que sur la lecture en cours (titre, album, artiste, volume, pochette…) |
