XBMC: afficher des notifications domotiques

1

Comme je l’ai mentionné dans le guide consistant à se faire un media center à base de Raspberry et de XBMC, ce dernier dispose de nombreuses possibilités, notamment grâce à son API pilotable par requêtes HTTP. De nombreuses box domotiques savent aujourd’hui effectuer ce genre de requête très facilement (Zibase, Vera, eedomus, Fibaro Box, Zipabox…). Nous allons voir comment effectuer cela. Vous allez voir, c’est relativement simple :D

Tout d’abord, il faut que le contrôle distant de XBMC soit autorisé pour accepter les requêtes HTTP:

 

 

L’API de XBMC est entièrement documentée sur cette page. Ici, nous allons faire simple, en n’utilisant qu’une seule fonction: GUI.ShowNotification, qui fonctionne de cette facon:

 

 

Bon, présentée ainsi, cela peut faire peur, car ca ne ressemble pas du tout à une requête HTTP. Normal, c’est du JSON. Mais on peut le transformer en requête HTTP de cette facon:

 

http://IP_DE_XBMC:8080/jsonrpc?request={%22jsonrpc%22:%222.0%22,%22method%22:%22GUI.ShowNotification%22,%22params%22:{%22title%22:%22Mouvement%20Detecté%22,%22message%22:%22Porte%20Entrée%22},%22id%22:1}

 

Si vous copiez coller cette requête HTTP dans votre navigateur web, en remplacant bien sûr l’adresse IP par celle de votre ordinateur où tourne XBMC, vous devriez voir apparaitre tout de suite une petite notification en bas de l’écran:

 

 

Deux parties nous intéressent ici:

  • %22title%22:%22Mouvement%20Detecté%22 : le paramètre « title » qui est donc le titre de la notification. Attention, comme nous sommes dans une URL, pas d’espaces. Ils doivent être remplacés par leur code  %20.
  • %22message%22:%22Porte%20Entrée%22 : le paramètre « message » est le message à afficher. Il répond aux mêmes contraintes que le titre.

Il suffit donc d’appeler ce type d’URL depuis notre box domotique. Je vous donne ici un exemple depuis ma box eedomus. Je crée un actionneur HTTP:

 

 

Et je renseigne les URL de mes notifications:

 

 

Ici j’ai trois exemples de notifications: une pour me prévenir que quelqu’un est à la porte d’entrée, une pour me prévenir du passage en heures creuses, et une autre pour me prévenir du risque de gel. Pour cette dernière, j’affiche même la température relevée en utilisant l’un des tags de la box [LAST_VALUE PERIPH_ID=xxx] qui sera remplacé à la volée par la valeur actuelle du périphérique:

 

 

J’ai créé également un capteur HTTP pour vérifier que mon pc XBMC est bien en ligne, car il est inutile de lui envoyer des requêtes s’il est éteint, ce qui va provoquer des erreurs sur la box et du travail inutile:

 

 

Avec ces valeurs:

 

Il n’y a plus qu’à faire les scénarios qu’on souhaite. Par exemple pour notifier que quelqu’un est à ma porte d’entrée:

 

 

Pour la plupart de mes notifications, j’utilise la synthèse vocale du Karotz. Mais quand je suis devant la TV avec un bon film, je préfère qu’il se taise :p Les notifications  sur XBMC prennent alors le relais, que ce soit sur l’interface ou pendant la lecture d’un film.

 

 

Elles restent discrètes, et il ne faut pas en programmer pour tout et n’importe quoi, juste les choses vraiment utiles ;-)

Voilà, un nouveau mode de notification pour votre domotique directement sur votre TV ;-)



A propos de l'auteur

Je me suis essayé à la domotique il y a quelques années avec quelques modules X10, quelques softs gratuits, etc… pour équiper la maison que j'avais en location. Puis j'ai eu la chance de pouvoir faire construire, et c'est là que mes projets domotiques ont explosé, la construction neuve me permettant de prévoir une installation complète, et intégrée à la maison. Aujourd'hui, quasiment toute mon installation repose sur le Z-Wave.

  • dam

    Bonjour Cédric, petite question, je viens d’installer une box mini
    zwave. Je me demandais si on pouvait réaliser le meme type de commande
    avec cette box ? Ou avec un autre logiciel, car je n’ai pas trouvé dans
    l’interface de la mini zwave l’option pour les requête http. L’idée est
    d’avoir une notification lorsque qu’une lumière dans une pièce est
    déclenchée.

    Merci pour votre retour

    Damien