[Resolu]Problème de variable utilisateur

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
Wolfen38
Messages : 1983
Inscription : 19 oct. 2017, 14:49

[Resolu]Problème de variable utilisateur

Message par Wolfen38 »

Salut,

J'utilise une uservariable pour récupérer la température la plus chaude heure après heure, voila mon script :

Code : Tout sélectionner

commandArray = {}

time=os.time()
-- Récupère l'heure actuelle.
local heure = os.date('%H:%M')
local debug = true
--recupere les minutes
minutes=tonumber(os.date('%M',time))
hours=tonumber(os.date('%H',time))

if minutes==0 then
print("hello")
Tempext , hum , autre = otherdevices_svalues['Temperature exterieure']:match("([^;]+);([^;]+);([^;]+)")
Tempmax = uservariables['Temp-max']
if Tempext >= Tempmax then
commandArray['Variable:Temp-max']=tostring(Tempext)
end
end

return commandArray
J'au une valeur dans ma variable Temp-max de DZ à 6h ce matin, puis plus rien depuis.

J'ai raté quoi ?

Merci.
Dernière modification par Wolfen38 le 28 mai 2021, 17:44, modifié 1 fois.
Wolfen38
Messages : 1983
Inscription : 19 oct. 2017, 14:49

Re: Problème de variable utilisateur

Message par Wolfen38 »

J'ai remis un print apres le 2ème if, et rien ne se fait, donc c'est la condition qui merde, mais je vois pas pourquoi.

Sachant qu'en ce moment Tempext=24 et Tempmax=10, ca devrait le faire.

Je me suis dit probleme de chaine et de nombre, mais si je crée une variable essai = Tempext + Tempmax, ca fonctionne, j'ai bien le bon résultat.

Je comprends pas.
Wolfen38
Messages : 1983
Inscription : 19 oct. 2017, 14:49

Re: [Resolu]Problème de variable utilisateur

Message par Wolfen38 »

Je me réponds, en ajoutant un Tempmax = tonnumber(Tempmax) et idem pour Tempext, ca fonctionne.

Par contre je pige pas pourquoi.
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: [Resolu]Problème de variable utilisateur

Message par Keros »

Tu enregistres la variable Temp-max avec la ligne commandArray['Variable:Temp-max']=tostring(Tempext) donc Temp-max est de type string.

Tu récupères cette variable pour faire une comparaison numéraire sauf que tu as un string dans la variable > d'où la solution avec tonumber().
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Wolfen38
Messages : 1983
Inscription : 19 oct. 2017, 14:49

Re: [Resolu]Problème de variable utilisateur

Message par Wolfen38 »

Ça qui m'étonne c'est que c'est du string en effet, mais que j'arrive à additionner les 2, ce qui me paraît impossible avec du string

Envoyé de mon Mi 9T Pro en utilisant Tapatalk

Répondre