Energymeter Graphs with Grafana

Hello,

I log my electricity meter reading with Tasmota. I can only read the total value. I would like to have the daily/weekly/monthly/yearly consumption displayed with grafana. Additionally the respective costs. Additionally I would like to display the current consumption. The current total value is transmitted every 10 seconds. Has anyone ever done something similar and can help me :slight_smile:
Many thanks !

Hello,

The best you do is first store the total value with persist.
Then make a rule fired by cron daily at 23:59 that stores an extra value for the total the past
day.
You can also fire cron at the last day of the month to store the month total.

I have two rules that control it all.

rule "Count daily total"
when
    Time cron "0 59 23 1/1 * ? *"
then
    logInfo("Dagtotaal tellen", "Stel vandaag naar gisteren "+ (VerbruikVandaag.state as Number))
    TuindeurZon.postUpdate(0)
    if (PrijsLeveringElektro.state === NULL || PrijsLeveringElektro.state === UNDEF) {  PrijsLeveringElektro.postUpdate(0.1091) } 
    if (PrijsNetbeheerElektro.state === NULL || PrijsNetbeheerElektro.state === UNDEF) {  PrijsNetbeheerElektro.postUpdate(0.6348) } 
    if (PrijsEnergieTax.state === NULL || PrijsEnergieTax.state === UNDEF) {  PrijsEnergieTax.postUpdate(1.44) } 
    if (PrijsPerKwh.state === NULL || PrijsPerKwh.state === UNDEF ) { PrijsPerKwh.postUpdate(0.2099) }
    
    var tGebruik = (Laagtarief.state as Number) + (Hoogtarief.state as Number) 
    var tKosten = ((VerbruikVandaag.state as Number) * (PrijsPerKwh.state as Number)) + ((PrijsLeveringElektro.state as Number) + (PrijsNetbeheerElektro.state as Number) - (PrijsEnergieTax.state as Number) / 2)
    VerbruikGisteren.sendCommand(tGebruik)  // is meterstand gisteren
    ElektroKostenDag.sendCommand(tKosten)
    val dagNum = new DateTime().getDayOfMonth()
    val mnNum = new DateTime().getMonthOfYear()
    if (dagNum == 31 && mnNum == 12) {
       MeterstandJaarStart.postUpdate(0 - (Laagtarief.state as Number + Hoogtarief.state as Number))
    }
end




rule "When the total is updated"
    
when
     Item Laagtarief received update
     or
     Item Hoogtarief received update
then
    if (PrijsLeveringElektro.state === NULL || PrijsLeveringElektro.state === UNDEF) {  PrijsLeveringElektro.postUpdate(0.1091) } 
    if (PrijsNetbeheerElektro.state === NULL || PrijsNetbeheerElektro.state === UNDEF) {  PrijsNetbeheerElektro.postUpdate(0.6348) } 
    if (PrijsEnergieTax.state === NULL || PrijsEnergieTax.state === UNDEF) {  PrijsEnergieTax.postUpdate(1.44) } 
    if (PrijsPerKwh.state === NULL || PrijsPerKwh.state === UNDEF ) { PrijsPerKwh.postUpdate(0.2099) }
    
      var tGebruik = (Laagtarief.state as Number) + (Hoogtarief.state as Number) - (VerbruikGisteren.state as Number)
    var tKosten = (tGebruik * (PrijsPerKwh.state as Number)) + ((PrijsLeveringElektro.state as Number) + (PrijsNetbeheerElektro.state as Number) - (PrijsEnergieTax.state as Number) / 2)
    VerbruikVandaag.sendCommand(tGebruik)
    ElektroKostenVandaag.sendCommand(tKosten)
end

this are the item i am using

String P1Version "P1 Version output"                                             {channel="dsmr:device_v5:mysmartmeter:dsmrV5Device:p1_version_output"}
Number Laagtarief "Meterstand dal [%.1f kWh]"                 <meter1>           {channel="dsmr:electricity_v5_0:mysmartmeter:electricityV5:emeter_delivery_tariff1"}
Number Hoogtarief "Meterstand piek [%.1f kWh]"                <meter2>           {channel="dsmr:electricity_v5_0:mysmartmeter:electricityV5:emeter_delivery_tariff2"}
Number:Power HuidigVerbruik "Verbruik nu [%.3f kW]"           <plug>             {channel="dsmr:electricity_v5_0:mysmartmeter:electricityV5:emeter_actual_delivery"}
Number HuidigVerbruikNu "Verbruik nu [%.3f kW]"           <energy> (gGebruikM)   {channel="dsmr:electricity_v5_0:mysmartmeter:electricityV5:emeter_actual_delivery"}
Number:Power DitJaarVerbruik "Verbruik dit jaar [%.0f kWh]"   <lightbulb_dollar>
Number VerbruikVandaag  "Verbruik totaal vandaag [%.3f kWh]"  <lightbulb_dollar>
Number ElektroBedrag "Elektrokosten dit jaar [%.2f €]"        <euro_sign>
1 Like

This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.