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”
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
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.23029 local gasM3Prijs = 0.5836 local waterM3Prijs = 0.8200 if (dz.time == 'Between 23:00 and 07:00') or (dz.day == 'Saturday') or (dz.day == 'Sunday') then kwhPrijs = 0.21266 -- Daltarief else kwhPrijs = 0.23029 -- Normaal tarief end -- 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) + kwhPrijsVast),2) -- rounded to two decimals and replace dot by comma local GasM3Kosten = tonumber(dz.utils.round( (gasM3Prijs * vandaagM3Gas) + gasM3PrijsVast),2) local WaterM3Kosten = tonumber(dz.utils.round( (waterM3Prijs * vandaagM3Water)/1000 + waterM3PrijsVast),2) -- 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: