Au temps pour moi. Oui ça marche. Et c'est lisible. Et on ne cherche pas à optimiser l'exécution au maximumvil1driver 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..
lua: Comparaison temperature avec variable utilisateur
Re: lua: Comparaison temperature avec variable utilisateur
Domoticz v2022.2 sur linux-mint / Z-Wave-JS / RFXCom / Zigbee2MQTT
-
morninggoal
- Messages : 33
- Inscription : 06 sept. 2019, 12:13
Re: lua: Comparaison temperature avec variable utilisateur
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 commandArrayRe: lua: Comparaison temperature avec variable utilisateur
Salut,
Manque une ")" c'est le genre d'erreur que l'on voit tout de suite en utilisant l'éditeur intégré.
Manque une ")" c'est le genre d'erreur que l'on voit tout de suite en utilisant l'éditeur intégré.
-
morninggoal
- Messages : 33
- Inscription : 06 sept. 2019, 12:13
Re: lua: Comparaison temperature avec variable utilisateur
J'utilise l'editeur integré, il ne manque pas de parenthese si tu prends tte la ligne..
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: lua: Comparaison temperature avec variable utilisateur
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
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
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: lua: Comparaison temperature avec variable utilisateur
Oui il y a le compte en termes de parenthèses mais :
Je verrais plutôt cela :
Tu fais un tonumber des trois conditions ... c'est tout.if tonumber(otherdevices_temperature['Temperature_etage'] > tonumber(uservariables['TempMax']) and uservariables['SMSenvoye'] == '0')
Je verrais plutôt cela :
En fermant la parenthèse après le premier tonumber au lieu à la fin.if tonumber(otherdevices_temperature['Temperature_etage']) > tonumber(uservariables['TempMax']) and uservariables['SMSenvoye'] == '0'
-
morninggoal
- Messages : 33
- Inscription : 06 sept. 2019, 12:13
Re: lua: Comparaison temperature avec variable utilisateur
merci pour toute vos explications... mais ca ne suffit pas... 
toujours rien dans les logs
toujours rien dans les logs
- Pièces jointes
-
- Capture.PNG (38.91 Kio) Consulté 3561 fois
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: lua: Comparaison temperature avec variable utilisateur
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 ?
Sinon tu as bien choisis Time comme type de script ?
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: lua: Comparaison temperature avec variable utilisateur
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 commandArrayDomoticz v2022.2 sur linux-mint / Z-Wave-JS / RFXCom / Zigbee2MQTT
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: lua: Comparaison temperature avec variable utilisateur
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 )
Personnellement je tenterais de l'écrire dans un fichier (à l'ancienne mode
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien