Stroom-, gas- en waterkosten zichtbaar maken in Domoticz

In een eerder artikel hebben we uitgelegd hoe je door middel van 3 Python scripts de stroom-, gas- en waterkosten zichtbaar kunt maken in Domoticz. Aangezien ik niet zo’n fan van Python ben heb ik verder gekeken hoe dit makkelijker kan. Gelukkig is de oplossing vrij eenvoudig: een dzVents script zodat alle kosten met één script te zien zijn in Domoticz. Om het waterverbruik in Domoticz te krijgen kun je de eerder geplaatste handleidingen volgen: Waterverbruik met LUA script of Waterverbruik met Python script.

Om het stroom- en gasverbruik inzichtelijk te krijgen moet je de Toon thermostaat koppelen aan Domoticz. Onderstaande zeven sensoren krijg je dan te zien. In dit voorbeeld gaat het om IDX 6 (Stroomverbruik) en IDX 7 (Gasverbruik).

Maak nu een Dummy hardware aan:

Klik vervolgens op Create Virtual Sensors en maak een Virtual Sensor aan van het type Custom Sensor. Na het toevoegen kijk je bij SETUP > DEVICES welk IDX de virtuele sensor gekregen heeft. Dit IDX hebben we dadelijk voor het script nodig. Maak ook een Custom sensor aan met de naam “Gaskosten” en een sensor met de naam “Waterkosten”

custom sensor Domoticz

Alle kosten-sensoren zijn nu in Domoticz zichtbaar, het is tijd voor het dzVents-script. Ga naar Setup > More Options > Events. Maak een nieuw dzVents script aan van het type Timer en kopieer onderstaand script. Indien de namen van de zes sensoren overeenkomen dan hoef je aan het script niets te wijzigen (de namen van de sensoren staan op regel 6 t/m 14). Het script draait iedere 5 minuten, indien gewenst kun je dat op regel 2 aanpassen.

return {
    on = { timer   = { "every 5 minutes" }},                    -- script draait iedere 5 minuten
    -- on = { devices = { "Stroom","Gas","Waterverbruik" }},    -- Verwijder -- aan het begin van deze regel en plaats -- voor bovenstaande regel als 
                                                                -- je het script wilt draaien zodra er een nieuw verbruik aan Domoticz is doorgegeven

    execute = function(dz)
        -- Devices
        local vandaagKwh      = dz.devices('Stroom').counterToday         -- Stroommeter device
        local vandaagM3Gas    = dz.devices('Gas').counterToday            -- Gasmeter device
        local vandaagM3Water  = dz.devices('Waterverbruik').counterToday  -- Watermeter device
        
        local StroomKosten  = dz.devices('Stroomkosten')                -- Stroomkosten device
        local GasKosten     = dz.devices('Gaskosten')                   -- Gaskosten device
        local WaterKosten   = dz.devices('Waterkosten')                 -- Waterkosten device

        -- Eenheidsprijs in Euro's / Kwh - M3
        local kwhPrijs      = 0.1886
        local gasM3Prijs    = 0.5836
        local waterM3Prijs  = 0.8200
        
        -- Vaste kosten in Euro's per dag (zoals vastrecht) 
        local kwhPrijsVast = 0.0000
        local gasM3PrijsVast = 0.0000
        local waterM3PrijsVast = 0.0000
        
        -- Kosten berekenen
        local kwhKosten      = tonumber(dz.utils.round( (kwhPrijs * vandaagKwh),2) + kwhPrijsVast)--)--:gsub("%.",",")   -- rounded to two decimals and replace dot by comma
        local GasM3Kosten    = tonumber(dz.utils.round( (gasM3Prijs * vandaagM3Gas),2) + gasM3PrijsVast)--)--:gsub("%.",",")
        local WaterM3Kosten  = tonumber(dz.utils.round( (waterM3Prijs * vandaagM3Water)/1000,2) + waterM3PrijsVast)--)--:gsub("%.",",")
        
        -- Kosten updaten
          StroomKosten.updateCustomSensor(kwhKosten)
          GasKosten.updateCustomSensor(GasM3Kosten)
          WaterKosten.updateCustomSensor(WaterM3Kosten)
    end
}

 

Na maximaal vijf minuten zie je dat de kosten voor de eerste keer zichtbaar zijn:

stroom-, gas- en waterkosten in domoticz

4 gedachten over “Stroom-, gas- en waterkosten zichtbaar maken in Domoticz

  • 1 november 2018 om 11:08
    Permalink

    Hoi Joost,

    Allereerst dank voor alle leuke onderwerpen op je site.
    Het uitbreiden van de mogelijkheden van Domoticz staat al een tijd op mijn TODO lijst 😉

    Ik vroeg me af waarom je de voorkeur hebt voor dzEvents,
    wat als ik het goed begrijp een (proprietary variatie zijn op?) LUA script(s is),
    tov Python. Ik lees nl overal dat Python *de* ‘fastets growing major programming language’ is.

    Anne.

    Beantwoorden
  • 1 november 2018 om 19:06
    Permalink

    Leuk idee en net script. Een vraag. Is er een reden dat je niet gekozen hebt om de prijzen in gebruikersvariabelen op te nemen?

    Beantwoorden
    • 1 november 2018 om 19:21
      Permalink

      Ik ben zelf niet zo’n fan van user variables, omdat je niet kunt aangeven in welke scripts ze gebruikt worden (ik heb zo’n 30 user variables in gebruik).

      Beantwoorden

Geef een reactie

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