Page 1 sur 1
Dzvents Calcul d'une moyenne de température
Publié : 26 janv. 2026, 13:52
par pchatill
Bonjour.
J'ai un script qui me permet de calculer la moyenne de température de mon potager.
Celui ci s'exécute bien quand la température de mon potager change.
Mais je n'arrive pas à l’exécuter sans erreur en mettant le trigger sur un switch nommé ici: historyTrigger
Code : Tout sélectionner
return {
active = true,
on = {
devices = {'Potager',
'historyTrigger', --marche pas
}
},
data = {
temperatures = { history = true, maxItems = 10 }
},
execute = function(domoticz, triggeredItem,info)
-- add new data
domoticz.data.temperatures.add(triggeredItem.temperature)
-- average
local average = domoticz.data.temperatures.avg()
print("average= " .. average .." " .. type(average) )
-- maximum value in the past hour:
local max = domoticz.data.temperatures.maxSince('01:00:00')
print("temperatures.max depuis 1h= " .. max .." " .. type(max) )
end
}
J'ai compris que "triggeredItem.temperature" ne voulait rien dire si le script est actionné par un switch,
mais je ne vois pas la bonne syntaxe malgré mes nombreux essais.
Je débute en dzvents et je tourne en rond...
Une bonne âme pour m'aider à le corriger?
Merci d'avance
Re: Dzvents Calcul d'une moyenne de température
Publié : 26 janv. 2026, 22:02
par Keros
Dans ton code, triggeredItem correspond à l'élément qui a déclenché le script : c'est soit un changement de Potager ou de historyTrigger.
Plus loin dans ton script, tu demandes de récupérer la température du déclencheur. Avec le switch, cela ne fonctionne pas.
Mais, à cet endroit, au lieu de récupérer la température du déclencheur, tu peux récupérer la température du Potager.
J'ai écrit des petits guides dans ma présentation dont certains au sujet de la programmation (lien dans ma signature) : tu y trouveras peut-être des infos utiles.
Re: Dzvents Calcul d'une moyenne de température
Publié : 27 janv. 2026, 18:41
par pchatill
Merci Keros.
Ca marche maintenant!
Code : Tout sélectionner
return {
active = true,
on = {
devices = {'Potager',
'historyTrigger',
}
},
data = {
temperatures = { history = true, maxItems = 10 }
},
execute = function(domoticz, triggeredItem,info)
local PotTemp = domoticz.devices("Potager").temperature
print("PotTemp= " .. PotTemp .." " .. type(PotTemp) )
-- add new data
domoticz.data.temperatures.add(PotTemp)-- store current temperature in persistent data
local average = domoticz.data.temperatures.avg()
print("average= " .. average .." " .. type(average) )
-- maximum value in the past hour:
local max = domoticz.data.temperatures.maxSince('00:01:00')
--max = tonumber(max)
print(max)
print("temperatures.max depuis 1h= " .. max .." " .. type(max) )
end
}
Re: Dzvents Calcul d'une moyenne de température
Publié : 27 janv. 2026, 20:31
par Keros
Bonne continuation

