dJuL Posté(e) le 16 septembre 2017 Signaler Posté(e) le 16 septembre 2017 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 ! 3
Cardane Posté(e) le 16 septembre 2017 Signaler Posté(e) le 16 septembre 2017 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
Lazer Posté(e) le 16 septembre 2017 Signaler Posté(e) le 16 septembre 2017 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
Nico Posté(e) le 16 septembre 2017 Signaler Posté(e) le 16 septembre 2017 Tip top, j'ai hâte de suivre tout ça, et dispo pour le beta test ! N'hésites pas si tu as d'autres questions.
dJuL Posté(e) le 16 septembre 2017 Auteur Signaler Posté(e) le 16 septembre 2017 Merci pour vos réponses
dJuL Posté(e) le 17 septembre 2017 Auteur Signaler Posté(e) le 17 septembre 2017 (modifié) 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é le 17 septembre 2017 par dJuL
Lazer Posté(e) le 17 septembre 2017 Signaler Posté(e) le 17 septembre 2017 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.
dJuL Posté(e) le 17 septembre 2017 Auteur Signaler Posté(e) le 17 septembre 2017 Ok merci Lazer Ça m'arrange pas cette histoire de réponses non uniformisées, et n'ayant pas la box ça va pas être simple...
Lazer Posté(e) le 17 septembre 2017 Signaler Posté(e) le 17 septembre 2017 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" tu peux préparer une liste des API que tu souhaites qu'on teste, et on te fera un retour.
pepite Posté(e) le 18 septembre 2017 Signaler Posté(e) le 18 septembre 2017 Bonjour, Je commente pour que vous sachiez que je suis la aussi. Bon les experts t'ont deja dit beaucoup ;-) De ce que j'ai pu voir dans ta liste en diagonal, il manquerait hc_setGlobal
dJuL Posté(e) le 18 septembre 2017 Auteur Signaler Posté(e) le 18 septembre 2017 Ça avance tranquillement. J'ai fini d'intégrer le contrôleur Home Center dans JPI. J'ai ajouter l’authentification dans les requêtes HTTP et la méthode PUT Il me reste plus qu'à créer les actions... 2
Nico Posté(e) le 19 septembre 2017 Signaler Posté(e) le 19 septembre 2017 Top top top ! J'ai hâte de tester tout ça ! Il faudrait que je le mette déjà sur ma passerelle Jeedom Du coup tu as trouvé une HC2 pour tester ?
dJuL Posté(e) le 19 septembre 2017 Auteur Signaler Posté(e) le 19 septembre 2017 Non, je vais faire sans, comme j'ai fais pour l'eedomus. Mais avec le forum et quelques testeurs ça devrait le faire
Nico Posté(e) le 19 septembre 2017 Signaler Posté(e) le 19 septembre 2017 Oki, pas de soucis, on testera !
BenjyNet Posté(e) le 19 septembre 2017 Signaler Posté(e) le 19 septembre 2017 Intéressant tout ça ... heu sinon... ça sert à quoi ?
pepite Posté(e) le 19 septembre 2017 Signaler Posté(e) le 19 septembre 2017 Oui, ce serait bien que je le mette aussi sur jeedom pour comprendre ;-)
dJuL Posté(e) le 19 septembre 2017 Auteur Signaler Posté(e) le 19 septembre 2017 Voici un petit résumé (incomplet mais la base y est) pour comprendre à quoi ça peu servir : http://forum.eedomus.com/viewtopic.php?f=16&t=5255
pepite Posté(e) le 19 septembre 2017 Signaler Posté(e) le 19 septembre 2017 Merci @dJuL J'ai une tablette qui n'est pas encore au mur, je sens que je vais mettre JPI pour gerer aussi bien HC2 que Jeedom :-) avec les intearctions ca doit le faire ;-)
dJuL Posté(e) le 19 septembre 2017 Auteur Signaler Posté(e) le 19 septembre 2017 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
Lazer Posté(e) le 19 septembre 2017 Signaler Posté(e) le 19 septembre 2017 Si ID existant : Code retour : 202 JSON : {"id":0,"jsonrpc":"2.0","result":{"result":0}} Si ID inexistant : Code retour : 404 JSON : vide 1
dJuL Posté(e) le 19 septembre 2017 Auteur Signaler Posté(e) le 19 septembre 2017 Super merci Et on a bien un code 401 en cas de mauvaise authentification ?
Lazer Posté(e) le 20 septembre 2017 Signaler Posté(e) le 20 septembre 2017 Oui tout à fait, on a toujours le code HTTP 401 en cas de mauvaise authentification, sans aucun JSON renvoyé.
dJuL Posté(e) le 20 septembre 2017 Auteur Signaler Posté(e) le 20 septembre 2017 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
Lazer Posté(e) le 20 septembre 2017 Signaler Posté(e) le 20 septembre 2017 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.
Messages recommandés