Commandez vos enceintes Sonos depuis Domoticz

Standard

L’intégration de Sonos avec Domoticz permet de déclencher des scenarii  de démarrage pour le réveil du matin ou de mise en veille lorsque la maison est vide. Voici comment intégrer Sonos à Domoticz avec un exemple simple des actions Pause et Play sur une zone Sonos.

Node JS Sonos HTTP API

Tout d’abord, il nous faut installer node-sonos-http-api disponible sur GitHub : https://github.com/jishi/node-sonos-http-api

L’installation de ce module node est un jeu d’enfant. Il faut bien entendu une version de Node supérieure à la 0.10.

$ wget http://node-arm.herokuapp.com/node_latest_armhf.deb 
$ sudo dpkg -i node_latest_armhf.deb

Pour tester que Node est bien installé :

$ node -v

Télécharger node-sonos-http-api depuis GitHub ou simplement faites un clone si vous avez Git déjà installé :

$ git clone https://github.com/jishi/node-sonos-http-api.git

Puis, depuis la racine du dossier node-sonos-http-api executez les commandes pour effectuer l’installation :

$ cd node-sonos-http-api/
$ npm install

L’installation terminée, il suffit de lancer le serveur :

$ node server.js

Vos enceintes Sonos peuvent maintenant être commandées en HTTP en appelant simplement les URLs suivantes :

http://localhost:5005/zones
http://localhost:5005/next
http://localhost:5005/previous/
http://localhost:5005/pauseall/
http://localhost:5005/<nom de la zone>/play
http://localhost:5005/<nom de la zone>/pause
http://localhost:5005/<nom de la zone>/next
http://localhost:5005/<nom de la zone>/previous
http://localhost:5005/<nom de la zone>/sleep/
...

Intégration avec Domoticz

L’intégration avec domoticz peut se faire très simplement avec un bouton Media Player pour allumer ou éteindre la musique dans une pièce. Cliquez sur l’onglet « Interrupteurs », puis sur le bouton « Ajout manuel ».

Configuration d'un bouton Media Player

Ajoutez le dispositif puis rendez-vous dans l’onglet interrupteurs.

Dans les script en position On et Off configurez les appels HTTP.

configuration-media-player-2En position ON : http://localhost:5005/<nom de la zone>/play
En position OFF : http://localhost:5005/<nom de la zone>/pause

Pour les espaces et les caractères spéciaux, convertissez les en entités HTML. Le plus simple pour cela c’est de taper l’URL avec espace dans Firefox, elle sera convertie automatiquement.

widget-media-playerEt voilà, le bouton est prêt à l’emploi.

Démarrer le serveur node-sonos-http-api en tant que service Linux

Pour que le server.js démarre au démarrage de Linux et il faut tout d’abord installer pm2. Pour l’installer :

$ sudo npm install pm2 -g

Le démarrage du server en tant que service ce fait comme ceci (ne pas oublier l’option -x correspondant au mode fork, dans le cas contraire le process consommera 100% du CPU) :

$ pm2 -x start node_modules/node-sonos-http-api/server.js --name "node-sonos"

[PM2] Spawning PM2 daemon

[PM2] PM2 Successfully daemonized
[PM2] Starting node_modules/node-sonos-http-api/server.js in fork_mode (1 instance)
[PM2] Done.
┌────────────┬────┬──────┬──────┬────────┬─────────┬────────┬────────────┬──────────┐
│ App name   │ id │ mode │ pid  │ status │ restart │ uptime │ memory     │ watching │
├────────────┼────┼──────┼──────┼────────┼─────────┼────────┼────────────┼──────────┤
│ node-sonos │ 0  │ fork │ 9361 │ online │ 0       │ 5s     │ 6.250 MB   │ disabled │
└────────────┴────┴──────┴──────┴────────┴─────────┴────────┴────────────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app

Pour vérifier que le processus tourne bien :

$ pm2 list
[Total : 0    Moyenne : 0/5]
Partagez sur les réseaux sociaux
  •  
  •  
  •  
  •  
  •  

5 thoughts on “Commandez vos enceintes Sonos depuis Domoticz

  1. beuz33

    Bonjour, je ne comprends pas, quand je suis l’install, a la fin quand je tape nove -v, j’obtiens ça, quelqu’un aurait une idée

    root@raspberrypi:~# node -v
    node: /usr/lib/arm-linux-gnueabihf/libstdc++.so.6: version `GLIBCXX_3.4.20′ not found (required by node)
    node: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.16′ not found (required by node)

    Merci

    • Olivier Portier

      Ce doit être lié à un problème de version de la librairie GLIBC. Je te conseille de réinstaller node :
      1. mise à jour des dépôts :
      sudo apt-get update

      2. suppression de node
      sudo apt-get remove nodejs

      3. installation de node
      sudo apt-get install nodejs

      Olivier

      • BEUZ33

        Bonjour,
        j’ai toujours le meme problème quand je fais:

        root@raspberrypi:~# node -v
        node: /usr/lib/arm-linux-gnueabihf/libstdc++.so.6: version `GLIBCXX_3.4.20′ not found (required by node)
        node: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.16′ not found (required by node)

        personne d’autre n’a eu ce problème,

        merci

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *