Page 2 sur 3
Re: lua: Comparaison temperature avec variable utilisateur
Publié : 14 sept. 2019, 16:19
par boum
vil1driver a écrit : 14 sept. 2019, 15:09
Je me sers énormément de cette méthode de comparaison sur les heures (ce code est d'ailleurs le mien) et elle est fonctionnelle.
Un print juste après le confirmerait..
Au temps pour moi. Oui ça marche. Et c'est lisible. Et on ne cherche pas à optimiser l'exécution au maximum

Re: lua: Comparaison temperature avec variable utilisateur
Publié : 14 sept. 2019, 16:31
par morninggoal
ma variable SMSenvoye est bien à 0 (j'ai rajouté le print). Quant a la declaration de l'heure elle fonctionne dans d'autres scripts (merci Vil1driver!). Le problème est surement sur la comparaison. Voici le code maintenant et pas d'evolution, je ne vais toujours pas jusqu'au print ('*******************'):
Code : Tout sélectionner
heure_actuelle= string.sub(os.date("%X"), 1, 5)
commandArray = {}
print (otherdevices_temperature['Temperature_etage'])
print (uservariables['TempMax'])
print (uservariables['SMSenvoye'])
if heure_actuelle < '20:00' then
if tonumber(otherdevices_temperature['Temperature_etage'] > tonumber(uservariables['TempMax']) and uservariables['SMSenvoye'] == '0') then
print('****************')
commandArray['SendNotification']='Temperature élévée: fermeture volets 50% !'
commandArray['Variable:SMSenvoye'] = tostring(1)
commandArray['Volet_Salle_a_manger 1_grand'] = 'Stopped'
commandArray['Volet_Salle_a_manger_2'] = 'Stopped'
commandArray['Volet_Cuisine'] = 'Stopped'
commandArray['Volet_Salon'] = 'Stopped'
end
end
return commandArray
Re: lua: Comparaison temperature avec variable utilisateur
Publié : 14 sept. 2019, 17:53
par lmet
Salut,
Manque une ")" c'est le genre d'erreur que l'on voit tout de suite en utilisant l'éditeur intégré.

- img_003.jpg (42.87 Kio) Consulté 3580 fois
Re: lua: Comparaison temperature avec variable utilisateur
Publié : 14 sept. 2019, 17:57
par morninggoal
J'utilise l'editeur integré, il ne manque pas de parenthese si tu prends tte la ligne..
Re: lua: Comparaison temperature avec variable utilisateur
Publié : 14 sept. 2019, 18:02
par vil1driver
Vous avez raison tous les 2
Le nombre est bon mais pas les positions
Dans ta ligne, le tonumber englobe tout car tu fermes sa parenthèse à la toute fin.
Ce n'est pas correcte.
Tu es à une ) de la réussite

Re: lua: Comparaison temperature avec variable utilisateur
Publié : 14 sept. 2019, 18:19
par lmet
Oui il y a le compte en termes de parenthèses mais :
if tonumber(otherdevices_temperature['Temperature_etage'] > tonumber(uservariables['TempMax']) and uservariables['SMSenvoye'] == '0')
Tu fais un tonumber des trois conditions ... c'est tout.
Je verrais plutôt cela :
if tonumber(otherdevices_temperature['Temperature_etage']) > tonumber(uservariables['TempMax']) and uservariables['SMSenvoye'] == '0'
En fermant la parenthèse après le premier tonumber au lieu à la fin.
Re: lua: Comparaison temperature avec variable utilisateur
Publié : 14 sept. 2019, 18:37
par morninggoal
merci pour toute vos explications... mais ca ne suffit pas...
toujours rien dans les logs
Re: lua: Comparaison temperature avec variable utilisateur
Publié : 14 sept. 2019, 19:01
par vil1driver
Essai d'ajouter à tout hasard une ( juste après if et une ) juste avant then, pour chaqun des tests.
Sinon tu as bien choisis Time comme type de script ?
Re: lua: Comparaison temperature avec variable utilisateur
Publié : 14 sept. 2019, 19:07
par boum
Dans ces cas-là, faut afficher exactement tes tests pour voir jusqu'où le script arrive :
Code : Tout sélectionner
heure_actuelle= string.sub(os.date("%X"), 1, 5)
commandArray = {}
print ('Test heure = ' ..tostring(heure_actuelle < '20:00'))
if (heure_actuelle < '20:00') then
print ('Test temp = ' ..tostring((otherdevices_temperature['Temperature_etage'] > tonumber(uservariables['TempMax'])) ) )
print ('Test sms = ' ..tostring(uservariables['SMSenvoye'] == '0') )
print ('Test global = ' ..tostring((otherdevices_temperature['Temperature_etage'] > tonumber(uservariables['TempMax'])) and (uservariables['SMSenvoye'] == '0')) ) -- pas essentiel normalement
if (tonumber(otherdevices_temperature['Temperature_etage']) > tonumber(uservariables['TempMax']) and uservariables['SMSenvoye'] == '0') then
print('******** BINGO ********')
commandArray['SendNotification']='Temperature élévée: fermeture volets 50% !'
commandArray['Variable:SMSenvoye'] = '1'
end
end
return commandArray
Re: lua: Comparaison temperature avec variable utilisateur
Publié : 14 sept. 2019, 19:19
par vil1driver
Si ce que Boum a écrit ne fonctionne pas et que le type de script est bien réglé sur TIME
Personnellement je tenterais de l'écrire dans un fichier (à l'ancienne mode

ma préférée )