DomoticzDzVentsMijn Smart HomeScripts

Dagelijkse energiekosten weergeven in Domoticz

17 reacties

Leestijd: 5 min

In een eerder blog heb ik je verteld over de slimme meter uitlezen in Domoticz. Omdat ik mij heb voorgenomen te gaan besparen waar ik kan, leek het mij verstandig om de dagelijkse kosten van mijn stroom- en gasverbruik in kaart te brengen. Na wat zoekwerk ben ik tot de volgende manier gekomen. Deze uitleg is wat ingewikkelder omdat we gaan werken met dzVents scripts. dzVents is een taal van Domoticz gebaseerd op LUA. Hiermee kan je zeer eenvoudig en snel scripts schrijven voor jouw automatisering. In andere artikels leg ik je nog meer scripts uit, maar voor nu houden we het bij de slimme meter.

Wat heb je nodig:

  • Domoticz
  • Gekoppelde slimme meter
  • 3 Custom Sensoren
  • dzEvents script

Als je mijn vorige blog gevolgd hebt, dan heb je je slimme meter aan Domoticz gekoppeld. Dit is natuurlijk belangrijk omdat we anders geen data hebben om mee te werken. Als het goed is zie je 4 sensoren in je Apparaten overzicht:

Domoticz Energiekosten Apparaten

Stap 1 – Een Dummy toevoegen aan Domoticz

Om de kosten weer te geven gaan we eerst een Dummy aanmaken. Ga naar Instellingen->Hardware .

Domoticz Energiekosten Dummy

Kies een duidelijke naam, ik heb gekozen voor Dummy (lekker origineel)

Selecteer bij Type: Dummy (Does nothing, use for virtual switches only).

Laat Gegevens Timeout op “Niet actief” staan.

Klik op Toevoegen.

Je hebt nu een Dummy gemaakt. Niets spannends, want er gebeurt nog niets. Nu kunnen we Virtuele Sensoren aanmaken. Dit worden de sensoren die onze kosten gaan weergeven.

Stap 2 – Maak virtuele sensoren in Domoticz

Klik op maak virtuele sensoren.

Domoticz Energiekosten Custom Sensor

Geef je sensor een naam: Stroomkosten.

Kies bij Type voor Custom Sensor.

En vul bij Aslabel EUR in. (Ik kies hier voor EUR omdat het label achter de waarde wordt weergegeven.)

Doe dit vervolgens nog 2x voor de namen:

  • Gaskosten
  • Kosten Stroom+Gas

Als je dit gedaan hebt dan zie je bij Instellingen->Apparaten 3 nieuwe sensoren staan.

Stap 3 – dzVents script toevoegen in Domoticz

Alle sensoren zijn nu aangemaakt. Tijd voor het ingewikkelde deel. We gaan het dzVents script installeren en activeren.

Dit kan op 2 manieren:

  • Via Domoticz -> Gebeurtenissen in de browser
  • Of handmatig op de Raspberry Pi

Om het makkelijk te houden raad ik je aan om het via de browser te doen. Later leg ik je uit hoe je dzVents via Raspberry Pi kunt programmeren en geef ik je meer tips over het aanroepen van scripts.

Voor nu blijven we in de browser en gaan we naar Instellingen->Meer instellingen->Gebeurtenissen.

Klik op + en selecteer dzVents->Timer.

Domoticz Energiekosten Dzvents

Je hebt nu een script file aangemaakt, waarin we het script gaan plaatsen die de berekening voor jouw kosten maakt en dit vervolgens koppelt aan de virtuele sensoren die we eerder gemaakt hebben.

Kopieer onderstaand script:

