I have the following rule which I am trying to use to calculate my Last Months electricity consumption:
rule "EM Mains Monthly Process" when Item ShellyEM_MAINS_TotalEnergy_Switch changed to ON //Time cron "0 10 10 * *" then var EMToDate = ShellyEM_MAINS_TotalEnergy.state as Number logInfo("shelly_em", "EMToDate: " + EMToDate.toString()) var PreviousMonth = ShellyEM_Mains_TotalEnergy_PreviousMonth.state as Number logInfo("shelly_em", "PreviousMonth: " + PreviousMonth.toString()) var UsageLastMonth = (EMToDate as Number - PreviousMonth as Number) logInfo("shelly_em", "UsageLastMonth: " + UsageLastMonth.toString()) //ShellyEM_Mains_TotalEnergy_PreviousMonth.postUpdate(EMToDate) //ShellyEM_MAINS_TotalEnergy_Monthly.postUpdate(UsageLastMonth) end
The log entries I see are:
09:28:59.745 [INFO ] [g.openhab.core.model.script.shelly_em] - EMToDate: 16653.434 kWh 09:28:59.745 [INFO ] [g.openhab.core.model.script.shelly_em] - PreviousMonth: 16648.39 kWh 09:28:59.745 [INFO ] [g.openhab.core.model.script.shelly_em] - UsageLastMonth: 18158400
PreviousMonth are correct, however the calculated result
UsageLastMonth is not.
I am currently not updating the Item so preserve my data as the calculation is not working.
I cannot work out what I have done incorrectly? Maybe something to do with UoM, but would appreciate any hints?
Items are configured as Number:Energy
Any help would be appreciated.