Page 1 sur 1

DzVents : Incrémentation d'une variable ne se fait pas

Publié : 17 juin 2023, 10:21
par Doudy
Hello,
Ceci est un programme de test et n'est pas finalisé !
La variable "alertCount" reste sur "1", elle ne s'incrémente pas :?
Capture.PNG
Capture.PNG (20.29 Kio) Consulté 495 fois
Voici mon script :

Code : Tout sélectionner

--[[
check-ouverture-porte-garage - 04/06/2023
voir https://easydomoticz.com/forum/viewtopic.php?t=8643
From the domoticz examples online: http://www.domoticz.com/wiki/Event_script_examples

Send a warning when the garage door has been open for more than 30 minutes
]]

return {
	active = true,
	on = {
		--timer = {'every 5 minutes'}
		timer = {'every minute'}
	},

	execute = function(domoticz, device)
		local alertCount = 0
		domoticz.log(alertCount)
		local check_porte = domoticz.devices(628)
		local etat_porte = domoticz.devices(412)
		
		domoticz.log(' [-------------- START check-ouverture-porte-garage--------------] ')
		if (check_porte.active) then
			if (etat_porte.active) and (etat_porte.lastUpdate.minutesAgo >30 and alertCount < 3) then
				domoticz.log(' [-------------- START etat-porte-garage 1--------------] ')
				--domoticz.notify('Porte Garage', 'Porte Garage Ouverte depuis plus de 30 minutes...')
				alertCount = alertCount + 1
				domoticz.log ('Avertissement1 : ' .. alertCount)
				domoticz.log(' [-------------- STOP etat-porte-garage 1---------------] ')
			else
				timer = {'every 15 minutes'}
				domoticz.log(' [-------------- START etat-porte-garage--------------] ')
				--domoticz.notify('Porte Garage', 'Porte Garage Ouverte depuis plus de 45 minutes...')
				alertCount = alertCount + 1
				domoticz.log ('Avertissement2 : ' .. alertCount)
				domoticz.log(' [-------------- STOP etat-porte-garage---------------] ')
			end
		end
		domoticz.log(' [-------------- STOP check-ouverture-porte-garage---------------] ')
	end
}
Ma question : Pourquoi alertCount reste à 1 et ne s'incrémente pas ?
;)

Re: DzVents : Incrémentation d'une variable ne se fait pas

Publié : 17 juin 2023, 11:54
par Keros
En hébergeant les images à l'extérieur du forum, il y a de fort risques qu'elles ne soient plus disponibles dans quelque temps comme ici, ou encore . Le mieux est de directement coller les logs dans le texte du message et le mettant entre les balises quote ou s'il y en a beaucoup code).

Les variables d'un script sont perdues à chaque fin d'exécution d'un script. Pour "garder en mémoire" une valeur, tu peux soit utiliser une userviariable ou les persistant data de DzVents.

Surtout, qu'au départ de ton script, tu remets ta variable 0. Donc 0+1 égal toujours 1.

Re: DzVents : Incrémentation d'une variable ne se fait pas

Publié : 17 juin 2023, 14:12
par Neutrino
tu incrémentes une variable locale.
Elle est réinitialisée à chaque éxecution du script.
Regarde du coté des Persistent Data : https://www.domoticz.com/wiki/DzVents:_ ... stent_data

Re: DzVents : Incrémentation d'une variable ne se fait pas

Publié : 17 juin 2023, 14:34
par Doudy
Hello,

En utilisant "Persistant data" cela fonctionne parfaitement.
Merci

;)