Script Lua qui ne se déclenche pas toujours

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 <\>.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script Lua qui ne se déclenche pas toujours

Message par vil1driver »

Salut,

Je n'ai jamais vu de script sans erreur ne pas fonctionner !

La première chose à faire c'est d'ajouter des print à différents endroits du script pour connaître l'état des switch et si les actions sont lancées.

Et de surveiller les logs de domoticz
Également ceux de chaque capteur actionneurs..

Une lampe qui ne s'allume pas ne veut pas dire que l'ordre n'est pas envoyé
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
zerko91
Messages : 119
Inscription : 09 janv. 2016, 17:17
Localisation : Essonne

Re: Script Lua qui ne se déclenche pas toujours

Message par zerko91 »

vil1driver a écrit :Salut,

Je n'ai jamais vu de script sans erreur ne pas fonctionner !

La première chose à faire c'est d'ajouter des print à différents endroits du script pour connaître l'état des switch et si les actions sont lancées.

Et de surveiller les logs de domoticz
Également ceux de chaque capteur actionneurs..

Une lampe qui ne s'allume pas ne veut pas dire que l'ordre n'est pas envoyé
Bonsoir,
Je suis peut-être obtus, mais dans les logs que j'ai mis:

à 7h48, le détecteur est reconnu en ouverture, l'e-mail est envoyé
à 9h41, le détecteur est reconnu en ouverture, pas d'e-mail envoyé
Cordialement Michel
zerko91
Messages : 119
Inscription : 09 janv. 2016, 17:17
Localisation : Essonne

Re: Script Lua qui ne se déclenche pas toujours

Message par zerko91 »

papoo a écrit :j'ai un peu le même problème, je teste 3 conditions 2 or + 1 and sur la meme ligne et regulierement il ne prend pas en compte mon and

Code : Tout sélectionner

if (devicechanged['Ouvertures'] == 'Off' or devicechanged['Detecteurs'] == 'On') and otherdevices_scenesgroups['Présence'] == 'Off' then
je suis en train de tester les meme conditions sur deux lignes et ça a l'air plus stable
pour toi ça donnerai

Code : Tout sélectionner

commandArray = {}
if devicechanged['Ouv Porte Entree'] == 'Open' then --on test d'abord le changement du device
	if otherdevices['Activation alarme'] == 'On') then --ensuite on verifie que l'alarme est sur on 
	commandArray['SendEmail']='Porte Entree#Ouverture#mon-adresse@gmail.com'
	end
end
return commandArray
Dis moi si cela résoud ton problème
Bonsoir,
Je viens de tester ça, mais j'ai du faire une erreur quelque part, voilà :

Code : Tout sélectionner

commandArray = {}
if devicechanged['Ouv Porte Entree'] == 'Open' then --on test d'abord le changement du device
   if otherdevices['Activation alarme'] == 'On')then --ensuite on verifie que l'alarme est sur on 
   commandArray['SendEmail']='Porte Entree#Ouverture#monadresse@gmail.com'
   end
end
return commandArray]
et le log

2017-02-02 18:45:45.216 (Rfx) Lighting 4 (Ouv Porte Entree)
2017-02-02 18:45:45.749 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_device_ouv_porte_entree_email1.lua: ...cz/scripts/lua/script_device_ouv_porte_entree_email1.lua:3: 'then' expected near ')'
2017-02-02 18:45:45.716 (Rfx) Lighting 4 (Ouv Porte Entree)
2017-02-02 18:45:45.807 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_device_ouv_porte_entree_email1.lua: ...cz/scripts/lua/script_device_ouv_porte_entree_email1.lua:3: 'then' expected near ')'
2017-02-02 18:45:45.774 (Rfx) Lighting 4 (Ouv Porte Entree)

Bonne soirée.
Cordialement Michel
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: Script Lua qui ne se déclenche pas toujours

Message par papoo »

Il faut supprimer la parenthèse après

Code : Tout sélectionner

alarme'] == 'On'
jai tapé cela trop vite
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
zerko91
Messages : 119
Inscription : 09 janv. 2016, 17:17
Localisation : Essonne

Re: Script Lua qui ne se déclenche pas toujours

Message par zerko91 »

papoo a écrit :Il faut supprimer la parenthèse après

Code : Tout sélectionner

alarme'] == 'On'
jai tapé cela trop vite
Merci Papoo pour ta réponse.
Je te tiens au courant.

Bonne soirée.
Cordialement Michel
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script Lua qui ne se déclenche pas toujours

Message par vil1driver »

Pas d'email envoyé ou pas d'email reçu ?
Donc on est plus dans un soucis de conditions mais d'action ?
Si tu mets des print comme conseillé ça donne quoi ???
C'est la base du debug !
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
zerko91
Messages : 119
Inscription : 09 janv. 2016, 17:17
Localisation : Essonne

Re: Script Lua qui ne se déclenche pas toujours

Message par zerko91 »

vil1driver a écrit :Pas d'email envoyé ou pas d'email reçu ?
Donc on est plus dans un soucis de conditions mais d'action ?
Si tu mets des print comme conseillé ça donne quoi ???
C'est la base du debug !
Bonjour vil1driver,
Pas de mail envoyé.
Dans le log je vois bien :
. l'information ouverture
. mais pas toujours l'action envoi mail

Je vais essayer les "print"

Bonne journée.
Cordialement Michel
zerko91
Messages : 119
Inscription : 09 janv. 2016, 17:17
Localisation : Essonne

Re: Script Lua qui ne se déclenche pas toujours

Message par zerko91 »

Bon pour l'instant cela fonctionne.

Voici le log :
2017-02-03 13:53:52.990 LUA: open ok
2017-02-03 13:53:52.990 LUA: activation ok
2017-02-03 13:53:52.991 LUA: mail ok
2017-02-03 13:53:52.469 (Rfx) Lighting 4 (Ouv Porte Entree)
2017-02-03 13:53:54.144 Notification sent (Email)
et le lua :

[codecommandArray = {}
if devicechanged['Ouv Porte Entree'] == 'Open' then --on test d'abord le changement du device
print("open ok")
if otherdevices['Activation alarme'] == 'On'then --ensuite on verifie que l'alarme est sur on
print("activation ok")
commandArray['SendEmail']='Porte Entree#Ouverture#monadresse@gmail.com'
print("mail ok")
end
end
return commandArray][/code]
Cordialement Michel
Répondre