Arbu-jl Posté(e) le 18 avril 2015 Signaler Posté(e) le 18 avril 2015 Bonjour à tous, j'ai fait un VD afin de récupérer l'état de mes lampes HUE philips. N'étant de loin pas un programmeur, je me suis inspiré de code LUA trouvé sur ce forum. Entre autre j'ai repris le VD de Steven pour l'état des entrées sorties de l'IPX. Merci à tous les autres pour leurs excellentes contributions. Mon VD "Hue's Etat" fonctionne, mais je pense que l'on pourrait améliorer et simplifier le code, j'aurai donc besoin de votre aide si c'est possible. local status = "" HueUser = "newdeveloper"; HueAddress = "192.168.0.195"; HuePort = 80 hueCon = Net.FHttp(HueAddress,HuePort) HueDevice1 = 1 response = hueCon:GET('/api/'..HueUser..'/lights/'..HueDevice1); data1 = json.decode(response).state.on if data1 == true then data1 = " â– " else data1 = " â–¡ " end fibaro:call(195, "setProperty", "ui.Label1.value", data1) HueDevice2 = 2 response = hueCon:GET('/api/'..HueUser..'/lights/'..HueDevice2); data2 = json.decode(response).state.on if data2 == true then data2 = " â– " else data2 = " â–¡ " end fibaro:call(196, "setProperty", "ui.Label1.value", data2) HueDevice3 = 3 response = hueCon:GET('/api/'..HueUser..'/lights/'..HueDevice3); data3 = json.decode(response).state.on if data3 == true then data3 = " â– " else data3 = " â–¡ " end fibaro:call(268, "setProperty", "ui.Label1.value", data3) HueDevice4 = 4 response = hueCon:GET('/api/'..HueUser..'/lights/'..HueDevice4); data4 = json.decode(response).state.on if data4 == true then data4 = " â– " else data4 = " â–¡ " end fibaro:call(201, "setProperty", "ui.Label1.value", data4) HueDevice5 = 5 response = hueCon:GET('/api/'..HueUser..'/lights/'..HueDevice5); data5 = json.decode(response).state.on if data5 == true then data5 = " â– " else data5 = " â–¡ " end fibaro:call(202, "setProperty", "ui.Label1.value", data5) HueDevice6 = 6 response = hueCon:GET('/api/'..HueUser..'/lights/'..HueDevice6); data6 = json.decode(response).state.on if data6 == true then data6 = " â– " else data6 = " â–¡ " end fibaro:call(203, "setProperty", "ui.Label1.value", data6) HueDevice7 = 7 response = hueCon:GET('/api/'..HueUser..'/lights/'..HueDevice7); data7 = json.decode(response).state.on if data7 == true then data7 = " â– " else data7 = " â–¡ " end fibaro:call(232, "setProperty", "ui.Label1.value", data7) HueDevice8 = 8 response = hueCon:GET('/api/'..HueUser..'/lights/'..HueDevice8); data8 = json.decode(response).state.on if data8 == true then data8 = " â– " else data8 = " â–¡ " end fibaro:call(233, "setProperty", "ui.Label1.value", data8) HueDevice9 = 9 response = hueCon:GET('/api/'..HueUser..'/lights/'..HueDevice9); data9 = json.decode(response).state.on if data9 == true then data9 = " â– " else data9 = " â–¡ " end fibaro:call(194, "setProperty", "ui.Label1.value", data9) status = data1 status = status ..data2 status = status ..data3 status = status ..data4 status = status ..data5 status = status ..data6 status = status ..data7 status = status ..data8 status = status ..data9 fibaro:debug(status) fibaro:call(fibaro:getSelfId(), "setProperty", "ui.Label1.value", status) fibaro:setGlobal("HueDevice_1", data1) fibaro:setGlobal("HueDevice_2", data2) fibaro:setGlobal("HueDevice_3", data3) fibaro:setGlobal("HueDevice_4", data4) fibaro:setGlobal("HueDevice_5", data5) fibaro:setGlobal("HueDevice_6", data6) fibaro:setGlobal("HueDevice_7", data7) fibaro:setGlobal("HueDevice_8", data8) fibaro:setGlobal("HueDevice_9", data9) Pourriez-vous me donner un coup de main ? Merci pour votre aide. 2
tcheri Posté(e) le 26 juillet 2015 Signaler Posté(e) le 26 juillet 2015 Salut, J'aimais bien ton idée de string avec des petits carrés pour montrer l'état. Je suis reparti de ton code. Voilà : - dans lamp, tu mets les ID de tes lampes - dans l'adresse IP du VD, l'adresse de la base Hue id=fibaro:getSelfId() hueIP = fibaro:get(id, "IPAddress"); hueuser = "newdeveloper"; huePort = 80; lamp = {1,2,3,4,5,6,7,8,9,10,11,12,13} nblamp = 13 local strAffiche = "" i = 1 while i <= nblamp do huelightid=lamp[i] Hue = Net.FHttp(hueIP,huePort) response ,status, errorCode = Hue:GET('/api/'..hueuser..'/lights/'..tostring(huelightid)); fibaro:debug(response) data = json.decode(response) if tostring(data.state.on) == "true" and tostring(data.state.reachable) == "true" then strAffiche = strAffiche .. " â– " else strAffiche = strAffiche .. " â–¡ " end i = i + 1 end fibaro:call(id, "setProperty", "ui.Label1.value", strAffiche)
Arbu-jl Posté(e) le 27 juillet 2015 Auteur Signaler Posté(e) le 27 juillet 2015 Hello, merci beaucoup tcheri Je vais tester tout cela jeudi, merci beaucoup d'avoir pris le temps :-)
Messages recommandés