Aller au contenu

JPI - Controlleur android


dJuL

Messages recommandés

Salut,

 

Après Jeedom et eedomus, je projette éventuellement d'intégrer l'API des boxs Fibaro dans JPI (anciennement nommé Jeedom Paw Interface).

Pour ceux qui ne connaissent pas JPI, il s'agit d'un petit contrôleur domotique HTTP sur android, capable d’effectuer des scénarios sur des événements entrants, et pouvant effectuer tout un tas d'actions contrôlées via HTTP.

(sms & appels entrants / sortants, reco vocal, detection mvt, caméra, capteurs...).

Il est totalement gratuit (sans pub) et administrable via une page web.

Le topic d'origine est ici :

https://www.jeedom.com/forum/viewtopic.php?f=27&t=18283&p=515233#p515223 => https://forum.jeedom.com/viewtopic.php?f=27&t=18283

(topic trop long, désolé)

 

Le lien vers la dernière version de l'apk est ici :

https://www.jeedom.com/forum/viewtopic.php?f=27&t=18283&p=469610#p469388

 

Pour l'instant il n'y a pas de doc, uniquement quelques tutos par ci par là sur le web.

La doc viendra un jour, ce sera pour la v1, quand je serais sur que l'app est mature et que toutes les fondations sont defs.

 

Dans un premiers temps j'aurais quelques questions (j'ai pas de box Fibaro et je ne les connais pas)

 

- les box HC2/HCL répondent t-elles au ping sur le réseau local ?

- Y'a t-il une page d’accueil web en local, et si oui est-t-elle directement sur http://IP-de-la-box ?

- J'ai cru voir que concernant l'API HTTP c'est exactement pareil pour les 2 box (je parle bien de l'api http, pas du LUA), vous confirmez ?

- J'ai un peu du mal avec ce que je trouve sur le net, il n'y a pas de doc officielle concernant l'api http ?

En attendant j'ai trouvé ça :

http://tutoriels.domotique-store.fr/content/49/45/fr/api-commander-le-home-center-par-des-requêtes-http.html

 

J'en ai donc déduis une liste des fonctions principales JPI que je vais pouvoir créer :

 

SET:

* hc_turnOff

* hc_turnOn

* hc_setValue

* hc_setAjar

* hc_setColor

* hc_setSlider

* hc_stop

* hc_startProgram

* hc_pressButton

* hc_sceneStart

* hc_sceneStop

* hc_setTargetLevel

* hc_setTime

 

GET:

* hc_getValue

(menu déroulant: rooms, scenes, devices, device id...)

 

Selon vous manque-t-il des trucs dans la liste ?

Tout est-il compatible hc2 / hcl ?

Si il manque des fonctions typiques pour hc2 je peux les faire commencer par hc2_ afin de les identifier comme uniquement pour hc2

Pour les variables est-ce utile de faire une fonction pour les contrôler ?

 

Voila pour le moment.

Merci !

 

  • Upvote 3
Lien vers le commentaire
Partager sur d’autres sites

Bonjour @dJuL

 

voici déjà quelques réponses :

- pour le ping, la réponse est oui

- oui tu arrives sur l'interface principale de la box en tapant son adresse IP

- oui, l'api est le même est HC2 et HCL (mais je n'ai pas de HCL donc un autre pourra confirmer)

- il y a bien une doc du REST Api, mais disponible directement sur la box, je ne sais pas si il est possible de l'avoir autrement

 

pour le reste de tes questions, je vais d'abord jeter un œilsur tes liens afin de mieux comprendre ce que jpi peut faire...  

 

mais je suppose que l'un de nos gourous va aussi répondre ;) 

Lien vers le commentaire
Partager sur d’autres sites

Il y a 21 heures, Lazer a dit :

On a un topic qui référence les API HTTP, ce n'est pas complet à 100%, mais c'est déjà une bonne base :

Liste Api-Http Pour Hcl Et Hc2

Merci mais je ne trouve pas les fonctions essentielles de contrôle domotique dans ton lien (genre turnOff, setValue...).

 

Sinon j'aurais besoin de savoir quel est le type de retour (json j'imagine) en cas de mauvais mot de passe, ou deviceID non existant, ou en cas d'opération réussie.

Modifié par dJuL
Lien vers le commentaire
Partager sur d’autres sites

Alors en complément voici ce que j'ai retrouvé dans mon stock de favoris :

http://www.domotique-info.fr/2013/05/api-home-center-2/

http://tutoriels.domotique-store.fr/content/49/45/fr/api-commander-le-home-center-par-des-requêtes-http.html

http://www.fibarouk.co.uk/support/lua/actions-use-fibarocall-api/

 

Malheureusement, la documentation n'est pas le point fort de Fibaro, donc il n'existe aucune doc unique et complète à 100%, il faut glaner les infos ça et là.

 

En cas de mauvaise authentification, le code retour HTTP est 401, sans aucune données (pas de json) :


 

$ curl --write-out %{http_code} "http://192.168.x.y/api/callAction?deviceID=1234&name=pressButton&arg1=1"
401

 

En cas d'opération réussie, le code est généralement 200 ou parfois 202

Dans ce cas, il peut y avoir un JSON, mais ça dépend des actions. Il faut tester au cas par cas.

 

 

Lien vers le commentaire
Partager sur d’autres sites

oui je te comprends... et Fibaro ne nous aide pas, le mec qui développe le logiciel de la box à mi-temps n'est pas un champion, on a régulièrement des changements de comportement sans prévenir, avec pour seule explication "it's not a bug, it's a feature" :angry:

 

tu peux préparer une liste des API que tu souhaites qu'on teste, et on te fera un retour.

Lien vers le commentaire
Partager sur d’autres sites

Ok on va donc commencer avec les actions de base turnOn et turnOff

Actions qui sont censées fonctionner en GET:

http://<LOGIN>:<PASS>@<IP>/api/callAction?deviceID=<ID>&name=turnOn

http://<LOGIN>:<PASS>@<IP>/api/callAction?deviceID=<ID>&name=turnOff

 

Je veux bien un exemple du retour avec un deviceID bon et un inexistant, ainsi qu'éventuellement les codes de retour HTTP si ils différent.

 

Merci :)

Lien vers le commentaire
Partager sur d’autres sites

Cool, merci Lazer :)

 

Je vais partir sur la base que toutes les actions faites via callAction réagissent de la même manière, on verra par la suite si jamais ce n'est pas le cas.

C'est possible de vérifier si ça réagit pareil avec sceneControl ?

http://<LOGIN>:<PASS>@<IP>/api/sceneControl?id=<SCENE ID>&action=start

http://<LOGIN>:<PASS>@<IP>/api/sceneControl?id=<SCENE ID>&action=stop

Merci d'avance

 

Je vais mettre en ligne une version alpha incomplète ce soir pour que vous puissiez déjà commencer à tester

Lien vers le commentaire
Partager sur d’autres sites

Si auth invalide => Code 401

Si auth valide, et Scène ID valide => Code 202

Si auth valide, et Scène ID invalide => Code 404

 

Dans tous les cas, aucun JSON n'est renvoyé.


A noter que le "stop" renvoie un code 202, mais n'effectue en réalité aucune action si la scène est déjà arrêtée (donc le code retour est le même que la scène soit déjà arrêtée ou en cours d'exécution). Bon dans la pratique, sur la HC2, il est extrêmement rare de devoir arrêter manuellement une scène, en général les scènes ont 3 modes de fonctionnent (qui peuvent se combiner) :

- démarrage au boot de la HC2, et fonctionnement en boucle infinie, donc ne s'arrête jamais

- démarrage manuel via un clic de l'utilisateur (ou via l'API qu'on vient de tester), effectue quelques actions et s'arrête tout seul.

- démarrage automatique sur événement par trigger, effectue quelques actions et s'arrête tout seul.

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...