Script moyenne

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 <\>.
gigi71960
Messages : 14
Inscription : 27 oct. 2015, 19:50

Script moyenne

Message par gigi71960 »

Bonjour je recherche un script capable de me faire une moyenne de toute les données de mesure de distance qu’il a reçut pendant 1 heure et renouveler toute les toutes les heures une nouvelle mesure

Merci
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: Script moyenne

Message par Neutrino »

Bonjour,
ça existe en dzvents :
https://www.domoticz.com/wiki/DzVents:_ ... les_API.29
A adapter à une distance plutôt qu'une température.
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
gigi71960
Messages : 14
Inscription : 27 oct. 2015, 19:50

Re: Script moyenne

Message par gigi71960 »

Bonjour si vous avez une autre solution je ne maitrise pas du tout dzvents :(
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: Script moyenne

Message par denis_brasseur »

gigi71960 a écrit : 05 oct. 2019, 20:14 Bonjour si vous avez une autre solution je ne maitrise pas du tout dzvents :(
C'est pourtant bien le plus simple en Dzvents.
Faisable en LUA, mais un peu plus complexe :
- Utiliser une variable var_somme_distance qui ajoute à la valeur précédente de cette meme variable la nouvelle mesure de distance lors de l'update du capteur associé.
- Utiliser une variable var_nb_distance qui incrémente le nombre de mise à jour de la variable précédente
- Toutes les heures, faire le calcul valeur_moyenne = var_somme_distance / var_nb_distance
- Et à l'issu de ce calcul, faire la mise à jour de ces 2 variables à 0
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: Script moyenne

Message par denis_brasseur »

Un script type device afin de mettre à jour les 2 variables créées au préalable :

Code : Tout sélectionner

local var_somme_distance = 'var_somme_distance' --nom dela variable somme
local var_nb_distance = 'var_nb_distance' -- nom de la variable nombre
local capteur_distance = 'capteur_distance' --nom du capteur distance

commandArray = {}
if devicechanged[capteur_distance] then
	distance = otherdevices_svalues[capteur_distance] --valeur de la distance
	somme_distance = tonumber(uservariables[var_somme_distance]) --somme des distances stockés dans la variable
	new_somme_distance = distance + ex_somme_distance --ajout de la distance à la variable
	commandArray[#commandArray + 1] = {['Variable:'..var_somme_distance] = new_somme_distance} --mise à jour de la variable somme des distances
	
	nb_distance = tonumber(uservariables[var_nb_distance]) --nombre de distances stockés dans la variable
	new_nb_distance = nb_distance + 1 --incrémentation de la variable var_nb_distance
	commandArray[#commandArray + 1] = {['Variable:'..var_nb_distance] = new_nb_distance} --mise à jour de la variable nb des distances
end

return commandArray
et ensuite un script type time afin d'exploiter les valeurs des 2 variables afin de calculer la moyenne

Code : Tout sélectionner

local var_somme_distance = 'var_somme_distance' --nom dela variable somme
local var_nb_distance = 'var_nb_distance' -- nom de la variable nombre
time = os.date("*t")
commandArray = {}

if(time.min==0) then --toute les heures à 0 minute
	somme_distance = tonumber(uservariables[var_somme_distance]) --somme des distances stockés dans la variable
	nb_distance = tonumber(uservariables[var_nb_distance]) --nombre de distances stockés dans la variable
	valeur_moyenne_distance = somme_distance / nb_distance
	--
	--utilisation de la valeur moyenne
	--
	commandArray[#commandArray + 1] = {['Variable:'..var_somme_distance] = 0} --mise 0 de la variable somme des distances
	commandArray[#commandArray + 1] = {['Variable:'..var_nb_distance] = 0} --mise à 0 de la variable nb des distances
end
return commandArray
A adapter en fonction du type de device qui te retourne la distance.
Je n'ai pas testé parce que je n'ai pas de calcul de distance, mais cela te donne une trame de départ.
Bien penser à créer les 2 variables de type string et les initialiser à 0.
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
gigi71960
Messages : 14
Inscription : 27 oct. 2015, 19:50

Re: Script moyenne

Message par gigi71960 »

merci denis_brasseur pour ton example j'essaye de mettre en place ton example mais je ne connais pas du tout DZVENTS

j'ai un message erreur dans les logs a la mise en service de dzvents :
2019-10-06 15:56:20.891 Status: LUA: devices.lua cannot be loaded
2019-10-06 15:56:20.891 Status: LUA: error loading module 'devices' from file '/home/pi/domoticz/scripts/lua/devices.lua':
2019-10-06 15:56:20.891 /home/pi/domoticz/scripts/lua/devices.lua:2: unexpected symbol near '<'
2019-10-06 15:56:20.893 Status: LUA: devices.lua cannot be loaded
2019-10-06 15:56:20.893 Status: LUA: error loading module 'devices' from file '/home/pi/domoticz/scripts/lua/devices.lua':
2019-10-06 15:56:20.893 /home/pi/domoticz/scripts/lua/devices.lua:2: unexpected symbol near '<'

une idée ? :o
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: Script moyenne

Message par denis_brasseur »

Il ne s'agit pas de DzVents, mais de LUA.

Je crois comprendre de tes logs que tu a créé un fichier devices.lua.
Le problème semble provenir du non respect du format d'encodage de ton fichier.

Le plus simple est d'utiliser l'éditeur de domoticz depuis Réglages, Plus d'options, Evénements.
Capture.PNG
Capture.PNG (30.21 Kio) Consulté 4356 fois
Tu va pouvoir ainsi créé un événement de type Device (basé sur le changement d'état des devices), un autre de type Time (basé sur l'heure).

Avant de commencer, je te conseil de te familiariser avec le LUA en lisant ceci :

Un éditeur de scripts Lua intégré à Domoticz

Mon premier script Lua dans Domoticz : La mise en oeuvre

Le point sur les scripts lua de Domoticz
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
gigi71960
Messages : 14
Inscription : 27 oct. 2015, 19:50

Re: Script moyenne

Message par gigi71960 »

je ne comprend pas je n'ai pas de "device.lua" dans /home/pi/domoticz/scripts/lua/
Pièces jointes
copie ecran.jpg
copie ecran.jpg (228.71 Kio) Consulté 4345 fois
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: Script moyenne

Message par denis_brasseur »

Oublie ceci dans mon message, mais lis bien tous le reste du message :
denis_brasseur a écrit : 06 oct. 2019, 16:25 Je crois comprendre de tes logs que tu a créé un fichier devices.lua.
Le problème semble provenir du non respect du format d'encodage de ton fichier.

Qu'appelle tu mise en service dzvents ?
j'ai un message erreur dans les logs a la mise en service de dzvents :
Tu dis avoir des erreurs dans les logs, mais qu'as tu mis en place, quel type de code, comment et ou ?
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
gigi71960
Messages : 14
Inscription : 27 oct. 2015, 19:50

Re: Script moyenne

Message par gigi71960 »

j'ai suivi le tuto
https://easydomoticz.com/scripts-plus-f ... z-dzvents/

et depuis dans les logs de domoticz j'ai ces messages :(

019-10-06 17:19:20.395 Status: LUA: error loading module 'devices' from file '/home/pi/domoticz/scripts/lua/devices.lua':
2019-10-06 17:19:20.395 /home/pi/domoticz/scripts/lua/devices.lua:2: unexpected symbol near '<'
2019-10-06 17:19:20.397 Status: LUA: devices.lua cannot be loaded
2019-10-06 17:19:20.397 Status: LUA: error loading module 'devices' from file '/home/pi/domoticz/scripts/lua/devices.lua':
2019-10-06 17:19:20.397 /home/pi/domoticz/scripts/lua/devices.lua:2: unexpected symbol near '<'
2019-10-06 17:19:20.399 Status: LUA: devices.lua cannot be loaded
2019-10-06 17:19:20.399 Status: LUA: error loading module 'devices' from file '/home/pi/domoticz/scripts/lua/devices.lua':
2019-10-06 17:19:20.399 /home/pi/domoticz/scripts/lua/devices.lua:2: unexpected symbol near '<'
2019-10-06 17:19:24.530 (Aeon Labs Serie 2) General/kWh (kWh Meter)
2019-10-06 17:19:24.587 (Aeon Labs Serie 2) Usage (Unknown)
2019-10-06 17:19:24.592 (Aeon Labs Serie 2) General/kWh (kWh Meter)
2019-10-06 17:19:30.286 (MySensors) General/Distance (Distance test)
2019-10-06 17:19:30.442 Status: LUA: devices.lua cannot be loaded
2019-10-06 17:19:30.442 Status: LUA: error loading module 'devices' from file '/home/pi/domoticz/scripts/lua/devices.lua':
2019-10-06 17:19:30.442 /home/pi/domoticz/scripts/lua/devices.lua:2: unexpected symbol near '<'
2019-10-06 17:19:30.444 Status: LUA: devices.lua cannot be loaded
2019-10-06 17:19:30.444 Status: LUA: error loading module 'devices' from file '/home/pi/domoticz/scripts/lua/devices.lua':
2019-10-06 17:19:30.444 /home/pi/domoticz/scripts/lua/devices.lua:2: unexpected symbol near '<'
2019-10-06 17:19:30.446 Status: LUA: devices.lua cannot be loaded
2019-10-06 17:19:30.447 Status: LUA: error loading module 'devices' from file '/home/pi/domoticz/scripts/lua/devices.lua':
2019-10-06 17:19:30.447 /home/pi/domoticz/scripts/lua/devices.lua:2: unexpected symbol near '<'
2019-10-06 17:19:40.320 (MySensors) General/Distance (Distance test)
2019-10-06 17:19:40.492 Status: LUA: devices.lua cannot be loaded
2019-10-06 17:19:40.492 Status: LUA: error loading module 'devices' from file '/home/pi/domoticz/scripts/lua/devices.lua':
2019-10-06 17:19:40.492 /home/pi/domoticz/scripts/lua/devices.lua:2: unexpected symbol near '<'
2019-10-06 17:19:40.494 Status: LUA: devices.lua cannot be loaded
2019-10-06 17:19:40.494 Status: LUA: error loading module 'devices' from file '/home/pi/domoticz/scripts/lua/devices.lua':
2019-10-06 17:19:40.494 /home/pi/domoticz/scripts/lua/devices.lua:2: unexpected symbol near '<'
2019-10-06 17:19:40.496 Status: LUA: devices.lua cannot be loaded
2019-10-06 17:19:40.497 Status: LUA: error loading module 'devices' from file '/home/pi/domoticz/scripts/lua/devices.lua':
2019-10-06 17:19:40.497 /home/pi/domoticz/scripts/lua/devices.lua:2: unexpected symbol near '<'
2019-10-06 17:19:50.354 (MySensors) General/Distance (Distance test)
2019-10-06 17:19:50.506 Status: LUA: devices.lua cannot be loaded
2019-10-06 17:19:50.506 Status: LUA: error loading module 'devices' from file '/home/pi/domoticz/scripts/lua/devices.lua':
2019-10-06 17:19:50.506 /home/pi/domoticz/scripts/lua/devices.lua:2: unexpected symbol near '<'
2019-10-06 17:19:50.508 Status: LUA: devices.lua cannot be loaded
2019-10-06 17:19:50.508 Status: LUA: error loading module 'devices' from file '/home/pi/domoticz/scripts/lua/devices.lua':
2019-10-06 17:19:50.508 /home/pi/domoticz/scripts/lua/devices.lua:2: unexpected symbol near '<'
2019-10-06 17:19:50.510 Status: LUA: devices.lua cannot be loaded
2019-10-06 17:19:50.510 Status: LUA: error loading module 'devices' from file '/home/pi/domoticz/scripts/lua/devices.lua':
2019-10-06 17:19:50.510 /home/pi/domoticz/scripts/lua/devices.lua:2: unexpected symbol near '<'
2019-10-06 17:20:00.753 (Aeon Labs Serie 2) General/kWh (kWh Meter)
2019-10-06 17:20:00.811 (Aeon Labs Serie 2) Usage (Unknown)
2019-10-06 17:20:00.816 (Aeon Labs Serie 2) General/kWh (kWh Meter)
2019-10-06 17:20:00.437 Status: LUA: devices.lua cannot be loaded
2019-10-06 17:20:00.437 Status: LUA: error loading module 'devices' from file '/home/pi/domoticz/scripts/lua/devices.lua':
2019-10-06 17:20:00.437 /home/pi/domoticz/scripts/lua/devices.lua:2: unexpected symbol near '<'
2019-10-06 17:20:00.439 Status: LUA: devices.lua cannot be loaded
2019-10-06 17:20:00.439 Status: LUA: error loading module 'devices' from file '/home/pi/domoticz/scripts/lua/devices.lua':
2019-10-06 17:20:00.439 /home/pi/domoticz/scripts/lua/devices.lua:2: unexpected symbol near '<'
2019-10-06 17:20:00.441 Status: LUA: devices.lua cannot be loaded
2019-10-06 17:20:00.442 Status: LUA: error loading module 'devices' from file '/home/pi/domoticz/scripts/lua/devices.lua':
2019-10-06 17:20:00.442 /home/pi/domoticz/scripts/lua/devices.lua:2: unexpected symbol near '<'
Répondre