Aller au contenu

Impossible de modifier une variable


Messages recommandés

Posté(e)

Il me semble que ça se produit si tu mets autre chose qu'une string dans une variable.

Par exemple un number (ce qui semble être le cas)

 

L'API le tolère tout à fait, mais pas l'interface Web.

  • Upvote 1
Posté(e)

Effectivement,

Ceci vient de m'arriver encore une fois et oui j'y avais mis un integer.

 

De quelle api parles tu? il n'y a qu'une interface, celle web, non?

 

Posté(e)

Penses à faire un tostring() avant de faire le setVariable()

 

L'API, c'est celle que tu utilises en LUA, inconsciemment (via les commandes LUA), ou bien directement en attaquant l'API REST via HTTP (c'est ce que font les commandes LUA en fait)

Tu auras la syntaxe complète (ou presque) de l'API dans le Swagger de la HC3.

Posté(e) (modifié)

les messages ci-dessus m'ont mis un doute !! car j'utilise


if self:getVariable("V_Furtif_"..IdDevice) == "ON" then
	self:setVariable("V_Furtif_"..IdDevice,  "OFF")

Mais après vérification

local IdDevice = 258

self:warning(getName(IdDevice))
self:warning(type(IdDevice))
self:warning(type("V_Furtif_"..IdDevice))

[16.04.2021] [10:02:08] [WARNING] [QA_MAINTENANCE_260]: SP103 Escaliers 1°
[16.04.2021] [10:02:08] [WARNING] [QA_MAINTENANCE_260]: number
[16.04.2021] [10:02:08] [WARNING] [QA_MAINTENANCE_260]: string

 

la concaténation "V_Furtif_"..IdDevice) produit un string

 

Par contre c'est le contenu de la variable qui pose problème si # string c'est ça ??

 

Modifié par henri-allauch
Posté(e)

La concaténation d'un string avec un number donne toujours un string (le LUA fait automatiquement le tostring() sur le number), donc c'est normal.

 

Si par contre tu faisais ça :

local IdDevice = 258
self:setVariable(IdDevice)

Alors c'est bien un number qui serait stocké dans la variable du QuickApp.

Même si là encore, ça ne pose aucun souci à l'API qui le gère très bien, à l'inverse l'interface Web n'aime pas.

  • Thanks 1
×
×
  • Créer...