AnsweredAssumed Answered

Split consumption based on time of day

Question asked by EricHore on May 4, 2018
Latest reply on May 7, 2018 by EricHore



I hope someone can guide me to a working solution.


I has a solution which reads energy meter data into PI for an energy management system. One thing I want to do is split the total energy consumption into the 3 tariff we have in SA, namely Peak, Standard & Off-peak, to report on it and apply the 3 different costing to the total energy consumption in each of the 3 periods.


My thinking is to have 3 PI points that increments/totalize indefinitely:

  • EnergyConsumption_Peak
  • EnergyConsumption_Standard
  • EnergyConsumption_Off-peak


I already have a PI PE point, ElectricityTraiff, that change its value to Peak/Standard/Off-peak based on the time of day.


The idea is to have the following logic:

IF ElectricityTraiff = Peak THEN totalize EnergyConsumption_Peak ELSE
ElectricityTraiff = Standard THEN totalize EnergyConsumption_ Standard ELSE

IF ElectricityTraiff = Off-peak THEN totalize EnergyConsumption_ Off-peak ELSE NoOutput()


The end result should look like this - consumption during Peak, Standard & Off-peak periods should add up to the total consumption measured/read from device:


(This is a hand drawn graph - so please excuse/ignore the negative consumption represented by he negative slope. This will never happen in this case)


Consumption data available from the device are the consumption rate tag and the consumption total tag.


I have tried using the rate tag in a PI Totalizer Point with the following configurations:

Source Tag:       EnergyConsumptionRate

Totalizer Type:   Summary Calculation > Block > Time Weighted > Total    

Sampling:          Natural

Filter:                 ‘ElectricityTraiff’ = “Peak”      

Results:             After a time period elapses

                                 Start schedule at 0 Hours after midnight

                                 Results every 15 Minutes

>>> I am not sure whether I can use a PI Point in the filter other that the Source Tag - no errors are seen when the Test button is pressed, but the Point value stays "Error" <<<

>>> I really only need a update value of the Totalizer Point every 15 min, but should account for all value changes in this period <<<

>>> The Totalizers should never reset to Zero,


I would think that there should be a way to use the total tag too to achieve the same outcome. Here I would think that the difference in the total consumption value can be calculated (from the beginning of the current tariff period to now) and added to totalized tag for the appropriate period.


I am sure that this type of calculation bust be common, but I have not been successful in finding a workable solution to date.


Thanks and looking forward to some suggestions.