return {
      on = { 
        timer = {
           'every 15 minutes'            
        },
    }, 
    execute = function(domoticz, device, timer)

        local vandaagKwh      = domoticz.devices('Stroom').counterToday 
        local vandaagM3Gas    = domoticz.devices('Gas').counterToday 
               
        local StroomKosten  = domoticz.devices('Stroomkosten')
        local GasKosten     = domoticz.devices('Gaskosten')
        local Kosten = domoticz.devices('Kosten Stroom+Gas')
        
        -- Eenheidsprijs in Euro's / Kwh - M3
        local kwhPrijs = 0.22875
        local gasM3Prijs = 0.74681
         if (domoticz.time == 'Between 23:00 and 07:00') or (domoticz.day == 'Saturday') or (domoticz.day == 'Sunday') then
            kwhPrijs = 0.21330 -- Daltarief
        else
            kwhPrijs = 0.22875 -- Normaal tarief
        end 
       
        -- Vaste kosten in Euro's per dag (zoals vastrecht) 
        local kwhPrijsVast = 0.1435
        local gasM3PrijsVast = 0.1435
        
        -- Kosten berekenen
        local kwhKosten = tonumber(domoticz.utils.round( (kwhPrijs * vandaagKwh) + kwhPrijsVast,2))   
        local GasM3Kosten = tonumber(domoticz.utils.round( (gasM3Prijs * vandaagM3Gas) + gasM3PrijsVast,2))
        local Kostentotaal = kwhKosten + GasM3Kosten
      
        -- Kosten updaten
          StroomKosten.updateCustomSensor(kwhKosten)
          GasKosten.updateCustomSensor(GasM3Kosten)
          Kosten.updateCustomSensor(Kostentotaal)
    end
} 

En plaats deze in de editor.

Ik zal kort uitleggen wat het script inhoud. Ben je nog niet bekend met dzVents dan raad ik je aan om de wiki goed te lezen. Voor mij is het ook vrij nieuw maar met deze handleiding ben ik zelf al een heel eind gekomen. Geloof je het allemaal wel, skip dan door naar de volgende stap.

