Calculer le cout de l'électricité

Vous utilisez Windows © pour votre domotique avec Domoticz, ca ne fait rien on vous aime bien quand même. Ce forum est pour vous.
Répondre
xavier188
Messages : 12
Enregistré le : 15 févr. 2019, 17:38

Calculer le cout de l'électricité

Message par xavier188 »

Bonjour, j'ai une interface TELEINFO qui me remonte les valeurs de consommations en kWh. J'ai un double tarif.
Comment faire pour créer un comptage qui compte en euro ?
J'ai vu des valeurs en couts T1 T2 R1 R2 dans les paramètres de l'interface. Comment en faire usage ?

ogulf
Messages : 252
Enregistré le : 15 juin 2017, 14:41

Re: Calculer le cout de l'électricité

Message par ogulf »

Depuis les log du compteur, tu cliques sur Historique (en haut à droite) et tu auras la conversion kWh vers €.
C'est là que servent les paramètres que tu évoques
Domoticz Stable sur RPi3 + RFPlayer + ZWave+ + RFLink R48 :
- 11 x RF660P (gestion chauffage)
- 1 x FGSD-002 (détecteur fumée)
- 10 x F007TH (sonde Temp/Hygro)
- 5 x Emcoluxr EV1527 (contacteur ouverture porte)
- 4 x NeoCoolCam NAS-PD02Z (PIR + Temp)

xavier188
Messages : 12
Enregistré le : 15 févr. 2019, 17:38

Re: Calculer le cout de l'électricité

Message par xavier188 »

en effet, merci de l'info. Chez moi c'est "Rapport" ou il faut cliquer en haut a droite et non Historique"
En revanche j'ai d'autres questions :
On a le cout au mois. Puis on peut faire apparaitre le prix au jour le jour.


Comment intégrer a ce cout le prix de l'abonnement, qui lui est fixe ?

Est-il possible de remplacer le nom des T1 T2 par HP et HC ?
Merci

vil1driver
Messages : 5303
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Calculer le cout de l'électricité

Message par vil1driver »

Salut,

Clic sur le mois..
Pas possible
Pas possible
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien

adv
Messages : 352
Enregistré le : 02 févr. 2016, 13:54
Contact :

Re: Calculer le cout de l'électricité

Message par adv »

Salut les gars,

voici chez moi un script de calcul journalier incluant l'abonnement :
cout_journalier.png
cout_journalier.png (13.95 Kio) Vu 322 fois
graph_7jours.png
graph_7jours.png (153.65 Kio) Vu 322 fois

