..:: Domotique Store : Le Blog ::..
Articles Clients eeDomus Tous les articles

Interfacer OpenRemote avec la box domotique eedomus

Tout d’abord je ne reviendrai pas sur la présentation ni l’installation ou encore la création d’une interface OpenRemote. Il s’agit là précisément de comprendre comment faire communiquer OpenRemote et la box eedomus.

[box type= »info » ]Le projet OpenRemote est un projet OpenSource visant à permettre le contrôle à distance de son installation domotique grâce à des interfaces simples. Vous pouvez aller lire notre article sur OpenRemote.[/box]

Grâce à son API, l’eedomus permet notamment deux choses :

  • envoyer des commandes http pour modifier l’état des périphériques
  • récupérer l’état des différents capteurs, également au travers d’une requête http

Explication rapide du fonctionnement de OpenRemote

Lorsque vous créez votre interface OpenRemote vous avez besoin de deux choses :

  • des commandes http qui permettent de modifier l’état d’un prériphérique sur votre box
  • des sensors qui vont interroger à intervalle régulier un fichier xml ou json pour relever l’état des capteurs auxquels ils sont associés.

Mise en place dans OpenRemote

Nous allons utiliser une fonction d’OpenRemote qui s’appelle « rules ». Les rules permettent de scripter un peu tout et n’importe quoi …

Dans notre cas, nous allons demander à OpenRemote d’interroger toutes les secondes l’url de l’API eedomus qui permet de récupérer l’état des capteurs de la box.

Cette url est de la forme :

https://api.eedomus.com/get?action=periph.caract&periph_id=XXX&api_user=XXX&api_secret=XXX

periph_id est le code API du périphérique dont vous souhaitez connaître l’état à récupérer dans les paramètres experts du module en question

Interfacer eeDomus et OpenRemote

api_user et api_secret sont à récupérer dans la configuration de votre box.

Interfacer eeDomus et OpenRemote API eeDomus

Rendez-vous ensuite dans votre designer OpenRemote, dans l’onglet « Config for Controller ».

Sélectionnez rules et dans le champ rules editor collez ce script en ayant pris soin, bien sûr, de compléter l’url avec vos propres valeurs.

package org.openremote.controller.model.event

import org.apache.commons.io.FileUtils;
import java.net.URL;
import java.io.File;

rule "Poll eedomus every second"
    timer (cron: * * * * * ?)
when
    eval(true)
then
    pollVera();
end

function void pollVera() {
    FileUtils.copyURLToFile(new URL("https://api.eedomus.com/get?action=periph.caract&periph_id=XXX&api_user=XXX&api_secret=XXX"), new File("../webapps/controller/eedomus.json"));
}

Interfacer eeDomus et OpenRemote - Rules

Petit point : pour l’instant l’API eedomus ne permet pas d’appeler d’une simple url l’ensemble des statuts des capteurs de la box. Il va vous falloir ajouter manuellement chaque periph_id à la suite du premier en les séparant simplement par une virgule (periph_id=XXX,XXX,XXX…).

Pas très pratique, mais pour l’instant c’est comme ça ! 😉

Validez la rule puis retournez dans la rubrique Device.

Nous allons prendre pour exemple un simple switch. Il faut tout d’abord créer les deux commandes ON et OFF.

Créez une nouvelle commande http :

[highlight]https://api.eedomus.com/set?action=periph.value&periph_id=XXX&value=100&api_user=XXX&api_secret=XXX[/highlight]

Même chose pour la commande OFF en changeant la valeur à 0 :

[highlight]https://api.eedomus.com/set?action=periph.value&periph_id=XXX&value=0&api_user=XXX&api_secret=XXX[/highlight]

 

Puis on crée une nouvelle commande http qui mettra à jour le sensor qui renseigne l’état du switch (veillez à compléter l’adresse IP de votre controller OpenRemote ainsi que le port utilisé) :

[highlight]https://IP_OR:8688/controller/eedomus.json[/highlight]

On choisit de vérifier l’état toutes les secondes.

On renseigne le json path expression qui permet de choisir le capteur à relever (valeur et periph_id à vérifier d’après l’url citée en début d’article) :
[highlight]body[?(@.periph_id==XXX)].last_value[/highlight]

Interfacer eeDomus et OpenRemote - Edit command

Ensuite vous créez comme d’hab un sensor utilisant cette url, puis un switch utilisant le sensor créé ainsi que les deux commandes ON et OFF.

Et voilà, votre interface OpenRemote cause avec votre eedomus !

0
0
Erwan Guingand

Après avoir été directeur artistique dans de grandes agences de publicité parisiennes, je travaille aujourd’hui en indépendant sur tous types de sujets de communication.<br /> Parallèlement, je suis passionné par les nouvelles technologies et en particulier la domotique dont le plus gros enjeu est, à mon avis, l'interface avec l'utilisateur plus que la technologie.

Laisser un commentaire