on = { timer = { 'every 15 minutes' },

Het script draait elke 15 minuten.

local vandaagKwh = domoticz.devices('Stroom').counterToday -- Stroommeter device 
local vandaagM3Gas = domoticz.devices('Gas').counterToday -- Gasmeter device 

local StroomKosten = domoticz.devices('Stroomkosten') -- Stroomkosten device 
local GasKosten = domoticz.devices('Gaskosten') -- Gaskosten device 
local Kosten = domoticz.devices('Kosten Stroom+Gas')

Hier worden de sensoren opgeroepen en in een variabele gestopt zodat we deze makkelijk kunnen gebruiken verderop in het script. De namen moeten overeenkomen met de namen van je sensoren.

Het volgende deel is belangrijk want hierin worden je energiekosten vanuit de leverancier ingevuld. Zoek jouw tarieven op (deze staan in je contract van je energieleverancier) en vul ze in.

-- Eenheidsprijs in Euro's / Kwh - M3 

local kwhPrijs = 0.22875 
local gasM3Prijs = 0.74681 

if (domoticz.time == 'Between 23:00 and 07:00') or (domoticz.day == 'Saturday') or (domoticz.day == 'Sunday') then 
   kwhPrijs = 0.21330 -- Daltarief 
else 
   kwhPrijs = 0.22875 -- Normaal tarief 
end 

-- Vaste kosten in Euro's per dag (zoals vastrecht) 
local kwhPrijsVast = 0.1435 
local gasM3PrijsVast = 0.1435

In het laatste deel wordt de berekening gemaakt en worden de waardes aan de juiste sensoren toegekend.


Klik nu op Opslaan.

En als het goed is zie je nu bij Overig de sensoren met de waardes. Let op: Dit kan even duren omdat het script natuurlijk elke 15 minuten draait.

Domoticz Energiekosten

Update 06-03-2020: Lees je waterkosten per maand uit via Domoticz

Met dank aan Thomas is het ook mogelijk om je waterkosten uit te lezen. Maak 2 nieuwe virtuele sensoren aan (zie hierboven voor de uitleg).

Voeg onderstaande code als los dzVents script toe of combineer hem met bovenstaand script.

return {
on = {
timer = {
'every 30 days'
},
},
execute = function(domoticz, device, timer)

local vandaagLiters = domoticz.devices(‘Water’).counterToday

local WaterKosten = domoticz.devices(‘Waterkosten’)

— Eenheidsprijs in Euro’s / Liters
local LitersPrijs = 0.09

— Vaste kosten in Euro’s per dag (zoals vastrecht)
local LitersPrijsVast = 0.20

— Kosten berekenen
local LitersKosten = tonumber(domoticz.utils.round( (LitersPrijs * vandaagLiters) + LitersPrijsVast,2))

— Kosten updaten
WaterKosten.updateCustomSensor(LitersKosten)

end
}

Let op: Om je waterverbruik te monitoren heb je een watermeter nodig die op jouw watermeter past. Deze zijn te koop voor circa €90,-. Deze dien je zelf met een uitbreidingsboard op je Raspberry te solderen.

 

Vond je dit artikel waardevol? Dan zou ik het zeer waarderen als je een reactie achterlaat. Je mag natuurlijk ook vragen stellen, ik help je waar ik kan.

Tags: Domoticz, DzVents, Mijn Smart Home, Scripts

17 reacties. Reactie plaatsen

  • Leuk! Ook ik ben al een tijdje aan het experimenteren met Domoticz, waarbij inmiddels zo “ambitieus” ben geworden dat ik verder wil dan enkele Blockly schakel scriptjes.
    Jouw script – met de duidelijke uitleg – gekopieerd en werkt in één keer. Omdat ik nieuwsgierig was of het werkte had ik de timer op 2 min. aangepast 😉 Bedankt voor dit mooie script!

    Beantwoorden
    • Hi Thomas,

      Gaaf om te horen dat het script ook voor jou werkt. Je bent vrij om met de instellingen te spelen.

      Let wel op dat een lagere interval zorgt voor meer schrijfopdrachten. Draai je Domoticz op een SD-kaart dan kan dit ten koste gaan van de levensduur.

      Groeten,
      Krijn

      Beantwoorden
  • Hallo Krijn,
    Je hebt eer van je werk. Onder inspiratie van jouw Tread vanmorgen ook mijn Waterkosten zichtbaar gemaakt. Mijn eerste – maar vanuit jouw idee – werkend stukje dzVents experiment;-). Ik moet nog even experimenteren met de kostenfactoren, maar dat komt wel goed. Timer staat hier op 1 min, maar zet ik terug op 15 min. Nogmaals bedankt.
    return {
    on = {
    timer = {
    ‘every 1 minutes’
    },
    },
    execute = function(domoticz, device, timer)

    local vandaagLiters = domoticz.devices(‘Water’).counterToday

    local WaterKosten = domoticz.devices(‘Waterkosten’)

    — Eenheidsprijs in Euro’s / Liters
    local LitersPrijs = 0.09

    — Vaste kosten in Euro’s per dag (zoals vastrecht)
    local LitersPrijsVast = 0.20

    — Kosten berekenen
    local LitersKosten = tonumber(domoticz.utils.round( (LitersPrijs * vandaagLiters) + LitersPrijsVast,2))

    — Kosten updaten
    WaterKosten.updateCustomSensor(LitersKosten)

    end
    }

    Beantwoorden
  • Weer gelukt! Met wat knippen, plakken en toch ook een beetje zelf nadenken 😉 heb ik nu een label in Domoticz dat de kosten voor stroom, gas én ook water weergeeft.
    Mijn “watermeter” is overigens een 8mm inductieve opnemer bovenop de meter die de omwentelingen van het meetschijfje telt en die vervolgens via een esp8266 naar Domoticz stuurt.

    Beantwoorden
    • Weet u toevallig of die “watermeter” met een esp8266 in zijn geheel ergens te koop zijn? Ik ben namelijk geen soldeer persoon :-). Heb vaker gezocht, maar ken de termen niet zo goed. Bij voorbaat dank.

      Beantwoorden
  • Beste Krijn,

    Heel erg bedankt voor deze duidelijke uitleg. Heb de waardes aangepast en alles geknipt en geplakt en werkt echt perfect! Ben hier echt super blij mee!

    Smika

    Beantwoorden
  • De watermeter is – afhankelijk van je type watermeter! – te koop voor zo’n €90,=.
    Je moet deze dan nog wel zelf met een “interface” (toch een beetje solderen 😉 in je “home automatic systeem” systeem implementeren. Om zo’n water meeteenheid te vinden is “Google your friend” hierbij. Nogmaals let wel goed op of deze op jouw type watermeter past. suc6.

    Beantwoorden
  • Hallo Krijn, leuk dat je mijn script ook publiceert. Je zegt dat het script de waterkosten per maand weergeeft. Maar waar zit de maand factor in jouw script verwerkt?

    Beantwoorden
  • Voor degene die wél handig met de soldeerbout zijn, is de watermeter opnemer natuurlijk voordelig te maken met een 8mm inductief opnemertje en een esp8266. Zie het web voor talloze ideeën hiervoor. Hoe krijg je de opnemer een beetje handig op de watermeter? In mijn geval heb ik een gat geboord in een leeg levensmiddelen bakje van plastic dat over de watermeter past. Zit het klepje in de weg dat kun je er – voorzichtig – afhalen zonder kapot te maken. suc6!

    Beantwoorden
  • Maand factor gevonden ;-). Je hebt de Timer op “every 30 days” gezet zie ik.
    Ik ben zelf niet zo handig in programmeren, maar leer zo al experimenterende steeds meer. Leuk. Om het aantal schrijf bewegingen te beperken: zou je niets zoiets kunnen programmeren dat het script enkel getriggerd wordt bij verspringen van een actuele waarde? Als er dan niemand thuis is, wordt het script ook steeds weggeschreven.

    Beantwoorden
  • he hallo, heb volgens mij alles precies gedaan wat op deze pagina staat, toch blijven de tellers bij mij op 0 EUR staan. Ik denk niet dat het NUTS bedrijf dit van me aan neemt:-)
    Kan iemand me misschien helpen? alvast bedankt voor de reactie’s

    Beantwoorden
  • Hoi Krijn,
    Erg bedankt voor deze duidelijk handleiding! Vandaag voor het eerst met een raspberry pi en Domoticz aan de gang gegaan en het werkt! Nu verder verdiepen in deze nieuwe materie.

    Beantwoorden
  • bedankt voor dit mooie script, het werkte direct na het instellen. ik heb alleen zonnepanelen op het dak liggen en zag dat dat er niet vanaf werd gehaald. ik heb nu je script een beetje aangepast en zien nu niet alleen wat ik eventueel per dag kwijt ben maar ook wat ik eventueel heb verdiend. hieronder het aangepaste script:

    return {
    on = {
    timer = {
    ‘every 15 minutes’
    },
    },
    execute = function(domoticz, device, timer)

    local vandaagKwh = domoticz.devices(‘P1 Meter’).counterToday
    local vandaagM3Gas = domoticz.devices(‘P1 Gas’).counterToday
    local vandaagopwek = domoticz.devices(‘KWh Meter’).counterToday

    local StroomKosten = domoticz.devices(‘Stroomkosten’)
    local GasKosten = domoticz.devices(‘Gaskosten’)
    local Kosten = domoticz.devices(‘Kosten Stroom+Gas’)

    — Eenheidsprijs in Euro’s / Kwh – M3
    local kwhPrijs = 0.2163
    local gasM3Prijs = 0.7663
    if (domoticz.time == ‘Between 23:00 and 07:00’) or (domoticz.day == ‘Saturday’) or (domoticz.day == ‘Sunday’) then
    kwhPrijs = 0.2033 — Daltarief
    else
    kwhPrijs = 0.2163 — Normaal tarief
    end

    — Vaste kosten in Euro’s per dag (zoals vastrecht)
    local kwhPrijsVast = 0.8574
    local gasM3PrijsVast = 0.7252

    — Kosten berekenen
    local kwhKosten = tonumber(domoticz.utils.round( (kwhPrijs * vandaagKwh) – (kwhPrijs * vandaagopwek) + kwhPrijsVast,2))
    local GasM3Kosten = tonumber(domoticz.utils.round( (gasM3Prijs * vandaagM3Gas) + gasM3PrijsVast,2))
    local Kostentotaal = kwhKosten + GasM3Kosten

    — Kosten updaten
    StroomKosten.updateCustomSensor(kwhKosten)
    GasKosten.updateCustomSensor(GasM3Kosten)
    Kosten.updateCustomSensor(Kostentotaal)
    end
    }

    nogmaals bedankt.

    kevin

    Beantwoorden
  • Beste Krijn, leuk gedaan. Ik vraag me alleen af waarom je de kosten per eenheid in het script hebt gezet en niet uit de instellingen haalt bij Kosten T1 bijvoorbeeld. Ik ben nl op zoek naar de juist verwijzing naar deze instellingen. Immers dan hoef je het script niet aan te passen als je kWh kosten veranderen, alleen instellingen aanpassen.

    Beantwoorden
    • Dag Peter,

      Goede vraag! Ik vraag het mij nu zelf ook af. Ik ben gewend om in de scripts te schrijven, vandaar dat ik geen rekening heb gehouden dat deze instellingen al in Domoticz zitten. Ik ga binnenkort eens knutselen om te kijken of ik het voor elkaar krijg de waardes uit te lezen uit de instellingen. Bedankt voor de tip!

      Beantwoorden

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Fill out this field
Fill out this field
Geef een geldig e-mailadres op.

Deze website gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.

Ook interessant voor jou…

Mijn Smart Home Z Wave Usb Installeren Domoticz
Z-Wave USB stick installeren in Domoticz
Mijn Smart Home Domoticz Installeren
Hoe installeer je Domoticz op een Rasberry Pi? (4 Stappen)

This content will appear inside a popup…

Menu