Script LUA executé plusieurs fois

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 <\>.
frtoto
Messages : 320
Inscription : 17 févr. 2018, 17:02

Script LUA executé plusieurs fois

Message par frtoto »

Bonsoir,

petite question pour comprendre :

ce script s'éxecute souvent 2 fois de suite, mais parfois une seule fois, une explication ? (il est bien mis en mode "DEVICE")
par contre il fonctionne bien et n'engendre pas d'erreur dans le log. Merci

exemple :
2018-09-07 20:00:16.848 Status: LUA: humi = 68
2018-09-07 20:00:16.848 Status: LUA: vitesse 1
2018-09-07 20:00:16.850 Status: EventSystem: Script event triggered: vmc_cine_2
2018-09-07 20:00:16.885 Status: LUA: humi = 68
2018-09-07 20:00:16.885 Status: LUA: vitesse 1
2018-09-07 20:00:16.886 Status: EventSystem: Script event triggered: vmc_cine_2


et plus tard :
2018-09-07 20:12:07.160 Status: Incoming connection from: 10.0.0.152
2018-09-07 20:21:32.646 Status: LUA: humi = 67
2018-09-07 20:21:32.646 Status: LUA: vitesse 1
2018-09-07 20:21:32.648 Status: EventSystem: Script event triggered: vmc_cine_2

2018-09-07 20:29:00.464 Status: YeeLight: New Light Found (10.0.0.93/YeeLight LED (Stripe))


Code : Tout sélectionner

-- variable
humidite=(otherdevices_humidity['humidite_cine_capteur'])
humidite=tonumber(humidite)
            
commandArray = {}

if (devicechanged['humidite_cine_capteur'])
          
        then   
            print("humi = "..humidite) 
            if humidite > 70
                then 
                commandArray['sonoff_Dual_1_btn_1']='Off'
                commandArray['sonoff_Dual_1_btn_2']='On'
                print("vitesse 2")    
               
            else
                commandArray['sonoff_Dual_1_btn_2']='Off'                
                commandArray['sonoff_Dual_1_btn_1']='On'
                print("vitesse 1")
            end 
end
return commandArray
Dz 2025.11_16729 - Conbee II
lmet
Messages : 252
Inscription : 30 juin 2017, 18:16
Localisation : Val d'Oise
Contact :

Re: Script LUA executé plusieurs fois

Message par lmet »

Bonsoir,

Dès lors où l'on scripte :

Code : Tout sélectionner

if (devicechanged['humidite_cine_capteur']) then 
sans donner de valeur pour laquelle le changement est validé alors qui décide ?
A mon humble avis il faut comparer avec une valeur ">70" ou "~=70" dès le départ.
Domoticz : V4.10717
Zigate : V4.11230 plugin:4.5.4 firmware:031a
Mon petit blog domotique
frtoto
Messages : 320
Inscription : 17 févr. 2018, 17:02

Re: Script LUA executé plusieurs fois

Message par frtoto »

j'avais essayé de mettre la comparaison à ce niveau mais cela engendre des erreurs... attempt to compare number with nil
Ce n'est pas tant la fréquence de déclenchement qui me pose question mais plutôt pourquoi 2 fois en moins d'une seconde ?
Dz 2025.11_16729 - Conbee II
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script LUA executé plusieurs fois

Message par vil1driver »

Salut,

C'est peut être le capteur qui envoie 2 fois.
Peut être temp et hum sur des envois séparés..
Comment se fait il que les logs ne montrent pas ces réceptions ?

C'est quoi ton capteur ?

Il serait intéressant de voir ce que contient
devicechanged['humidite_cine_capteur']
Dernière modification par vil1driver le 08 sept. 2018, 10:59, modifié 1 fois.
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
frtoto
Messages : 320
Inscription : 17 févr. 2018, 17:02

Re: Script LUA executé plusieurs fois

Message par frtoto »

vil1driver a écrit : Comment se fait il que les logs ne montrent pas ces réceptions ?
Edit : j'ai repondu trop vite...

capteur aqara

J'ai mis en dispositif uniquement le type Humidity (1ACD 1 humidite_cine_capteur Humidity LaCrosse TX3 Humidity 66 %)
Il serait intéressant de voir ce que contient
devicechanged['humidite_cine_capteur']
Je peux faire ça comment ? (noob inside)
Dernière modification par frtoto le 08 sept. 2018, 11:02, modifié 1 fois.
Dz 2025.11_16729 - Conbee II
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script LUA executé plusieurs fois

Message par vil1driver »

Non, ceux de Domoticz
De ce genre

Code : Tout sélectionner

2018-09-08 10:56:35.612 (rfxcom) Temp + Humidity (parents)
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
frtoto
Messages : 320
Inscription : 17 févr. 2018, 17:02

Re: Script LUA executé plusieurs fois

Message par frtoto »

En fait dans les logs je n'en ai aucun qui cite humidite_cine_capteur
Tous les autres apparaissent bien
par contre le seul que j'ai qui pourrait correspondre est

Code : Tout sélectionner

2018-09-08 11:06:34.911 (Passerelle) Humidity (Xiaomi Humidity)
Dz 2025.11_16729 - Conbee II
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script LUA executé plusieurs fois

Message par vil1driver »

Oui voila c'est certainement ça même si étonnant que ce ne soit pas le nom du device.
Son apparition correspond avec les lancements du script ?
Et cela se produit il parfois également 2 fois de suite ?

Peut-être un

Code : Tout sélectionner

print(devicechanged['humidite_cine_capteur']) 
Sinon pour un script basé sur l'humidité, peut être qu'un type Time serait suffisant (plus d'usage de devicechanged)
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
lmet
Messages : 252
Inscription : 30 juin 2017, 18:16
Localisation : Val d'Oise
Contact :

Re: Script LUA executé plusieurs fois

Message par lmet »

frtoto a écrit :j'avais essayé de mettre la comparaison à ce niveau mais cela engendre des erreurs... attempt to compare number with nil
Ce n'est pas tant la fréquence de déclenchement qui me pose question mais plutôt pourquoi 2 fois en moins d'une seconde ?
Le capteur envoie peut-être deux valeurs dont une à "nil" essayes ce bout de code :

Code : Tout sélectionner

if (devicechanged['humidite_cine_capteur']) then 
	local x = os.clock()
	print ("Valeur humidité : " .. tostring(humidite_cine_capteur) .. " heure : " .. tostring(x))
end
tu devrais récupérer les valeurs dans les logs ainsi que l'heure à laquelle cela c'est produit.
Domoticz : V4.10717
Zigate : V4.11230 plugin:4.5.4 firmware:031a
Mon petit blog domotique
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Script LUA executé plusieurs fois

Message par vil1driver »

Erreur dans ton code lmet
Sinon tostring est superflu
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
Répondre