il y a 1 ans j'ai récupérer ce script sur le forum pour le conso elec je l'ai modifier et je lai activer le jour de mon relever EDF et un ans après la facture arrive est domoticz me compte 800 euros d'elec en plus que EDF.
je me doute de ne pas avoir le même montant mais 800 euros sa fait beaucoup
je met le cript si quelqun peut regarder si possible l'erreur que jai faite
merci
Code : Tout sélectionner
-- script domoticz/scripts/lua/script_device_compteurHC-HP.lua
-- Initialisation des variables locales
local capteurGlobal = uservariables['CapteurGlobal']
local capteurCptHP = uservariables['CapteurCptHP']
local capteurCptHC = uservariables['CapteurCptHC']
local idxCptHP = uservariables['IdxCptHP']
local idxCptHC = uservariables['IdxCptHC']
local flagHC = uservariables['FlagHC']
local flagHP = uservariables['FlagHP']
local lastValueCptElecGlobal = uservariables['LastValueCptElecGlobal']
local prixHP = 0.1560
local prixHC = 0.1270
local couthp = uservariables['couthp']
local couthc = uservariables['couthc']
-- Mode debug Oui / Non
local debug = uservariables['debug']
-- fonction arrondir
function round(x, n)
n = math.pow(10, n or 0)
x = x * n
if x >= 0 then x = math.floor(x + 0.5) else x = math.ceil(x - 0.5) end
return x / n
end
-- Fonction de mise à jour
function update(device, id, power, energy, index)
commandArray[index] = {['UpdateDevice'] = id .. "|0|" .. power .. ";" .. energy}
return
end
commandArray = {}
-- On prend en compte a chaque changement de valeur du compteur global
if (devicechanged[capteurGlobal]) then
if (debug == 'OUI') then
print('-- Calcul Compteurs HC / HP --')
print('CapteurGlobal = '..capteurGlobal)
print('CapteurCptHP = '..capteurCptHP)
print('CapteurCptHC = '..capteurCptHC)
print('idxCptHP = '..tostring(idxCptHP))
print('idxCptHC = '..tostring(idxCptHC))
print('flagHP = '..tostring(flagHP))
print('flagHC = '..tostring(flagHC))
print('LastValueCptElecGlobal = '..tostring(lastValueCptElecGlobal))
end
-- Recuperation des valeurs du compteur global
local consoCumule
local consoInstant
consoInstant, consoCumule = otherdevices_svalues[capteurGlobal]:match("([^;]+);([^;]+)")
consoInstant = tonumber(consoInstant)
consoCumule = tonumber(consoCumule)
local ampere = consoInstant / 220
if (debug == 'OUI') then
print('Conso Instant = '..tostring(consoInstant)..' / Conso Cumule = '..tostring(consoCumule)..' ')
end
-- Calcul de l'ecart avec le dernier envoi de donnees
lastValueCptElecGlobal = tonumber(lastValueCptElecGlobal)
local consoDelta = consoCumule - lastValueCptElecGlobal
if (debug == 'OUI') then
print('Delta conso = '..tostring(consoDelta))
end
local consoCumuleCible
local consoInstantCible
if (otherdevices[flagHC] == 'On') then
-- Periode heures creuse
-- Recuperation des valeurs du compteur global
consoInstantCible, consoCumuleCible = otherdevices_svalues[capteurCptHC]:match("([^;]+);([^;]+)")
-- Seul le cumule du compteur nous interesse pour calculer la nouvelle valeur
consoCumuleCible = tonumber(consoCumuleCible)
consoInstantCible = tonumber(consoInstantCible)
local euro = consoDelta * prixHC / 1000
local facturehc = consoCumuleCible*prixHC/1000+euro
commandArray['Variable:couthc'] = tostring(facturehc)
if (debug == 'OUI') then
print('Compteur cible = HC')
print('Valeur precedente = '..tostring(consoCumuleCible))
print('Valeur ajustee = '..tostring(consoCumuleCible + consoDelta))
print('euro HC = '..tostring(euro))
print('ampere = '..tostring(ampere))
end
consoCumuleCible = consoCumuleCible + consoDelta
-- Mise à jour du compteur
update(ampere, 275, round(ampere, 2), 0, 1)
update(capteurCptHC, idxCptHC, consoInstant, consoCumuleCible, 2)
-- Mise à 0 de la conso intantanee du compteur HP
consoInstantHP, consoCumuleHP = otherdevices_svalues[capteurCptHP]:match("([^;]+);([^;]+)")
consoInstantHP = 0
update(capteurCptHP, idxCptHP, consoInstantHP, consoCumuleHP, 3)
else
-- Periode heures pleines
-- Recuperation des valeurs du compteur global
consoInstantCible, consoCumuleCible = otherdevices_svalues[capteurCptHP]:match("([^;]+);([^;]+)")
-- Seul le cumule du compteur nous interesse pour calculer la nouvelle valeur
consoCumuleCible = tonumber(consoCumuleCible)
consoInstantCible = tonumber(consoInstantCible)
local euro = consoDelta * prixHP / 1000
local facturehp = consoCumuleCible*prixHP/1000+euro
commandArray['Variable:couthp'] = tostring(facturehp)
if (debug == 'OUI') then
print('Compteur cible = HP')
print('Valeur precedente = '..tostring(consoCumuleCible))
print('Valeur ajustee = '..tostring(consoCumuleCible + consoDelta))
print('euro HP = '..tostring(euro))
print('ampere = '..tostring(ampere))
end
consoCumuleCible = consoCumuleCible + consoDelta
-- Mise à jour du compteur
update(capteurCptHP, idxCptHP, consoInstant, consoCumuleCible, 4)
update(ampere, 22, round(ampere, 2), 0, 7)
-- Mise à 0 de la conso intantanee du compteur HC
consoInstantHC, consoCumuleHC = otherdevices_svalues[capteurCptHC]:match("([^;]+);([^;]+)")
consoInstantHC = 0
update(capteurCptHC, idxCptHC, consoInstantHC, consoCumuleHC, 5)
end
-- Sauvegarde de la valeur du compteur global pour prochain calcul
commandArray['Variable:LastValueCptElecGlobal'] = tostring(consoCumule)
local TVA = couthp + couthc * (20 / 100)
local facture = couthp + couthc + 125 + TVA
update(Facture_EDF, 21, round(facture, 2), 0, 6)
print('facture = '..tostring(facture))
if (debug == 'OUI') then
print('-- Fin Calcul Compteur HC / HP --')
end
end
return commandArray