Page 1 sur 1

Truc que j'ai pas compris sur variable local

Publié : 29 janv. 2017, 20:38
par Stef17
Salut
y a un truc que j'ai pas du comprendre...
alors si quelqu'un à la soluce ou un lien explicatif clair...

alors voila
Imaginez un interrupteur virtuel appelé grandfroid.
Je voudrais que s'il est 'On' une valeur que je nomme major soit égal 1 sinon égal à 0
Puis j'aimerais vérifier sa validité en le visionnant dans les log (pour être sûr avant de pouvoir l'utiliser ;-) )

J'ai essayé ceci (et aussi avec un simple else)

Code : Tout sélectionner

if (otherdevices[grandfroid] == 'On') then
major = 1 
elseif (otherdevices[grandfroid] == 'Off') then
major = 0 
end
major = tonumber(major) -- mise au format chiffre
print("major egal a "..major)
Pour l'instant j'ai une erreur :
mesfonctions.lua:15: attempt to concatenate global 'major' (a nil value)
Merci d'avance

Re: Truc que j'ai pas compris sur variable local

Publié : 29 janv. 2017, 20:47
par thier
Enlevé la ligne major = tonumber....

Re: Truc que j'ai pas compris sur variable local

Publié : 29 janv. 2017, 20:51
par Stef17
avec ou sens ligne " major = tonumber...." c'est pareil, même punition

Re: Truc que j'ai pas compris sur variable local

Publié : 29 janv. 2017, 20:54
par vil1driver
Salut,

Oui mais c'est déjà mieux sans, car passer un nombre en nombre bon... :?

Le pb c'est qu'il manque des ' autour de grandfroid

Re: Truc que j'ai pas compris sur variable local

Publié : 29 janv. 2017, 21:08
par Stef17
Nickel bien vue...
Sur tes conseil j'ai donc mis

Code : Tout sélectionner

if (otherdevices['grandfroid'] == 'On') then
	major = 1 
elseif (otherdevices['grandfroid'] == 'Off') then
	major = 0 
end
print("major egal a "..major)
Et comme tu dois t'en douter ben ça fonctionne... :evil: satanés '

Merci :roll:

Re: Truc que j'ai pas compris sur variable local

Publié : 30 janv. 2017, 07:16
par lost
Stef17 a écrit :avec ou sens ligne " major = tonumber...." c'est pareil, même punition
Attention aux variables utilisateurs et Lua, il y a une contrainte si on n'utilise pas des chaines de caractères, cf:
https://www.domoticz.com/wiki/User_variables

"When using user variables in Lua, keep in mind the following: variables are always stored as a string in the Domoticz database, regardless of their type. The variables are passed in arrays to Lua, at that point they will always be strings also."

Re: Truc que j'ai pas compris sur variable local

Publié : 30 janv. 2017, 07:43
par vil1driver
Oui mais ici on parle de variables locales (internes au script) ;)