facture EDF

Vous avez des questions concernant les scripts dans Domoticz, posez vos questions ici, quelque soit le langage nous tenterons des réponses pertinentes ...
sphinxou
Messages : 111
Inscription : 03 déc. 2016, 13:37

facture EDF

Messagepar sphinxou » 09 juin 2018, 15:10

bonjour

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

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Revenir vers « Scripts lua,blocky, shell, python, perl, »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 5 invités