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 :oops:

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
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... :x

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 )