[LUA] Consommation virtuelle
Publié : 30 oct. 2017, 09:33
Salut,
je vous partage ici un petit script qui à pour but de remplir un compteur de consommation virtuel

quel que soit l'équipement à suivre et la façon dont il est utilisé (manuellement, plannings, scripts, etc..)
il vous suffit de créer le(s) compteur(s) virtuel(s) depuis le matériel virtuel (dummy)
puis de renseigner le tableau en début de script en indiquant
le nom du dispositif à surveiller, sa puissance en watt et le nom du compteur associé.
surveillez autant de dispositifs que vous le souhaitez.. chaqun devant avoir son propre compteur.

je vous partage ici un petit script qui à pour but de remplir un compteur de consommation virtuel

quel que soit l'équipement à suivre et la façon dont il est utilisé (manuellement, plannings, scripts, etc..)
il vous suffit de créer le(s) compteur(s) virtuel(s) depuis le matériel virtuel (dummy)
puis de renseigner le tableau en début de script en indiquant
le nom du dispositif à surveiller, sa puissance en watt et le nom du compteur associé.
surveillez autant de dispositifs que vous le souhaitez.. chaqun devant avoir son propre compteur.
Code : Tout sélectionner
-- mesures virtuelles de consommation électrique
-- script de type DEVICE
-- chargement des modules (http://easydomoticz.com/forum/viewtopic.php?f=17&t=3940)
dofile('/home/pi/domoticz/scripts/lua/modules.lua')
debug = false -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir
local devices = {}
-- tableau a renseigner {'dispositif', puissance, 'compteur'}
devices[1] = {'radiateur thomas', 900, 'conso thomas'}
devices[2] = {'radiateur SDB', 1200, 'conso SDB'}
devices[3] = {'radiateur salon', 3200, 'conso salon'}
devices[4] = {'radiateur parents', 800, 'conso parents'}
-- etc..
-- fin du tableau
commandArray = {}
for n,device in pairs(devices) do
if stateChange(device[1]) == 'On' then
-- affichage puissance instantanée
power, energy = string.match(otherdevices_svalues[device[3]], "(%d+%.*%d*);(%d+%.*%d*)")
commandArray['UpdateDevice'] = otherdevices_idx[device[3]] .. '|0|' .. device[2] .. ';' .. energy
break
end
if stateChange(device[1]) == 'Off' then
log(device[1]..' est resté allumé '..duree..'s',debug)
-- calcule puissance consommée
power, energy = string.match(otherdevices_svalues[device[3]], "(%d+%.*%d*);(%d+%.*%d*)")
energy = tonumber(energy + (device[2] / 3600 * duree))
commandArray['UpdateDevice'] = otherdevices_idx[device[3]] .. '|0|0;' .. energy
break
end
end
return commandArray
