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. 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 7 t/m 13). Het script draait iedere 5 minuten, indien gewenst kun je dat op regel 2 aanpassen.

 

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

stroom-, gas- en waterkosten in domoticz

64 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
  • 3 januari 2019 om 11:27
    Permalink

    Ik heb het script nog niet geprobeerd, maar als ik het zo zie, lijkt hij nog geen rekening te houden met verschil in hoog en laag tarief. Klopt dat en heb je een idee hoe je dat dan wel voor elkaar zou kunnen krijgen?

    Beantwoorden
    • 19 januari 2019 om 15:43
      Permalink

      Script hield geen rekening met hoog en laag tarief inderdaad. Ik heb even zitten proberen met zo’n dzVents script en onderstaande if then else constructie lijkt nu te werken. Ik heb overigens de Watermeter uitgecomment omdat ik die niet heb.

      return {
      on = { timer = { “every minute” }}, — 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(Domoticz)
      — Devices
      local vandaagKwh = Domoticz.devices(‘Stroom’).counterToday — Stroommeter device
      local vandaagM3Gas = Domoticz.devices(‘Gas’).counterToday — Gasmeter device
      –local vandaagM3Water = Domoticz.devices(‘Waterverbruik’).counterToday — Watermeter device

      local StroomKosten = Domoticz.devices(‘Stroomkosten’) — Stroomkosten device
      local GasKosten = Domoticz.devices(‘Gaskosten’) — Gaskosten device
      –local WaterKosten = Domoticz.devices(‘Waterkosten’) — Waterkosten device
      — Eenheidsprijs in Euro’s / Kwh – M3

      local kwhPrijs = 0

      if (Domoticz.time == ‘Between 23:00 and 07:00’) or (Domoticz.day == ‘Saturday’) or (Domoticz.day == ‘Sunday’) then
      kwhPrijs = 0.20978 — Daltarief
      else
      kwhPrijs = 0.2283 — Normaal tarief

      end

      local gasM3Prijs = 0.76767
      –local waterM3Prijs = 0.8200

      — Vaste kosten in Euro’s per dag (zoals vastrecht)
      local kwhPrijsVast = 0.82917808
      local gasM3PrijsVast = 0.66435616
      –local waterM3PrijsVast = 0.0000

      — Kosten berekenen
      local kwhKosten = tonumber(Domoticz.utils.round( (kwhPrijs * vandaagKwh)+ kwhPrijsVast,2) )–)–:gsub(“%.”,”,”) — rounded to two decimals and replace dot by comma
      local GasM3Kosten = tonumber(Domoticz.utils.round( (gasM3Prijs * vandaagM3Gas) + gasM3PrijsVast,2))–)–:gsub(“%.”,”,”)
      –local WaterM3Kosten = tonumber(Domoticz.utils.round( (waterM3Prijs * vandaagM3Water)/1000,2) + waterM3PrijsVast)–)–:gsub(“%.”,”,”)

      — Kosten updaten
      StroomKosten.updateCustomSensor(kwhKosten)
      GasKosten.updateCustomSensor(GasM3Kosten)
      –WaterKosten.updateCustomSensor(WaterM3Kosten)
      end
      }

      Beantwoorden
      • 30 april 2019 om 22:54
        Permalink

        Inderdaad dit werkt alleen was ik even stuk gelopen op het deeltje ‘ execute = function(Domoticz) ‘. In het originele voorbeeld staat ‘execute = function(dz)’ en als je dan twee stukken code merge dan gaat het mis.

        Ik ben er blij mee het werkt!!

        Beantwoorden
  • 26 maart 2019 om 20:17
    Permalink

    Geweldig artikel.. net als zovele welke hier op de site staan!
    Hoe kom jij trouwens aan die custom icons voor je gas en water sensoren? Zou je ze evt willen delen?

    Beantwoorden
  • 5 mei 2019 om 16:36
    Permalink

    ik krijg een melding in de log :
    2019-05-05 16:34:29.732 Status: dzVents: Error (2.4.6): error loading module ‘Hoog en laag tarief’ from file ‘/home/pi/domoticz/scripts/dzVents/generated_scripts/Hoog en laag tarief.lua’:
    2019-05-05 16:34:29.732 …cripts/dzVents/generated_scripts/Hoog en laag tarief.lua:2: unexpected symbol near char(226)
    en er staat een rood kruisje voor line 2

    Beantwoorden
  • 13 mei 2019 om 09:11
    Permalink

    ik krijg een melding in de log :
    2019-05-05 16:34:29.732 Status: dzVents: Error (2.4.6): error loading module ‘Hoog en laag tarief’ from file ‘/home/pi/domoticz/scripts/dzVents/generated_scripts/Hoog en laag tarief.lua’:
    2019-05-05 16:34:29.732 …cripts/dzVents/generated_scripts/Hoog en laag tarief.lua:2: unexpected symbol near char(226)
    en er staat een rood kruisje voor line 2

    Beantwoorden
  • 26 mei 2019 om 19:24
    Permalink

    kan je iets maken waarbij de terug geleverde stroom wordt verrekend?

    Beantwoorden
    • 26 mei 2019 om 20:53
      Permalink

      Hoi Maarten,

      Ik heb geen terug geleverde stroom, helaas kan ik je hier niet mee helpen.

      Beantwoorden
    • 28 mei 2019 om 03:20
      Permalink

      Hoi Maarten,

      Dat zou niet al te moeilijk moeten zijn.
      Ne zoals in het voorbeeld de kwhKosten worden berekend kun je dat ook doen voor de kwhOpbrengsten.
      Je kunt dan nog een extra virtual sensor aanmaken waarin je het verschil opslaat.

      Anne.

      Beantwoorden
      • 1 juni 2019 om 14:36
        Permalink

        Ja binnenkort eens in verdiepen.
        Ik draai nu 4.10717 en al mijn scrips worden niet meer getriggerd 🙁
        dzEvents staan aan

        Beantwoorden
  • 1 september 2019 om 21:33
    Permalink

    electricityTodaysCost = electricityTodaysCost – t[today].r1 * dz.data.energyCosts.CostEnergyR1
    electricityTodaysCost = electricityTodaysCost – t[today].r2 * dz.data.energyCosts.CostEnergyR2

    toevoegen aan het script op regel 138,139
    draai het al een aantal maanden zonder problemen 🙂

    Beantwoorden
    • 6 oktober 2019 om 11:35
      Permalink

      Hoi Maarten,

      Zou je je script hier eens bij willen zetten?
      Mijn script gaat maar tot regel 39.
      Ook ik ben geïnteresseerd in de teruglevering kosten te verrekenen.
      Dank U.

      Beantwoorden
  • 29 september 2019 om 20:29
    Permalink

    Prachtig script.
    Echter als ik bij vaste kosten ipv 0.0 invoer maar onderstaande:

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

    Dan is er geen afronding op 2 getallen (bij 0,0 als vastprijs wel.
    Hoe zou ik dat op kunnen lossen?

    Ik draai Domoticz V4.11337

    Beantwoorden
    • 29 september 2019 om 20:55
      Permalink

      Script is nu aangepast, zodat bij gebruik van vaste kosten ook de afronding op 2 decimalen wordt toegepast.

      Beantwoorden
  • 6 oktober 2019 om 19:59
    Permalink

    Bedankt voor het juist afronden.
    Ik draaide Domoticz V4.11337, maar heb nu een schone installatie gedaan en draai nu Domoticz V4.10717 (laatste stable) en waag me even niet meer aan de Beta releases.

    Helaas lijkt e.e.a. Niet meer getriggerd te worden.
    alles blijft op 1 EUR staan.

    Maarten Duijst schreef op 1 september 2019 om 21:33 als oplossing:

    electricityTodaysCost = electricityTodaysCost – t[today].r1 * dz.data.energyCosts.CostEnergyR1
    electricityTodaysCost = electricityTodaysCost – t[today].r2 * dz.data.energyCosts.CostEnergyR2

    toevoegen aan het script op regel 138,139

    Maar er is helemaal geen regel 138,139 in je script.
    Waar moet ik dat dan neerzetten om alles werkend (trigger) te krijgen onder Domoticz V4.10717 (laatste stable)?

    Beantwoorden
  • 28 oktober 2019 om 22:52
    Permalink

    Hallo George,

    Maarten gebruikt volgens mij een ander script. Maar met de onderstaande regel kun je de teruglevering uit je stroommeting halen.

    local vandaagKwhOpgewekt = dz.devices(‘Stroomverbruik’).counterDeliveredToday — Stroommeter device

    Als je deze waarde aftrekt van het verbruik dan heb je de energiekosten per dag.

    — Kosten berekenen
    local kwhKosten = tonumber(dz.utils.round( ((kwhPrijs * (vandaagKwh-vandaagKwhOpgewekt) + kwhPrijsVast)),2))–:gsub(“%.”.”.”) — rounded to two decimals and replace dot by comma

    Beantwoorden
  • 9 november 2019 om 12:28
    Permalink

    Ik heb naar de script gekeken en uitgeprobeerd alleen zit er volgens mij een fout in. Je hebt inderdaad onderscheid gemaakt in de prijs van hoogtarief en daltarief. Alleen er is geen onderscheid in de verbruik en de rekensom.

    Wat er nu gebeurt met je script is dat op het moment dat deze runt, de stand van verbruik op die dag opvraagd met .counterToday en deze dan vermenigvuldigt met normaaltarief of daltarief afhankelijk van de tijdstip van de dag. Dit betekent dat als je script om 23:59 runt dan zal je de totale verbruik van de dag (hoog en laag, want counterToday maakt daar geen onderscheid in) vermenigvuldigen met de laagtarief.

    Ter indicatie is dit geen probleem, maar als je jaarverbruik wilt bijhouden, met oa je andere script, dan heb je telkens gerekend met je daltarief. Je andere script (jaarverbruik) runt op 23:59

    Beantwoorden
  • 15 december 2019 om 14:34
    Permalink

    Ik probeer dit script te implementeren maar ik krijg een foutmelding in mijn log:
    ‘EventSystem: Lua script Kosten did not return a commandArray’

    Hoe los ik dit op? Ik heb al behoorlijk zitten googlen maar zie geen goede oplossing.

    Beantwoorden
    • 15 december 2019 om 21:02
      Permalink

      Je heb het script opgeslagen als LUA, maar het is een dzVents-script.

      Beantwoorden
  • 17 december 2019 om 07:54
    Permalink

    inderdaad, wat stom van me. Nu werkt het wel. Dank voor je hulp.
    Zit nog wel met decimalen te rommelen. Het is mij niet helemaal duidelijk hoe ik deze regel moet aanpassen als ik 2 decimalen wil:

    Dit is het nu:
    local kwhKosten = tonumber(dz.utils.round( (kwhPrijs * vandaagKwh) +
    kwhPrijsVast),2) –)–:gsub(“%.”,”,”)

    Als ik streepjes aan het einde weg haal krijg ik een foutmelding:
    local kwhKosten = tonumber(dz.utils.round( (kwhPrijs * vandaagKwh) +
    kwhPrijsVast),2) ):gsub(“%.”,”,”)

    Beantwoorden
    • 17 december 2019 om 21:37
      Permalink

      Het cijfer 2 zorgt ervoor dat je 2 decimalen krijgt. Als je 2 in 1 verandert dan krijg je een bedrag met 1 decimaal.

      Beantwoorden
  • 18 december 2019 om 07:18
    Permalink

    maar ik krijg als ik jouw script gebruik geen enkele decimaal alleen hele euro’s. Is dat een instelling in domoticz? Ik zie dit nergens staan qua instelling.

    Beantwoorden
    • 18 december 2019 om 18:28
      Permalink

      Vreemd! Ik krijg met het script gewoon 2 decimalen (en als ik er 4 neer zet dan krijg ik 4 decimalen).

      Beantwoorden
  • 19 december 2019 om 15:34
    Permalink

    Vraagje
    Werkt dit alleen met een Toon thermostaat of werkt het ook als ik op een andere manier al mijn dagelijkse gasverbruik meet in Domoticz.???

    Beantwoorden
    • 19 december 2019 om 19:49
      Permalink

      Hoeft niet persé via een Toon thermostaat te gaan.
      Zo lang je met een stroommeter, gasmeter en/of watermeter device in Domoticz hebt.

      — 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

      Beantwoorden
  • 19 december 2019 om 20:41
    Permalink

    Dat heb ik Joost Ik gebruik onderstaand script maar daar vind ik niet de dagwaardes in terug .

    — dzVents script to Parse P1 Smart Meter Electricity value into separate Meter Readings.

    local fetchIntervalMins = 5 — (Integer) Minutes frequence of this script execution 1 = every minute, 10 = every 10 minutes, etc ) must be one of (1,2,3,4,5,6,10,12,15,20,30)
    local ScriptVersion = ‘0.1.9’

    return {

    on = {
    timer = { ‘every ‘ .. fetchIntervalMins .. ‘ Minutes’ }
    },

    logging = {
    level = domoticz.LOG_DEBUG, — Uncomment this line to override the dzVents global logging setting
    marker = ‘SME ‘.. ScriptVersion
    },

    execute = function(dz, item)

    — The following need updated for your environment get the Idx or ‘Name’ of the Device tab.
    local P1data = 78 — Electra, P1 Smart Meter device
    local idxu1 = 118 — Meter Usage low, Virtual device, counter incremental
    local idxu2 = 119 — Meter Usage High, Virtual device, counter incremental
    local idxr1 = 120 — Meter Return Low, Virtual device, counter incremental
    local idxr2 = 121 — Meter Return High, Virtual device, counter incremental
    local idxcons = 122 — Meter Actual Usage, Virtual device, counter incremental
    local idxprod = 123 — Meter Actual Production, Virtual device, counter incremental
    local idxuTotal = 124 — Meter Usage low, Virtual device, counter incremental
    local idxrTotal = 125 — Meter returnlow, Virtual device, counter incremental

    — Get values from device P1Data of the Smart Meter
    local SMdata = dz.devices(P1data)

    local function updateCounter(idx,value)
    dz.devices(idx).updateCounter(value)
    dz.log(“Set ” .. dz.devices(idx).name .. ” to: “,dz.LOG_DEBUG)
    end

    — Update the device and Debug meassages with the accessory values from table SMdata
    updateCounter(idxu1,SMdata.usage1)
    updateCounter(idxu2,SMdata.usage2)
    updateCounter(idxr1,SMdata.return1)
    updateCounter(idxr2,SMdata.return2)
    updateCounter(idxcons,SMdata.usage)
    updateCounter(idxprod,SMdata.usageDelivered)

    updateCounter(idxuTotal,( SMdata.usage1 + SMdata.usage2 ))
    updateCounter(idxrTotal,( SMdata.return1 + SMdata.return2 ))

    end
    }

    Beantwoorden
    • 19 december 2019 om 22:21
      Permalink

      Device 78 is je stroommeter. Je moet in het script eventueel wel alles van gas en water verwijderen als je deze devices niet hebt.

      Beantwoorden
      • 19 december 2019 om 22:50
        Permalink

        Helemaal met jou eens en ik heb ook de niet gebruikte regels gecomenteerd. (–)
        Maar als ik Device 78 (mijn p1 meter) zie ik het het huidig verbruik, het dag verbruik en het dag geleverd.

        Maar die vind ik niet in de devices van dit script terug.

        Beantwoorden
        • 20 december 2019 om 07:50
          Permalink

          .counterToday is het dagverbruik van device Stroom

          local vandaagKwh = dz.devices(‘Stroom’).counterToday — Stroommeter device

          Beantwoorden
  • 20 december 2019 om 14:31
    Permalink

    Het script loopt zonder foutmeldingen maar mijn cijfers kloppen niet.
    Mijn laatste vermoeden is dat het script alleen te gebruiken is voor een 1 fase meter en niet voor een drie fase meter. Maar ik kan het mis hebben natuurlijk.
    Ik ga nog proberen om b.v. het verbruik over de 3 fases bij elkaar te brengen.
    Jammer maar zal wel eer wat komen ….

    Beantwoorden
  • 20 december 2019 om 17:03
    Permalink

    Zijn dit de normale apparaten die je ziet bij het aansluiten van de P1 meter in Domoticz ??
    Of mis ik waarde’s ?? Ik zie in de string maar 6 staan ??

    78 Energie-meter 0001 1 Stroom P1 Smart Meter Energy 3772454;3368617;2217788;4857762;250;0
    79 Energie-meter 0000000 1 Usage L1 Usage Electric 0 Watt
    80 Energie-meter 0000000 2 Usage L2 Usage Electric 23 Watt
    81 Energie-meter 0000000 3 Usage L3 Usage Electric 226 Watt
    82 Energie-meter 0000000 4 Delivery L1 Usage Electric 0 Watt
    83 Energie-meter 0000000 5 Delivery L2 Usage Electric 0 Watt
    84 Energie-meter 0000000 6 Delivery L3 Usage Electric 0 Watt
    85 Energie-meter 0001 2 Gas P1 Smart Meter Gas 6408.862

    Beantwoorden
    • 20 december 2019 om 19:13
      Permalink

      Je string is hetzelfde als 1 fase bij mij:
      218 2019-12-20 19:07:52 Stroom 252503;182608;15;0;217;0

      Geen idee of het bij 3 fases anders moet zijn.

      Beantwoorden
  • 21 december 2019 om 18:47
    Permalink

    Door een paar aanpassingen werkt alles nu op het device van de huidige levering. (idxprod)
    Hier kijk ik later nog eens naar waarom ik die waarde niet uit de meter krijg.
    Verder heb ik het script toegevoegd voorde stroomkosten en gaskosten .
    Echter blijven deze op 1 Euro staan.
    Wel mooi maar niet goed lijkt mij..

    Beantwoorden
  • 22 december 2019 om 14:55
    Permalink

    Kan iemand mij de juiste formulering geven van onderstaande string.
    Ik heb het script zo overgenomen maar nu wordt het laatste gedeelte uitgecomenteerd door de twee – –

    local kwhKosten = tonumber(dz.utils.round( (kwhPrijs * vandaagKwh) + kwhPrijsVast),2) –)–:gsub(“%.”,”,”)

    Beantwoorden
    • 23 december 2019 om 19:10
      Permalink

      – -)- -:gsub(“%.”,”,”) kun je weglaten, dit doet niks (meer). Is nu ook verwijderd uit bovenstaand script.

      Beantwoorden
  • 22 december 2019 om 17:01
    Permalink

    Ik heb van alles geprobeerd maar blijf de waarde 1 houden in het berekenen van de kosten.

    local kwhKosten = tonumber(domoticz.utils.round((kwhPrijs*vandaagKwh)+kwhPrijsVast),2)

    Alle waarden van de variabelen zijn aanwezig maar de uitkomst is en blijft 1
    Ook al verkort ik de regel tot:
    local kwhKosten = tonumber(domoticz.utils.round(kwhPrijs*vandaagKwh),2)
    Het is en blijft 1
    Zelfs als ik het volgende doe:
    local kwhKosten = tonumber(domoticz.utils.round((0.23029*2.625)+kwhPrijsVast),2)
    Blijft de uitkomst 1
    Ja en zelfs bij deze:
    local kwhKosten = tonumber(domoticz.utils.round(0.23029*2.625),2)

    Zijn er meer die hier problemen mee hebben??

    Beantwoorden
  • 24 december 2019 om 11:40
    Permalink

    Hierbij de de oplossing:

    Als je een argument wilt converteren naar een nummer en dit is reeds een nummer of converteerbare string dan zal het je het nummer geven in alle andere gevallen een 0
    Zie ook het misplaatste haakje sluiten in het script.

    1ste oplossing:
    local kwhKosten = tonumber(dz.utils.round( (kwhPrijs * vandaagKwh) + kwhPrijsVast, 2 ))

    Een nog betere oplossing :
    local kwhKosten = dz.utils.round( kwhPrijs * vandaagKwh + kwhPrijsVast, 2)

    — Kosten berekenen
    local kwhKosten = dz.utils.round( (kwhPrijs * vandaagKwh) + kwhPrijsVast,2)
    local GasM3Kosten = dz.utils.round( (gasM3Prijs * vandaagM3Gas) + gasM3PrijsVast,2)
    –local WaterM3Kosten = dz.utils.round( (waterM3Prijs * vandaagM3Water)/1000 + waterM3PrijsVast,2)

    Beantwoorden
    • 23 februari 2020 om 11:07
      Permalink

      Top kerel, ben al een paar dagen aan het stoeien (maar niet goed gelezen, staat gewoon gepost hier). Het werkt nu perfect bij mij. Bedankt!

      Beantwoorden
  • 15 januari 2020 om 22:26
    Permalink

    Hallo,
    ik probeer het aan de gang te krijgen het script. Maar krijg de hele tijd deze melding in mijn log:
    020-01-15 22:24:00.474 Status: dzVents: Info: —— Start internal script: energie kosten:, trigger: every minute
    2020-01-15 22:24:00.474 Status: dzVents: Error (2.4.19): An error occured when calling event handler energie kosten
    2020-01-15 22:24:00.474 Status: dzVents: Error (2.4.19): …icz/scripts/dzVents/generated_scripts/energie kosten.lua:7: attempt to index global ‘Domoticz’ (a nil value)
    2020-01-15 22:24:00.474 Status: dzVents: Info: —— Finished energie kosten

    iemand een idee?
    Alvast dank

    Beantwoorden
    • 16 januari 2020 om 07:13
      Permalink

      Heet jouw stroommeter Stroom? Let op de hoofdletter.

      Beantwoorden
  • 16 januari 2020 om 08:43
    Permalink

    Goedemorgen,

    ik ben eruit. Ik had bij local vandaagKwh = Domoticz.devices(‘Meterstanden’).counterToday — Stroommeter device
    local vandaagM3Gas = Domoticz.devices(‘Gas1’).counterToday — Gasmeter device
    De virtuele sensoren ingevuld. Nu mijn huidige sensoren van p1 meter ingevuld en het werkt. 🙂
    Was er al 10 dagen mee aan het stoeien, Ieder geval dank voor het mee denken.

    Beantwoorden
  • 18 januari 2020 om 09:41
    Permalink

    Mijn watermeter telt keurig de liters water maar de kosten van het water worden niet berekend.
    Alleen de vaste kosten worden elke dag er bij opgeteld. Waar doe ik wat fout ??

    Beantwoorden
    • 18 januari 2020 om 15:55
      Permalink

      Dat is lastig te zeggen zonder (eventuele) foutmeldingen. Hebben alle devices dezelfde naam als in het artikel? Anders zou het daar al fout kunnen gaan.

      Beantwoorden
  • 18 januari 2020 om 19:01
    Permalink

    Joost ik heb alles nog een keer gecontroleerd en kan geen fouten vinden.
    Mijn devices zijn exact zo genoemd als je in jou script ook aangeeft.
    Het device “Waterverbruik” geeft keurig het waterverbruik aan als onderstaand.

    Waterverbruik: 0.183 m3 ook het totaalverbruik word exact aangegeven. (vandaagM3Water)

    Het device “Waterkosten” geeft elke dag aan: 0,34 Euro (dit zijn de vaste kosten per dag(waterM3PrijsVast))

    Nu ik dit hier zo schrijf kom ik erachter dat de verekening van water per m3 gaat natuurlijk en niet per liter (gelukkig).

    Kan het zo zijn dat er niet eerder verrekening plaats vind dat dat de watermeter op 1m3 staat?
    En word deze dan weer terug gezet op 0?

    Ik ben er van uit gegaan dat het hetzelfde is als met de stroom en gasmeter.
    Elke dag worden deze weer op nul gezet. tenminste de dagmeters

    Verder heb ik helemaal geen errors e.d. dus lijkt mij het script goed te lopen.

    Beantwoorden
  • 19 januari 2020 om 16:45
    Permalink

    Probleem opgelost..

    local WaterM3Kosten = dz.utils.round( (waterM3Prijs * vandaagM3Water)/ 1000 + waterM3PrijsVast,2)

    veranderd in:

    local WaterM3Kosten = dz.utils.round( (waterM3Prijs * vandaagM3Water) + waterM3PrijsVast,2)

    Beantwoorden
  • 27 januari 2020 om 03:34
    Permalink

    ik krijg onderstaande error
    2020-01-27 03:27:00.448 Status: dzVents: Info: —— Finished electra
    2020-01-27 03:27:00.448 Error: dzVents: Error: (2.5.7) An error occurred when calling event handler electra
    2020-01-27 03:27:00.448 Error: dzVents: Error: (2.5.7) …i/domoticz/scripts/dzVents/generated_scripts/electra.lua:30: bad argument #1 to ‘tonumber’ (string expected, got number)

    aangepast in script
    timer 1 minuut
    — Devices
    local vandaagKwh = dz.devices(‘Power’).CounterToday — Stroommeter device

    output json

    “result” :
    [
    {
    “AddjMulti” : 1.0,
    “AddjMulti2” : 1.0,
    “AddjValue” : 0.0,
    “AddjValue2” : 0.0,
    “BatteryLevel” : 255,
    “Counter” : “17174.384”,
    “CounterDeliv” : “0.000”,
    “CounterDelivToday” : “0.000 kWh”,
    “CounterToday” : “1.318 kWh”,
    “CustomImage” : 0,
    “Data” : “10189996;6984388;0;0;364;0”,
    “Description” : “”,
    “Favorite” : 1,
    “HardwareID” : 4,
    “HardwareName” : “Slimme meter”,
    “HardwareType” : “P1 Smart Meter USB”,
    “HardwareTypeVal” : 4,
    “HaveTimeout” : false,
    “ID” : “0001”,
    “LastUpdate” : “2020-01-27 03:24:06”,
    “Name” : “Power”,
    “Notifications” : “false”,
    “PlanID” : “0”,
    “PlanIDs” :

    Ik weet niet wat ik fout doe .
    iemand een suggestie ?
    alvast bedankt Ad

    Beantwoorden
  • 11 februari 2020 om 00:31
    Permalink

    Hoi,

    Ik krijg het maar niet aan de praat. Ben helemaal opnieuw begonnen met bovenstaand script en verder nog niets aangepast. Krijg dan deze melding:

    2020-02-11 00:25:00.213 Error: dzVents: Error: (2.5.7) An error occurred when calling event handler Script #4
    2020-02-11 00:25:00.213 Error: dzVents: Error: (2.5.7) …Domoticz\scripts\dzVents\generated_scripts/Script #4.lua:26: bad argument #1 to ‘tonumber’ (string expected, got number)

    Iemand enig idee?

    Beantwoorden
  • 22 februari 2020 om 10:20
    Permalink

    Echt supertof dat je dit hebt opgesteld, ben er al een paar dagen mee bezig maar krijg de kosten niet goed. Er komt nu wel iets in beeld nadat ik de benaming goed had gezet (in het script stond stroom, maar bij mij zit de counter in “Power”
    Echter zie ik elke dag “1” euro, bij zowel gas al electra. Ik heb de waarden van mijn energieleverancier overgenomen, vergeet ik iets?

    https://www.mupload.nl/img/ka3u6p7328.png

    Beantwoorden
      • 23 februari 2020 om 11:08
        Permalink

        Het is uiteindelijk gelukt, staat hierboven beschreven. Gelukt dus!

        Beantwoorden
  • 1 mei 2020 om 09:16
    Permalink

    Super gaaf script, heb deze nu enkele dagen draaien. Super bedankt voor het delen!

    Ik heb zelf nog niet zoveel script skills maar denk je dat het haalbaar is om naast het hoog, laag en weekend tarief ook de feestdagen toe te voegen middels exacte datum?

    Nederlandse officiële feestdagen in 2020:
    Nieuwjaarsdag: woensdag 1 januari
    Pasen: zondag 12 april, maandag 13 april
    Koningsdag: maandag 27 april
    Bevrijdingsdag: dinsdag 5 mei
    Hemelvaartsdag: donderdag 21 mei
    Pinksteren: zondag 31 mei, maandag 1 juni
    Eerste en tweede kerstdag: vrijdag 25 december en zaterdag 26 december

    Wanneer deze dagen ook meegenomen kunnen worden krijg je een meer gesloten overzicht die overeenkomt met je jaarafrekening.

    Nogmaals bedankt voor je script 🙌

    Beantwoorden
    • 2 mei 2020 om 09:58
      Permalink

      Dat zou wel kunnen, maar dat heeft vrijwel geen effect. Het zijn 10 dagen, waarvan de helft van de uren (‘s nachts) sowieso al in het daltarief vallen. Daarnaast vallen altijd tenminste 2 dagen op zondag (is ook al daltarief).
      Over het hele jaar zal het niet meer dan 1 euro verschil maken (uitgaande van 10 kW per dag).

      Beantwoorden
      • 4 mei 2020 om 22:03
        Permalink

        Bedankt voor je reactie Joost en je hebt ook zeker wel gelijk dat het verschil misschien ook wel verwaarloosbaar is maar ik kijk graag altijd achter de komma 🙂

        Beantwoorden
  • 19 juni 2020 om 12:00
    Permalink

    Ben aan bezig om het script werkend te krijgen.
    Ik krijg steeds onderstaande foutmelding.

    2020-06-19 11:58:00.441 Error: dzVents: Error: (3.0.9) …/domoticz/var/scripts/dzVents/generated_scripts/Venz.lua:29: bad argument #1 to ‘tonumber’ (string expected, got number)

    Zou je aan kunnen geven wat ik fout doe?
    Groet, Peter

    Beantwoorden
  • 4 juli 2020 om 14:45
    Permalink

    Hoi Peter ik had hetzelfde probleem,
    tonumber werkt blijkbaar niet meer, gebruik onderstaande code (dus zonder de tonumber):

    local kwhKosten = dz.utils.round( (kwhPrijs * vandaagKwh) + kwhPrijsVast,2)

    in het voorbeeld script staat de tonumber nog, maar in de reacties eronder is het aangepast, wellicht kan de auteur het nog aanpassen

    Beantwoorden
    • 6 juli 2020 om 20:29
      Permalink

      Zelf gebruik ik het script mét tonumber en dat werkt hier nog steeds prima (met de nieuwste beta van Domoticz).

      Beantwoorden
  • 6 juli 2020 om 21:54
    Permalink

    ok dan zal er bij mij toch iets anders zijn (ik draai hem op een Pi), maar wellicht dat het bij iemand anders ook tot de oplossing kan leiden

    Beantwoorden
    • 17 juli 2020 om 11:44
      Permalink

      Hi Henry,

      Ik heb precies hetzelfde probleem,

      2020-07-17 11:43:35.766 Error: dzVents: Error: (3.0.2) An error occurred when calling event handler Script #2
      2020-07-17 11:43:35.766 Error: dzVents: Error: (3.0.2) …domoticz/scripts/dzVents/generated_scripts/Script #2.lua:32: bad argument #1 to ‘tonumber’ (string expected, got number)

      Dit werkt dan ook niet. Je eerdere oplossing geeft geen foutmelding meer voor Stroomkosten, maar laat nu ook geen waarde zien op de dummy.

      @Joost, ik draai zelf ook de laatste versie en tonumber werkt bij mij niet. Enig idee?

      Alvast bedankt! 🙂

      Beantwoorden
  • 30 oktober 2020 om 13:24
    Permalink

    Beste Joost, bedankt voor dit leuke script! Werk erg goed (vooral nadat ik de tarieven had aangepast en een “Punt” ipv een “Komma” bij de tarieven heb veranderd) Nu heb ik een vraag:
    Ik zag dat jij van die leuke “Icons” hebt voor “Gas” en “Stroom”. Kan je me vertellen waar je deze gevonden hebt?

    Beantwoorden

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.