Re: Dzvents Calcul d'une moyenne de température
Publié : 29 janv. 2026, 09:16
par pchatill
Bonjour.
Désolé re revenir sur ce post... Le script pour récupérer la température d'un capteur de température fonctionne parfaitement, mais quand je le modifie pour un custom sensor (ici une pince amperemétrique) , cela ne fonctionne pas;
Je m'en sors pas...
Voici mon script: ( C'est la ligne "local average = domoticz.data.var1.avg() " qui pose probleme)
Code : Tout sélectionner
return {
active = true,
on = {
devices = {'historyTrigger',}
},
data = {
var1 = { history = true, maxItems = 5 }
},
execute = function(domoticz, triggeredItem,info)
local toto=tonumber(domoticz.devices('Prises_Maison_CT0_3').rawData[1])
print("Amperes_Prises_Maison3= " .. toto.." ".. type(toto)) --Renvoie Amperes_Prises_Maison3= 2.2 number
-- add new data
domoticz.data.var1.add(3.2)-- store current temperature in persistent data
local average = domoticz.data.var1.avg()
print("average= " .. average .." " .. type(average) )
-- maximum value in the past hour:
local max = domoticz.data.var1.maxSince('00:01:00')
--max = tonumber(max)
print(max)
print("temperatures.max depuis 1h= " .. max .." " .. type(max) )
end
}
Et voici mon log:
2026-01-29 09:12:27.805 dzVents: ------ Start internal script: Moyenne_Pince_Amperemetrique: Device: "historyTrigger (Virtuel (Http))", Index: 179
2026-01-29 09:12:27.820 dzVents: Amperes_Prises_Maison3= 0.78 number
2026-01-29 09:12:27.820 Error: dzVents: Item data is not a number type. Type is nil
2026-01-29 09:12:27.820 Error: dzVents: Item data is not a number type. Type is nil
2026-01-29 09:12:27.820 Error: dzVents: Item data is not a number type. Type is nil
2026-01-29 09:12:27.820 Error: dzVents: Item data is not a number type. Type is nil
2026-01-29 09:12:27.820 Error: dzVents: An error occurred when calling event handler Moyenne_Pince_Amperemetrique
2026-01-29 09:12:27.820 Error: dzVents: ...les (x86)\Domoticz\dzVents\runtime\HistoricalStorage.lua:289: attempt to perform arithmetic on a nil value (local 'sum')
2026-01-29 09:12:27.820 dzVents: ------ Finished Moyenne_Pince_Amperemetrique
Une idée?
Merci d'avance...
Re: Dzvents Calcul d'une moyenne de température
Publié : 29 janv. 2026, 20:39
par Keros
Oui l'erreur indique une ligne, mais, souvent, le problème vient d'avant.
Tu peux vérifier que tu as des valeurs dans data.var1 en affichant le résultat de domoticz.data.var1.get(1) ? Ca devrait afficher la dernière valeur rentrée.
Re: Dzvents Calcul d'une moyenne de température
Publié : 03 févr. 2026, 08:35
par pchatill
Merci Keros
(Désolé, je m'étais absenté qqs jours: je m'y recolle aujourd'hui)
Quand je rajoute la ligne
print("domoticz.data.var1.get= " ..domoticz.data.var1.get(1))
J'ai le message d'erreur:
lua:22: attempt to concatenate a table value
Et si je mets:
print("domoticz.data.var1.get= " ..tostring(domoticz.data.var1.get(1)))
Plus d'erreur et j'ai
dzVents: domoticz.data.var1.get= table: 062C7828
Je vois bien certaine données sont des tables mais c'est pas clair du tout pour moi ...
Re: Dzvents Calcul d'une moyenne de température
Publié : 03 févr. 2026, 21:54
par Keros
Il semblerait que la valeur stockée soit sous forme de tableau et non de valeur.
Tu peux essayer de pousser uniquement domoticz.data.var1.add(2) et voir ce qui est enregistré.
Re: Dzvents Calcul d'une moyenne de température [Résolu]
Publié : 04 févr. 2026, 14:06
par pchatill
Bonjour Keros.
Ca marche maintenant, et je sais pas pourquoi.......
J'ai refait un copié/collé de mon dernier code posté ici pour être sur d'avoir rien modifié
entre temps et ... ça marche
Je comprends pas.
Si j'ai rien touché dans mon code, j'ai peut être fait une modif. sur mon custom.sensor.
Laquelle?
En tout cas, merci beaucoup Keros!!!!!
Re: Dzvents Calcul d'une moyenne de température
Publié : 04 févr. 2026, 20:43
par Keros
Ah, j'aurais aimé savoir pourquoi. Je penche pour une "mauvaise" donnée qui avait été poussé dans l'historique et qui te plantait le calcul.
Ça fonctionne, c'est le principal.
Bonne continuation