mamoreau Posté(e) le 10 décembre 2016 Signaler Posté(e) le 10 décembre 2016 (modifié) Bonjour, j'ai utilisé ce code LUA afin d'avoir un état de ma freebox player : local HC2 = Net.FHttp("192.168.0.199", 54243); local result, status, errorCode = HC2:GET("/device.xml"); if errorCode == 0 then if tonumber(status) == 200 then fibaro:debug('Status: ON') fibaro:setGlobal("FbxHD_etat", 1) fibaro:call(EtatFbxPlayer, "setProperty", "ui.Label.EtatFbxPlayer.value", On) else fibaro:debug('Status: OFF or In Standby Mode') fibaro:setGlobal("FbxHD_etat", 0) end else fibaro:debug('Connection refused') fibaro:setGlobal("FbxHD_etat", 0) end Mon problème est que mon libéllé EtatFbxPlayer n'affiche pas "On" Quelqu'un pourrait il m'aider ? Merci par avance. Modifié le 10 décembre 2016 par mamoreau
Berale64 Posté(e) le 10 décembre 2016 Signaler Posté(e) le 10 décembre 2016 Tu es sur de ça "ui.Label.EtatFbxPlayer.value" Je dirais que le point après Label est de trop.
mamoreau Posté(e) le 10 décembre 2016 Auteur Signaler Posté(e) le 10 décembre 2016 il y a 5 minutes, Berale24 a dit : Tu es sur de ça "ui.Label.EtatFbxPlayer.value" Je dirais que le point après Label est de trop. Bonjour si je fais ca en mode debug j'obtient : attempt to concatenate local 'deviceID' (a nil value)
Berale64 Posté(e) le 10 décembre 2016 Signaler Posté(e) le 10 décembre 2016 Dans ton code je ne vois pas la valeur associée à la variable EtatFbxPlayer Si tu as renommé le label EtatFbxPlayer alors la syntaxe est ui.EtatFbxPlayer.value
mamoreau Posté(e) le 10 décembre 2016 Auteur Signaler Posté(e) le 10 décembre 2016 il y a 2 minutes, Berale24 a dit : Dans ton code je ne vois pas la valeur associée à la variable EtatFbxPlayer Si tu as renommé le label EtatFbxPlayer alors la syntaxe est ui.EtatFbxPlayer.value Comme cela, ca ne fonctionne pas non plus : local HC2 = Net.FHttp("192.168.0.199", 54243); local result, status, errorCode = HC2:GET("/device.xml"); if errorCode == 0 then if tonumber(status) == 200 then fibaro:debug('Status: ON') fibaro:setGlobal("FbxHD_etat", 1) fibaro:call(EtatFbxPlayer, "setProperty", "ui.EtatFbxPlayer.value", On) else fibaro:debug('Status: OFF or In Standby Mode') fibaro:setGlobal("FbxHD_etat", 0) end else fibaro:debug('Connection refused') fibaro:setGlobal("FbxHD_etat", 0) end L'Id de l'etiquette est bien EtatFbxPlayer
Nikko Posté(e) le 11 décembre 2016 Signaler Posté(e) le 11 décembre 2016 Bonjour, Ce que @Berale24 t'écris c'est que dans cette ligne: fibaro:call(EtatFbxPlayer, "setProperty", "ui.EtatFbxPlayer.value", On) tu n'as pas définit EtatFbxPlayer, qui est juste après le call. fibaro:call(id , "setProperty", "ui.Label.value", texte) id est un nombre, représentant le numéro du VD; Dans ton cas EtatFbxPlayer, doit renvoyer vers un nombre; que tu auras définit, par exemple EtatFbxPlayer = fibaro:getSelfId() ou EtatFbxPlayer = 55 si ton device est le numéro 55 "ui.Label.value" est le nom du label; ici "ui.EtatFbxPlayer.value"; ok texte est de type string. Ici tu as mis On sans les guillemets, ce qui veut dire que tu inscrit le contenu d'une variable On que tu auras définit auparavant. Je pense que tu as oublié les guillemets
mamoreau Posté(e) le 11 décembre 2016 Auteur Signaler Posté(e) le 11 décembre 2016 Désole mais je n'ai pas compris : local HC2 = Net.FHttp("192.168.0.199", 54243); local result, status, errorCode = HC2:GET("/device.xml"); if errorCode == 0 then if tonumber(status) == 200 then fibaro:debug('Status: ON') fibaro:setGlobal("FbxHD_etat", 1) EtatFbxPlayer = fibaro:getSelfId() fibaro:call(EtatFbxPlayer, "setProperty", "ui.EtatFbxPlayer.value", On) else fibaro:debug('Status: OFF or In Standby Mode') fibaro:setGlobal("FbxHD_etat", 0) end else fibaro:debug('Connection refused') fibaro:setGlobal("FbxHD_etat", 0) end ca ne fonctionne pas
Nikko Posté(e) le 11 décembre 2016 Signaler Posté(e) le 11 décembre 2016 As tu toujours l'erreur ou est ce juste ton label qui n'est pas mis à jour???? local HC2 = Net.FHttp("192.168.0.199", 54243); local result, status, errorCode = HC2:GET("/device.xml"); if tonumber(errorCode) == 0 then if tonumber(status) == 200 then fibaro:debug('Status: ON') fibaro:setGlobal("FbxHD_etat", 1) fibaro:call(fibaro:getSelfId(), "setProperty", "ui.EtatFbxPlayer.value", "On") else fibaro:debug('Status: OFF or In Standby Mode') fibaro:setGlobal("FbxHD_etat", 0) end else fibaro:debug('Connection refused') fibaro:setGlobal("FbxHD_etat", 0) end
mamoreau Posté(e) le 11 décembre 2016 Auteur Signaler Posté(e) le 11 décembre 2016 il y a 12 minutes, Nikko a dit : As tu toujours l'erreur ou est ce juste ton label qui n'est pas mis à jour???? local HC2 = Net.FHttp("192.168.0.199", 54243); local result, status, errorCode = HC2:GET("/device.xml"); if tonumber(errorCode) == 0 then if tonumber(status) == 200 then fibaro:debug('Status: ON') fibaro:setGlobal("FbxHD_etat", 1) fibaro:call(fibaro:getSelfId(), "setProperty", "ui.EtatFbxPlayer.value", "On") else fibaro:debug('Status: OFF or In Standby Mode') fibaro:setGlobal("FbxHD_etat", 0) end else fibaro:debug('Connection refused') fibaro:setGlobal("FbxHD_etat", 0) end Plus d'erreur mais libel pas a jour
Nikko Posté(e) le 11 décembre 2016 Signaler Posté(e) le 11 décembre 2016 (modifié) Recopie le dernier code que je t'ai mis, car c'est ce que je t'expliquais, tu n'a pas les guillemets sur ton On. De plus ton label ne sera mis à jour que la première fois puisque: Si tu arrives à faire le Get alors label On et Variable globale à 1 Sinon variable globale à 0 Mais jamais tu ne demandes à ton label de mettre un autre état que on Donc si ton get aboutit alors ton label passe sur on mais au coup d'après si la requète n'aboutit pas, tu restes quand même sur on vu que tu ne modifies pas le label par la suite... Il aurait fallu un truc du genre: local HC2 = Net.FHttp("192.168.0.199", 54243); local result, status, errorCode = HC2:GET("/device.xml"); if tonumber(errorCode) == 0 then if tonumber(status) == 200 then fibaro:debug('Status: ON') fibaro:setGlobal("FbxHD_etat", 1) fibaro:call(fibaro:getSelfId(), "setProperty", "ui.EtatFbxPlayer.value", "On") else fibaro:debug('Status: OFF or In Standby Mode') fibaro:call(fibaro:getSelfId(), "setProperty", "ui.EtatFbxPlayer.value", "Off") fibaro:setGlobal("FbxHD_etat", 0) end else fibaro:debug('Connection refused') fibaro:setGlobal("FbxHD_etat", 0) fibaro:call(fibaro:getSelfId(), "setProperty", "ui.EtatFbxPlayer.value", "Refused") end Modifié le 11 décembre 2016 par Nikko 1
mamoreau Posté(e) le 11 décembre 2016 Auteur Signaler Posté(e) le 11 décembre 2016 il y a 1 minute, Nikko a dit : Recopie le dernier code que je t'ai mis, car c'est ce que je t'expliquais, tu n'a pas les guillemets sur ton On. De plus ton label ne sera mis àjour que la première fois puisque: Si tu arrives à faire le Get alors label On et Variable globale à 1 Sinon variable globale à 0 Mais jamais tu ne demandes à ton label de mettre un autre état que on Donc si ton get aboutit ton label passe sur on mais au coup d'après si la requète n'aboutit pas, tu restes quand même sur on vu que tu ne modifies pas le label par la suite... Il aurait fallu un truc du genre: local HC2 = Net.FHttp("192.168.0.199", 54243); local result, status, errorCode = HC2:GET("/device.xml"); if tonumber(errorCode) == 0 then if tonumber(status) == 200 then fibaro:debug('Status: ON') fibaro:setGlobal("FbxHD_etat", 1) fibaro:call(fibaro:getSelfId(), "setProperty", "ui.EtatFbxPlayer.value", "On") else fibaro:debug('Status: OFF or In Standby Mode') fibaro:call(fibaro:getSelfId(), "setProperty", "ui.EtatFbxPlayer.value", "Off") fibaro:setGlobal("FbxHD_etat", 0) end else fibaro:debug('Connection refused') fibaro:setGlobal("FbxHD_etat", 0) fibaro:call(fibaro:getSelfId(), "setProperty", "ui.EtatFbxPlayer.value", "Refused") end It's good un grand merci à toi
Messages recommandés