Domotique-Home Posté(e) le 10 avril 2014 Signaler Posté(e) le 10 avril 2014 Bonjour,Vous êtes nombreux a me demander la suite des Leçons LUA pour HC2, ben….. voilà la suiteAujourd’hui je vais vous parler de l’API Net.Fhttp Cette API nous permet d’envoyer des commandes via HTTP vers notre HC2 ou d’autre appareils.Je vais vous expliquer comment cloner la télécommande de la Freebox V6 et commander la télé via HC2.Free a mis a notre disposition des divers API, on va s’intéresser particulièrement a une pour l’intégrer dans notre HC2Essayer de taper dans votre navigateur web la ligne suivante: http://hd1.freebox.f...e_control?code= &key=power Le [code TELECOMMANDE] se trouve dans le menu Réglages/Télécommande de votre FreeBoxComme vous pouvez voir cette commande éteint/ allume votre FreeBox.Donc maintenant il nous reste juste de créer une télécommande virtuel dans notre HC2.Pour cela nous allons utiliser un Module Virtuel et une variable global.Etape 1Créer une nouvelle variable et attribuez lui la valeur de votre [code TELECOMMANDE]Nommez la « CodeTeleFree »Etape 2Créer un nouveau module virtuel et nommez le « Télécommande« .Ajouter exactement le même nombre de boutons que sur votre Télécommande original. Etape 3Passons a un peu de code maintenant:Dans chaque bouton il faut saisir le code correspondant aux API Free.Pour cela il faut traduire notre ligne « http://hd1.freebox.f...e_control?code=[code TELECOMMANDE]&key=power » en code LUA -- on déclare une variable local CodeTeleFree et on lui attribue -- le code de notre télécommande stocké précédemment dans la variable HC2 local CodeTeleFree = fibaro:getGlobal("CodeTeleFree"); -- on crée une instance HC2 et on lui attribue l adresse de notre FreeBox HC2 = Net.FHttp("hd1.freebox.fr"); -- on attribue la suite de notre adresse avec le code télécommande response = HC2:GET("/pub/remote_control?code=" ..CodeTeleFree.. "&key=power") Copiez ce code dans chaque touche en remplacent « power » par le code touche correspondant. Voilà le code de chaque touche de la V6:power : la touche rouge on/off0 à 9 : les touches 0 à 9vol_inc : augmente le volumevol_dec : diminue le volumeprgm_inc : incrémente de 1 le programmeprgm_dec : décrémente de 1 le programmeok : touche OKup, right, down, left : les touches directionnelles (haut, droite, bas, gauche)mute : la touche de mise en sourdinehome : la touche freerec : la touche d’enregistrementbwd : la touche de retour en arrière (<<)prev : la touche « précédent » (|<<)play : la touche lecture/pausefwd : la touche d’avance rapide (>>) next : la touche « suivant » (>>|)red : le bouton rougegreen : le bouton vertyellow : le bouton jauneblue : le bouton bleu Pour ceux qui ne veulent pas tous faire soit même voilà le lien pour télécharger le module virtuel:http://domotique-hom...lécommande.vfib 1
Shad Posté(e) le 10 avril 2014 Signaler Posté(e) le 10 avril 2014 Bravo, même si na me servira pas àmoi
Steven Posté(e) le 10 avril 2014 Signaler Posté(e) le 10 avril 2014 Sans aucune méchanceté, mais cela nous explique parfaitement comment cloner une télécommande de Free mais pas grand chose de l'API, ni de LUA ? Peux-t-être que changer le titre serait judicieux.
Domotique-Home Posté(e) le 10 avril 2014 Auteur Signaler Posté(e) le 10 avril 2014 Oui l'exemple montre comment cloner une télécommande Free en utilisant l'API Net.FHttp et la méthode GET(uri) il est modifiable pour d'autre utilisation. par contre effectivement il est important de préciser que pour l'utiliser avec HC2 il faut s'identifier avec setBasicAuthentication Voila des petit exemple: --création d'instance et identification avec HC2 HC2 = Net.FHttp("192.168.100.119") HC2:setBasicAuthentication("admin","admin") -- extraction des informations sur module ID=316 response = HC2:GET("/api/devices?id=316") -- décodage des informations response = json.decode(response) if response.properties.value == "0" then --si désactivé on active module avec ID=316 HC2:GET("/api/callAction?deviceID=316&name=turnOn") --on affiche l'information sous le module fibaro:log("device (id=316) turned on") else --si activé on désactive module avec ID=316 HC2:GET("/api/callAction?deviceID=316&name=turnOff") --on affiche l'information sous le module fibaro:log("device (id=316) turned off") end
q.philippe Posté(e) le 10 avril 2014 Signaler Posté(e) le 10 avril 2014 Super, par contre je me rends conte que c'est au niveau des logos que ca pèche .Je veux bien créer des logos si on m'explique.J'utilise paint pour redimensionner mais là , sur ton module on pourrait mettre la télécommande avec le chiffre 1de la freebox en gros,gras,pour le 1, un 2,ainsi de suite. comment peut on travailler sur les logos?logiciels j'entends...avec les fonds transparent.
Domotique-Home Posté(e) le 10 avril 2014 Auteur Signaler Posté(e) le 10 avril 2014 C'est une bonne idée j'ai commencé a faire des icônes dans ce style la une fois terminé je les publie Pour le logiciel utilise Photoshop ou Gimp
Ludwig Posté(e) le 11 avril 2014 Signaler Posté(e) le 11 avril 2014 Orange met il également a disposition une API pour la livebox play? J ai cru comprendre que c était possible dans ce cas il faut juste adapter le script?
Domotique-Home Posté(e) le 11 avril 2014 Auteur Signaler Posté(e) le 11 avril 2014 Bonjour @Ludwig, Normalement oui , je n'ai pas pu tester mais essai ça COMMANDS[0] = "http://192.168.1.11:8080/remoteControl/cmd?operation=10";//info decodeur COMMANDS[1] = "http://192.168.1.11:8080/remoteControl/cmd?operation=01&key=108&mode=0";//touche info COMMANDS[2] = "http://192.168.1.11:8080/remoteControl/cmd?operation=01&key=114&mode=0";//vol- COMMANDS[3] = "http://192.168.1.11:8080/remoteControl/cmd?operation=01&key=115&mode=0";//vol+ COMMANDS[4] = "http://192.168.1.11:8080/remoteControl/cmd?operation=01&key=158&mode=0";//retour ? COMMANDS[5] = "http://192.168.1.11:8080/remoteControl/cmd?operation=01&key=352&mode=0";//ok COMMANDS[6] = "http://192.168.1.11:8080/remoteControl/cmd?operation=01&key=358&mode=0"; //?? COMMANDS[7] = "http://192.168.1.11:8080/remoteControl/cmd?operation=01&key=365&mode=0"; // COMMANDS[8] = "http://192.168.1.11:8080/remoteControl/cmd?operation=01&key=402&mode=0"; //P+ COMMANDS[9] = "http://192.168.1.11:8080/remoteControl/cmd?operation=01&key=403&mode=0"; //P- COMMANDS[10] = "http://192.168.1.11:8080/remoteControl/cmd?operation=01&key=512&mode=0";//touche 0 COMMANDS[11] = "http://192.168.1.11:8080/remoteControl/cmd?operation=01&key=513&mode=0";//touche 1 COMMANDS[12] = "http://192.168.1.11:8080/remoteControl/cmd?operation=01&key=514&mode=0";//touche 2 COMMANDS[13] = "http://192.168.1.11:8080/remoteControl/cmd?operation=01&key=515&mode=0";//touche 3 COMMANDS[14] = "http://192.168.1.11:8080/remoteControl/cmd?operation=01&key=516&mode=0";//touche 4 COMMANDS[15] = "http://192.168.1.11:8080/remoteControl/cmd?operation=01&key=517&mode=0";//touche 5 COMMANDS[16] = "http://192.168.1.11:8080/remoteControl/cmd?operation=01&key=518&mode=0";//touche 6 COMMANDS[17] = "http://192.168.1.11:8080/remoteControl/cmd?operation=01&key=519&mode=0";//touche 7 COMMANDS[18] = "http://192.168.1.11:8080/remoteControl/cmd?operation=01&key=520&mode=0";//touche 8 COMMANDS[19] = "http://192.168.1.11:8080/remoteControl/cmd?operation=01&key=521&mode=0";//touche 9
Ludwig Posté(e) le 11 avril 2014 Signaler Posté(e) le 11 avril 2014 Je te remercie je testerai des que j aurai reçu ma HC2
zeldoi5 Posté(e) le 8 décembre 2014 Signaler Posté(e) le 8 décembre 2014 Salut Rems Je déterre un peu, mais j'ai une question : l'api netfhttp est utilisable directement en LUA dans une scène ? En effet, plutôt que d'appeler un bouton d'un VD, je voulais le faire directe dans une scène Car j'ai une erreur dans ma scène : HC2 = Net.FHttp("api.pushingbox.com") [ERROR] 15:22:27: line 9: attempt to index global 'Net' (a nil value) Edit : Apparemment, la commande Net.FHttp n'est pas accessible dans une scène mais seulement dans un device virtuel...
Krikroff Posté(e) le 8 décembre 2014 Signaler Posté(e) le 8 décembre 2014 je passe par ici donc je vais répondre: NON ! Pas de FHttp dans les scènes
Domotique-Home Posté(e) le 8 décembre 2014 Auteur Signaler Posté(e) le 8 décembre 2014 Merci Krikroff +zeldoi5 tu peux toujours créer un VD et l'appeler dans ta scène mais bon.....
zeldoi5 Posté(e) le 8 décembre 2014 Signaler Posté(e) le 8 décembre 2014 C'est effectivement ce que j'ai fait Mais créer des boutons pour faire un GET/POST HTTP, je trouvais que c'était un peu comme aller chercher du pain avec un tank : c'est un peu lourd ! (Mais ça marche ! ) Un bon petit tuto en tous cas Rems
Bono2007 Posté(e) le 11 novembre 2016 Signaler Posté(e) le 11 novembre 2016 Bonjour, j'ai un pb avec cette fonction ici : lien Si qq'un sait...
Messages recommandés