Voici le code (je sais plus où j'ai trouvé)
coût de l'abonnement ligne 32
nom du compteur d'énergie ligne 24 (votre P1 smart meter)
calcul toutes les 15 minutes

Bon courage !
ADV


Code : Tout sélectionner

--[[
            put today's electricity and / or today's Gas usage costs in custom virtual sensor
            Collect information from a P1 device and /or a Gas device
            electricity takes different tariffs and returns (from solarpanels or the likes) into account.
            
]]--

local scriptVar = "dailyEnergyCost"

return  {
            on = { timer = { "every 15 minutes" },           -- using 6 minutes because Stroom and Gas are updated very frequently
                   httpResponses = { scriptVar .. "*" },
        },

        logging = { level   =   domoticz.LOG_ERROR,    -- change to LOG_DEBUG when script doesn't execute
                    marker  =   sciptVar},

        data =  { energyCosts = { initial = {} }
                },

    execute = function(dz, item)
        --  ********************************************************************* Your changes below this line *************
        -- input Devices
        local electricity = dz.devices("EDF") -- P1 device or comment this line
        --local gas = dz.devices("Gas") -- Gas meter or comment this line
        
        -- outPut Devices
        local electricityCost = dz.devices("CoutJournalier") -- define this virtual sensor as Custom sensor or comment this line when not used
        --local gasCost = dz.devices("gasCost today")   -- define this virtual sensor as Custom sensor or comment this line when not used
        
        -- fixed Transport + contract costs per month in Euro's
        local electricityFixedMonth = 15.88 
        --local gasFixedMonth = 6.31 
        --      ********************************************************************** No changes below this line **************

        local function getDaysForMonth(month, year)       -- Returns number of days in given or current month
            if month == nil then month = dz.time.month end
            if year == nil then year = dz.time.year end
            return os.date('*t',os.time{year=year,month=month+1,day=0}).day
        end

        local function triggerJSON(url, response, delay)
            local delay = delay or 0
            dz.openURL({    url = url,
                            method = "GET",
                            callback = response}).afterSec(delay)
        end
        
        local function getCosts(id) -- these costs should be set in domoticz settings
            if next(dz.data.energyCosts) == nil  or dz.data.energyCosts.creationTime < ( dz.time.dDate - dz.time.secondsSinceMidnight ) then
                local costURL = dz.settings['Domoticz url'] .. "/json.htm?param=getcosts&type=command&idx=" .. id
                triggerJSON(costURL, scriptVar .. "_cost")
            end
            return ( next(dz.data.energyCosts) ~= nil )
        end
        
        local function makeCostTable(t) -- (re)Create costTable if not existing yet; Refreshed at least once a day
            if next( dz.data.energyCosts ) == nil or dz.data.energyCosts.creationTime < ( dz.time.dDate - dz.time.secondsSinceMidnight ) then
                dz.data.energyCosts = t
                dz.data.energyCosts.electricityFixedDay  = (electricityFixedMonth or 0 ) / getDaysForMonth()
                --dz.data.energyCosts.gasFixedDay  = (gasFixedMonth or 0 ) / getDaysForMonth()
                dz.data.energyCosts.creationTime = dz.time.dDate
                dz.data.energyCosts.humanReadableCreationTime = dz.time.raw
            end
        end
        
        local function updateCustomSensor(device, value) 
            local currentValue = device.rawData[1]
            if value ~= tonumber(currentValue) then              -- Update only needed when new value is different fom previous one 
                dz.log(device.name .. " ==>> previous value: " .. currentValue .. " ; new value " .. value,dz.LOG_DEBUG)
                device.updateCustomSensor(value) 
            end
        end
        
        local function getEnergy(id)
            local energyURL = dz.settings['Domoticz url'] .. "/json.htm?range=month&sensor=counter&type=graph" ..
                                "&actmonth=" .. dz.time.month ..
                                "&idx=" .. id
                triggerJSON(energyURL, scriptVar .. "_energy")
        end
        
        --local function makeTodaysGasCosts()
        --    local gasTodayCost
        --    if gasCost then
        --        gasTodaysCost = dz.data.energyCosts.gasFixedDay * 10000
        --        gasTodaysCost = gasTodaysCost + gas.counterToday * dz.data.energyCosts.CostGas
        --    end
        --   return dz.utils.round(gasTodaysCost / 10000, 2)
        --end
        
        local function makeTodaysElectricityCosts(t)
            local today
            for i, record in ipairs(t) do
                if record.d == dz.time.rawDate then
                    today = i
                end
            end
            
            local electricityTodaysCost
            if electricityCost then 
                electricityTodaysCost = dz.data.energyCosts.electricityFixedDay * 10000
                if today then 
                    electricityTodaysCost = electricityTodaysCost + t[today].v * dz.data.energyCosts.CostEnergy
                    electricityTodaysCost = electricityTodaysCost + t[today].v2 * dz.data.energyCosts.CostEnergyT2
                    electricityTodaysCost = electricityTodaysCost - t[today].r1 * dz.data.energyCosts.CostEnergyR1
                    electricityTodaysCost = electricityTodaysCost - t[today].r2 * dz.data.energyCosts.CostEnergyR2
                end
            end
           
           return dz.utils.round(electricityTodaysCost / 10000,2) 
        end
        
        local function updateCustomSensor(device, value)
            if device == nil or value == nil then
                return 
            end
            local currentValue = device.rawData[1]
            if value ~= tonumber(currentValue) then              -- Update only needed when new value is different fom previous one 
                dz.log(device.name .. " ==>> previous value: " .. currentValue .. " ; new value " .. value,dz.LOG_DEBUG)
                device.updateCustomSensor(value) 
            end
        end
        
        if not ( item.isHTTPResponse ) then
            if not ( getCosts(electricity.id) ) then 
                -- logWrite("No or outdated costs. Next time the costs will be there")
                return 
            end 
            -- logWrite("-- costs are there; get energy data")
            getEnergy(electricity.id)
        elseif item.trigger == ( scriptVar .. "_energy" ) then
            updateCustomSensor( electricityCost, makeTodaysElectricityCosts(item.json.result))
            --updateCustomSensor( gasCost, makeTodaysGasCosts())
        else
            makeCostTable(item.json)
        end
    end
}
Raspberry pi 3 - Domoticz beta | Piface v.2 + Téléinfo + RFXtrx433E + ZME_UZB1 USB Stick
sondes Oregon | motorisations Somfy Yslo Flex 2 RTS | prises chacon | Fibaro FGD-212, FGSD002, FGFS101 | Sonoff easyESP, Tasmota, Espurna | Sherlock S2 | ParadoxMG5050

vil1driver
Messages : 5303
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Calculer le cout de l'électricité

Message par vil1driver »

je pense que xavier188 parle plutôt de ceci, mais ce que tu as fais est sympa ;)

