Aller au contenu

Problème Code LUA


Messages recommandés

Posté(e) (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é par mamoreau
Posté(e)
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)

 

 

Posté(e)

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

Posté(e)
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

Posté(e)

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

 

 

 

Posté(e)

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

Posté(e)

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 

 

Posté(e)
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

Posté(e) (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é par Nikko
  • Upvote 1
Posté(e)
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

×
×
  • Créer...