Page 1 sur 2
Comparaison de valeur de sonde de température
Publié : 11 juil. 2018, 06:57
par guigui1976
Bonjour, vous allez trouver cela bête comme question, mais je n'arrive pas à faire la comparaison deux valeurs de sonde température DS18B20.
Le but si la sonde 2 > à la sonde 4
arrêt de l'aqua_garage
sinon mise en marche de l'aqua_garage.
je joins mon ébauche si vous avez une piste,je suis preneur
je vous remercie
Code : Tout sélectionner
commandArray = {}
print ("Test de temperature 2");
local sonde1 = 'Bac_2' -- Nom de la sonde de température
local sonde2 = 'Bac_4'
if ('local value1= local value2') then
print ("off");
commandArray['Aqua_garage']='off'
else
commandArray['Aqua_garage']='On'
print ("on");
end
return commandArray
Re: Comparaison de valeur de sonde de température
Publié : 11 juil. 2018, 21:25
par guigui1976
Bonjour, j'ai modifié le code de ce matin, j'ai bien dans le fichier log l'information
2018-07-11 21:20:00.542 LUA: Test de temperature 2
2018-07-11 21:20:00.542 LUA: eteint
Mais je n'ai pas d'action sur le relai.
Si vous avez une piste, je suis preneur
Code : Tout sélectionner
[code]commandArray = {}
print ("Test de temperature 2");
local sonde1 = 'Bac_2' -- Nom de la sonde de température
local sonde2 = 'Bac_4'
if ('Bac_2 = Bac_4') then
print ("eteint");
commandArray["Sonoff_Garage"]='off'
else
commandArray['Sonoff_Garage']='on'
print ("allume");
end
return commandArray
[/code]
Re: Comparaison de valeur de sonde de température
Publié : 11 juil. 2018, 21:38
par thier
C'est pas On et Off.
Re: Comparaison de valeur de sonde de température
Publié : 11 juil. 2018, 21:53
par guigui1976
je te remercie pour ta réponse, je suis assez surpris, sur le site
https://easydomoticz.com/point-scripts-lua/
J'ai vu cela:
Code : Tout sélectionner
commandArray = {}
if (devicechanged['Materiel 1'] == 'On' ) then
commandArray['Materiel 2']='On'
end
return commandArray
Voilà pourquoi je suis partie sur ON et OFF
Re: Comparaison de valeur de sonde de température
Publié : 11 juil. 2018, 22:10
par thier
Tu étais parti sur on et off et non pas On et Off. Attention, la casse est importante en programmation.
Après je suis surpris par tes print qui par exemple ("eteint"); devrait s'écrire print ('eteint')
Pour finir je suis surpris aussi par la comparaison de température if ('Bac_2 = Bac_4') then qui devrait plutôt être if (otherdevices_temperature[sonde1] == otherdevices_temperature[sonde2]) then.
pour finir je serais curieux de savoir si un print('sonde1= '..sonde1) donne la température de la sonde (idem pour la sonde2). En Lua un simple = affecte une valeur. La comparaison "égal à" est ==.
Re: Comparaison de valeur de sonde de température
Publié : 11 juil. 2018, 22:23
par guigui1976
Merci pour cette claque informative

je teste une nouvelle version.
Je te remercie
Code : Tout sélectionner
commandArray = {}
if (otherdevices_svalues['Bac_2'] > otherdevices_svalues['Bac_4']) then
print ('eteint')
commandArray['Aqua_garage']='Off'
else
print ('allume')
commandArray['Aqua_garage']='On'
end
return commandArray
Re: Comparaison de valeur de sonde de température
Publié : 11 juil. 2018, 22:30
par thier
tu pourrais faire un print('tempbac2= '.. otherdevices_svalues['Bac_2']) et print('tempbac1= '.. otherdevices_svalues['Bac_1']) en début de script pour savoir si tu compare bien les valeurs de températures.
Re: Comparaison de valeur de sonde de température
Publié : 11 juil. 2018, 22:31
par guigui1976
un truc marrant, le dernier code fonctionne mais l'opérateur logique est inversé.
le Bac_2 est à 22,75°c et le Bac_4 est à 21,87°c, logiquement, je devrais avoir l'extinction mais la non.
Re: Comparaison de valeur de sonde de température
Publié : 11 juil. 2018, 22:35
par guigui1976
Voici le log des températures
2018-07-11 22:34:00.429 LUA: tempbac2= 22.75
2018-07-11 22:34:00.429 LUA: tempbac1= 21.87
Donc bac2 est bien supérieur au bac1
Re: Comparaison de valeur de sonde de température
Publié : 11 juil. 2018, 22:35
par thier
Dans les logs tu as eteint ou allume?