Pour info, voici la définition que j'utilise : Et voici le code :
Code : Tout sélectionner
local nomCompteur = 'Conso électrique' -- Nom/idx compteur consommation électrique
local nomCout = 'Coût électricité' -- Nom/idx comteur coût électrique (type compteur RFXmeter/compteur, unité cents d'€)
local coutkWh = 0.1557 -- Coût du kWh en €
local coutAbonnement = 177.48 -- Coût annuel abonnement en €
local scriptName = 'coutElectricité' -- Nom du script
local scriptVersion = '1.0' -- Version du script
return {
on = {
devices = {
nomCompteur
},
logging = {
level = domoticz.LOG_NONE,
marker = scriptName..' v'..scriptVersion
}
},
execute = function(domoticz, device)
cost = ((device.counterToday * coutkWh) + (coutAbonnement / 365)) * 100 -- coût /kWh + 1/365eme du coût annuel de l'abonnement * 100 (pour l'avoir en cents)
previousCost = domoticz.devices(nomCout).counter -- Compteur coût
if previousCost > cost then -- Compteur journalier remis à zéro
domoticz.log('Remise à zéro du côut électricité, coût '..tostring(cost)..', précédent = '..tostring(previousCost),domoticz.LOG_INFO)
cost = 0 -- Force la valeur mini à zéro, indispensable pour un compteur juste
end
domoticz.devices(nomCout).setValues(nil, tostring(cost))
end
}