Image
Image
Image
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien

xavier188
Messages : 12
Enregistré le : 15 févr. 2019, 17:38

Re: Calculer le cout de l'électricité

Message par xavier188 »

alors discutions close. Merci pour l'aide
on est bien d'accord que l'on ne peut pas faire de script avec du Domoticz pour windows ?

adv
Messages : 352
Enregistré le : 02 févr. 2016, 13:54
Contact :

Re: Calculer le cout de l'électricité

Message par adv »

Salut, nan nan les scripts LUA sont pris en charge dans Windows...

Sur le blog de Patrice il est stipulé:
Pour nos amis modifiant les fichiers sous Windows, enregistrez les en UTF8 sans BOM (Notepad++)

A+
Raspberry pi 3 - Domoticz beta | Piface v.2 + Téléinfo + RFXtrx433E + ZME_UZB1 USB Stick
sondes Oregon | motorisations Somfy Yslo Flex 2 RTS | prises chacon | Fibaro FGD-212, FGSD002, FGFS101 | Sonoff easyESP, Tasmota, Espurna | Sherlock S2 | ParadoxMG5050

totof60
Messages : 332
Enregistré le : 29 avr. 2016, 09:31

Re: Calculer le cout de l'électricité

Message par totof60 »

@ adv
merci pour le script

Pour ceux qui comme moi vont chercher ; c'est à mettre dans le dossier /home/pi/domoticz/scripts/dzVents/scripts
Domoticz V4.10717
sous raspbian-Stretch, Homebridge,RfLink
Raspberry pi3, Google home mini
plein de truc wifi !! de l'esp-01 jusque le nodemcu en passant par le wemos et même du DIY

TryphonDomo
Messages : 6
Enregistré le : 14 sept. 2019, 12:24
Localisation : Hte-Savoie
Contact :

Re: Calculer le cout de l'électricité

Message par TryphonDomo »

Bonjour,

Pensez vous que je pourrais utiliser ce script pour mon appareil de mesure(UMG605 de Janitza), sachant que je peux lui demander soit l'énergie soit la puissance avec ce code:
http://192.168.1.99/json.do?_PLN[0..2]
Résultat dans une page web:
"_PLN": [[ 1.4371, 3.3327, -2.0997],"W"]} (Courant non branché)

Mais je n'arrive pas à exploiter ces valeurs, à vrai dire, j'ai beau à lire et relire les tutos sur le Json, vraiment du mal à comprendre...
Je ne vois pas comment je peux inclure cette ligne de code dans tous les tutos que j'ai trouvé ici, à chaque fois j'ai des erreurs...
Si quelqu'un peut me venir en aide, ce serait super sympa!
Domoticz sur synology 218+, RFlink
Capt. Temp. Oregon et Lorsoul(sous marque) Detect. présence, eau, mvt, cam
Staion météo WMR200(http://www.cuvat.meteoamikuze.com/) UMG605(Qualité de tension)

Répondre