Page 1 sur 3

Automatisation volet roulant - Problème sur calcul d'une valeur moyenne

Publié : 05 mai 2018, 15:56
par Anthony72
Bonjour.

Je suis en train de réaliser un script en DzVent pour l'automatisation de mes volets roulants.

Pour le principe de fonctionnement, je voudrais que mes volets se ferment à 30% lorsque ma façade est en plein soleil et se rouvrent lorsqu'il n'y à plus de soleil. Afin que mes volets ne se rouvrent pas à chaque fois qu'un petit nuage passe, je souhaiterais utiliser un niveau niveau d'éclairement moyen sur 15 minutes.

Avec ce script, je suis parvenu à récupérer le niveau d'éclairement extérieur à l'aide d'une sonde SERVODAN raccordée sur un module fibaro RGBW :

Code : Tout sélectionner

return {
	on = {
		active = true,
		timer = {'every minute'},
		devices = {
			'Capteur 0-10V - Entrée n°1',
			'Luminosité extérieure',
		},
        data = {
            Lum_table = { history = true, maxMinutes = 15 }
        }
	},

	execute = function(domoticz, switch, timer)
        	    
		-- Mise à jour du capteur virtuel
		Lum_ext=domoticz.devices('Capteur 0-10V - Entrée n°1').level
		domoticz.devices('Luminosité extérieure').updateLux(Lum_ext*600)
		
		-- Calcul de la moyenne
		domoticz.data.Lum_table.add(Lum_ext) -- Ajout des valeurs à la table
		Lum_moy = domoticz.data.Lum_table.avg() -- Calcul de la valeur moyenne
		
        end
La récupération de la valeur du module RGBW et la mise a jour du capteur virtuel se font sans problème. Mon problème est sur la ligne : domoticz.data.Lum_table.add(Lum_ext)

J'ai le message d'erreur suivant :

Code : Tout sélectionner

2018-05-05 15:21:00.711 dzVents: Error (2.4.5): An error occured when calling event handler Gestion volets roulants
2018-05-05 15:21:00.711 dzVents: Error (2.4.5): ...ts/dzVents/generated_scripts/Gestion volets roulants.lua:32: attempt to index field 'data' (a nil value) 
A priori, je ne parviens pas à mettre la valeur de Lum_moy dans la table. Je n'arrive pas à comprendre le sens de cette erreur, peut-être un problème de format ?

Quelqu'un aurait une idée ?

Re: Automatisation volet roulant - Problème sur calcul d'une valeur moyenne

Publié : 06 mai 2018, 21:17
par papoo
Anthony72 a écrit :
Avec ce script, je suis parvenu à récupérer le niveau d'éclairement extérieur à l'aide d'une sonde SERVODAN raccordée sur un module fibaro RGBW :
Bonjour Anthony72
pourrais tu nous apporter des détails sur cette sonde SERVODAN ainsi que son raccordement sur mobile fibaro stp?

pour le script dzvents :
à priori il faut déclarer le device dont on veut mémoriser les données
Lum_table est bien un device?

Code : Tout sélectionner

			local switch = domoticz.devices(USAGE_DEVICES[device.name])
			local history = domoticz.data[device.name]
			
			history.add(device)
			print (history.avg())
            
            if (switch.active and history.avg() == 0) then
			 	switch.switchOff()
			end
https://www.domoticz.com/forum/viewtopi ... 86#p160764

Re: Automatisation volet roulant - Problème sur calcul d'une valeur moyenne

Publié : 06 mai 2018, 23:03
par Anthony72
Bonsoir Papoo.

Merci pour ton retour.

Ma sonde SERVODAN est une sonde de luminosité 0-10V que j'ai raccordée sur l'entrée n°1 du module fibaro RGBW :

Image

Dans le paramètre 14, j'ai mis la valeur -30584 pour avoir les 4 entrées en 0-10V. J'ai ensuite créé un dimmer avec mon entrée n°1 qui varie entre 0% (0V) et 100% (10V) :

Image

Je récupère cette valeur grâce à : domoticz.devices('Capteur 0-10V - Entrée n°1').level
Je multiplie cette valeur par 600 (car ma sonde mesure entre 0 et 60 000 lux) puis je mets cette valeur dans un capteur de luminosité virtuel :

Image

Mon problème doit être là, Lum_table est une variable et non un device. Ça doit être pour ça qu'il ne veut pas y ajouter de valeurs. Je vais essayer de comprendre et d'adapter le bout de script que tu m'as mis.

Re: Automatisation volet roulant - Problème sur calcul d'une valeur moyenne

Publié : 06 mai 2018, 23:19
par papoo
Cette sonde ne doit pas être livrée seule, je ne l'ai pas trouvée sur leur site.
je suis à la recherche d'un système fiable pour mesurer la luminosité extérieure pour moi aussi fermer les volets au dessus d'un certain seuil.

Re: Automatisation volet roulant - Problème sur calcul d'une valeur moyenne

Publié : 06 mai 2018, 23:22
par Anthony72

Re: Automatisation volet roulant - Problème sur calcul d'une valeur moyenne

Publié : 06 mai 2018, 23:33
par papoo
Merci

Re: Automatisation volet roulant - Problème sur calcul d'une valeur moyenne

Publié : 07 mai 2018, 11:04
par papoo
essai en remplaçant

Code : Tout sélectionner

data = {
            Lum_table = { history = true, maxMinutes = 15 }
        }
par

Code : Tout sélectionner

data = {
            ['Capteur 0-10V - Entrée n°1'] = { history = true, maxMinutes = 15 }
        }
ou

Code : Tout sélectionner

data = {
            ['Luminosité extérieure'] = { history = true, maxMinutes = 15 }
        }

Re: Automatisation volet roulant - Problème sur calcul d'une valeur moyenne

Publié : 07 mai 2018, 22:33
par Anthony72
Merci Papoo, j'ai essayé de faire la moyenne sur 'Luminosité extérieur'. J'ai essayé d'adapter le script que tu m'as mis, mais ça dépasse mes compétences. J'en suis arrivé là :

Code : Tout sélectionner

local switch = domoticz.devices('Luminosité extérieure')
local history = domoticz.data
history.add(devices)
Lum_moy = history.avg()
Je pense que la première ligne est ok.
La deuxième ne me met pas d'erreur mais je ne sais pas si elle est bonne, je n'en comprend pas vraiment son sens.
Par contre, j'ai une erreur sur la 3ème. Je pense qu'il faut mettre quelque chose à la place de device, mais je ne vois pas quoi.

Toute aide est la bienvenue :D

Re: Automatisation volet roulant - Problème sur calcul d'une valeur moyenne

Publié : 07 mai 2018, 22:44
par papoo
pour moi il faut modifier
local history = domoticz.data
par
local history = domoticz.data['Luminosité extérieure']

Re: Automatisation volet roulant - Problème sur calcul d'une valeur moyenne

Publié : 07 mai 2018, 22:50
par Anthony72
J'ai le même message :

Code : Tout sélectionner

 2018-05-07 22:48:00.527 dzVents: Error (2.4.5): An error occured when calling event handler Gestion volets roulants
2018-05-07 22:48:00.527 dzVents: Error (2.4.5): ...ts/dzVents/generated_scripts/Gestion volets roulants.lua:36: attempt to index local 'history' (a nil value)