Intégrer XBMC dans votre réseau xPL
J’ai récemment découvert un plugin XBMC permettant d’intégrer ce dernier dans un réseau xPL. XBMC devient alors en partie pilotable en xPL, renvoie des informations et répond aux demandes d’informations sur son état. Le plugin permet aussi d’afficher des notifications XBMC.
Installation
L’installation est simple et prend deux minutes. A noter qu’il faut la dernière version d’XBMC (11.0 “Eden”)
- Téléchargez la dernière version ici
- Allez dans XBMC: Settings -> Add-ons -> Install from zip file
- Allez dans le répertoire où vous avez téléchargé l’archive zip, et sélectionnez la
- Redémarrer XBMC
- Voila, maintenant XBMC envoie des messages xPL sur le réseau et peut y répondre.
Je l’ai testé sur la version Linux et sur un appleTV2 avec succès.
[adsGrandRectangleTexte]
Les schémas xPL supportés
osd.basic
Le plugin gère une partie des propriétés du schéma osd.basic.
Il permet d’afficher une notification XBMC à la réception d’un message xPL osd.basic. Il lui manque principalement la gestion du délai d’affichage et des retours à la ligne.
Ci-dessous, un exemple de message osd.basic et du résultat lors de la lecture d’un film :
xpl-cmnd { hop=1 source=bnz-sender.SA3 target=* } osd.basic { command=write text=Test OSD } |
media.*
On peut utiliser des messages de type media.basic pour controler XBMC. C’est assez rudimentaire mais le plugin supporte les commandes play, pause, stop et skip.
Il renvoie aussi son état via un message de ce type après chaque commande:
xpl-stat { hop=1 source=parasit-xbmc.SA3 target=* } media.mptrnspt { mp=xbmc command=pause kind=audio }
Il envoie aussi le media en cours de lecture au démarrage de la lecture d’un nouveau media ou sur demande:
xpl-stat { hop=1 source=parasit-xbmc.SA3 target=* } media.mpmedia { mp=xbmc kind=audio title=I'm a lady album=The Geeks & The Jerkin Socks artist=Shaka Ponk duration=284.0 format=mp3 state=play }
et répond aux demandes d’informations sur le media en cours de lecture ou le statut du player via des message media.request.
Conclusion
Un petit plugin fort sympathique qui permet d’intégrer simplement XBMC à votre réseau xPL.
Espérons que le développeur l’enrichisse de nouvelles fonctionnalités.
Il devient très facile de faire réagir les modules d’un système domotique en fonction de l’état d’XBMC. Par exemple, éteindre les lumières et fermer les volets sur Play, rallumer à 50% sur Pause, ouvrir les volets (si on est en journée) sur Stop, etc.
Si xPL vous intéresse, jetez un oeil sur la librairie xPL.Arduino.
Salut, est-ce qu’il faut avoir un hub xPL déjà présent sur le media center ?
En tout cas c’est intéressant (et un truc de moins dans ma TODO list au passage)!
Salut Fritz,
En fait, de ce que j’ai vu il écoute directement le port 3865 donc pas de problème si la machine ne sert que de media center (genre mon appleTV2) mais si tu as d’autres programmes dessus qui écoute les messages xPL ça va être gênant, il faudrait modifier le fonctionnement.
J’ai vu plusieurs de tes posts à propos d’xPL et XBMC. Ici il ne récupère pas non plus la liste des média dispo (ta problématique de l’époque). Ça reste assez basic.
Au passage, je n’ai pas pu l’installer sur un XBMC Eden sur une ubuntu 12.04… Le message d’erreur est troqué à l’écran et je ne trouve rien dans les logs 🙁
Son plugin est déjà une bonne base de départ même si il est incomplet et ne nécessite (sig) pas de hub. A voir comment ça va évoluer, quitte à lui donner un coup de patte 🙂
Pour être précis, ça dit « Add on doesn’t have the correct structure »
En fait, je n’installais pas le bon…
Il est partit d’un autre plugin, c’est celui ci que tu as installé ?
Possible. La fonction OSD marche, par contre impossible de voir passer le xpl émis au lancement d’une chanson. Je n’ai pas creusé plus que ça d’ailleurs.
Je ne sais pas si c’est ça mais il envoie en broadcast sur 255.255.255.255. Si tu utilise xpl-perl, le hub ecoute sur l’adresse broadcast du reseau (192.168.1.255 chez moi), il faut le lancer avec « –define broadcast=0.0.0.0 » pour qu’il recoive tous les paquets.
Trouvé…
Mon hub (un proto python) me donne ça dans les messages invalides :
192.168.1.103_49146 ; 1341342643.36 ; xpl-stat\n{\nhop=1\nsource=parasit-xbmc.ubuntu-VirtualBo\ntarget=*\n}\nhbeat.app\n{\ninterval=1\nport=3865\nremote-ip=192.168.1.103\nversion=1.0\n}\n
C’est le nom d’hôte mon souci.
Bon, j’ai matté un peu son code, c’est simple à comprendre une fois que l’on a l’exemple… Il y a trop d’imbrications de code et ça mériterait plus de fonction, mais bon…
Par contre, impossible de trouver comment faire un ticket ou contacter l’auteur par mail pour lui remonter 2/3 trucs…
J’ai trouvé le plugin sur le forum du xplProject : http://xplproject.org.uk/forums/viewtopic.php?f=1&t=1175 peut etre que tu pourras le contacter par là ?
Intéressant tout ça !
Au passage j’en profite pour linker ton blog sur le mien 🙂
Bonjour,
bravo et merci pour tout le boulot fait. J’ai décidé de me lancer dans l’aventure Domogik/Xbmc mais je n’arrive pas a les faire communiquer. J’ai installé le addon ( plugin.xpl-0.2 ) sur xmbc et domogick 0.2.0.
je tente d’envoyer des messages xpl via la console ( pour l’instant ) mais ça ne fonctionnne pas.
Voila la commande que j’envoie par exemple:
./send.py -t "*" xpl-cmnd osd.basic "command=write,text=HELLO"
Il est fort possible que ma commande ne soit pas bonne mais y a t-il un moyen de vérifier sur xbmc que l’addon écoute sur le bon port ( netstat ? ).
Finalement le port 3865 est bien en écoute par xbmc. Il doit donc s’agir de la manière dont j’envoie les messages.
Dans Domogik , que doit-on choisir lors de le configuration du device dans lezs champs « Feature » et « Usage » pour ce plug-in ?
Merci
Merci pour la réponse , je vais creuser de ce coté la.