Dear Rich,
thank you very much for your valuable hinte. It took me some time to get it work properly.
Two facts caused some try and error. First I want to sum up the solar energy I get per day on one m2. But the Quantity Wh/m2 is not supported.
A more serious problem is that previousQuantityState and lastStateChangeTimestamp are two values that do not fit together. previousQuantityState gives the state before the latest change, but lastStateChangeTimestamp is the timestamp of the latest change. I could not figure out if there is something liek previousStateChangeTimestamp. Thus I used a rule instance variable to store the previous triggering of the rule.
Now the aggregation values I get seem reasonable. But unfortunately this rewriting of the rules in ECMA11 did not fix the initial problem. I’ve creted the new rules for calculating the power consumption during a day and for the caculation of the solar energy for the day. The two screenshots show the problem. This screenshot shows the current solar intensity (green) and the accumulated value (blue). At 9:22 the accumulated value jumpes up while the measurment of the current intensity is zero.
The next screenshot shows the accumulated power consumption and at the same moment at 9:22 it does a jump too.
To keep it simple I’ll only further document the power consumption accumulation, First her are the entries in the event.log files filtered for the ShellyEM3_EnergyPerDay from 9:19 to 9:24. You can see there is a change of the state between 09:22:11.635 ‘to value’ (event.log.6) and 09:23:20.581 ‘from value’ (event.log.7).
events.log.5
Zeile 82085: 2026-02-04 09:19:01.252 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 2822.6172319243196 Wh to 2824.0937597020975 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 82139: 2026-02-04 09:19:10.872 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 2824.0937597020975 Wh to 2825.5973725574786 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 82233: 2026-02-04 09:19:20.897 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 2825.5973725574786 Wh to 2827.0970293917953 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 82319: 2026-02-04 09:19:31.075 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 2827.0970293917953 Wh to 2828.5741215159164 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 82423: 2026-02-04 09:19:41.181 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 2828.5741215159164 Wh to 2830.057464264975 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 82494: 2026-02-04 09:19:50.892 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 2830.057464264975 Wh to 2831.5584309960796 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 82551: 2026-02-04 09:20:00.894 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 2831.5584309960796 Wh to 2833.0570287418604 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 82662: 2026-02-04 09:20:11.061 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 2833.0570287418604 Wh to 2834.26939994262 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 82759: 2026-02-04 09:20:20.897 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 2834.26939994262 Wh to 2835.4906570002477 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 82848: 2026-02-04 09:20:31.045 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 2835.4906570002477 Wh to 2836.702805968684 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 82928: 2026-02-04 09:20:40.876 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 2836.702805968684 Wh to 2837.936322648681 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 82983: 2026-02-04 09:20:50.868 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 2837.936322648681 Wh to 2839.2034059820144 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 83043: 2026-02-04 09:21:00.919 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 2839.2034059820144 Wh to 2840.473822648681 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 83134: 2026-02-04 09:21:11.080 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 2840.473822648681 Wh to 2841.6775818894234 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 83195: 2026-02-04 09:21:21.510 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 2841.6775818894234 Wh to 2842.950609667201 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 83262: 2026-02-04 09:21:30.869 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 2842.950609667201 Wh to 2844.154755683155 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 83334: 2026-02-04 09:21:40.887 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 2844.154755683155 Wh to 2845.3803179324855 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 83419: 2026-02-04 09:21:50.895 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 2845.3803179324855 Wh to 2846.609514498728 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 83482: 2026-02-04 09:22:01.025 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 2846.609514498728 Wh to 2847.8143756098393 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
events.log.6
Zeile 4: 2026-02-04 09:22:11.635 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 2847.8143756098393 Wh to 2849.0180978320614 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
events.log.7
Zeile 366: 2026-02-04 09:23:20.581 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 8602.557559848325 Wh to 8603.647282467531 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 455: 2026-02-04 09:23:30.424 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 8603.647282467531 Wh to 8604.73723713391 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 540: 2026-02-04 09:23:40.458 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 8604.73723713391 Wh to 8605.818717189894 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 630: 2026-02-04 09:23:50.427 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 8605.818717189894 Wh to 8606.894972830432 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 692: 2026-02-04 09:24:00.416 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 8606.894972830432 Wh to 8607.980374322357 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 777: 2026-02-04 09:24:10.419 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 8607.980374322357 Wh to 8609.066437103522 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 856: 2026-02-04 09:24:20.427 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 8609.066437103522 Wh to 8610.184992659077 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 903: 2026-02-04 09:24:30.411 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 8610.184992659077 Wh to 8611.298242659077 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 946: 2026-02-04 09:24:40.402 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 8611.298242659077 Wh to 8612.419242659076 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 1015: 2026-02-04 09:24:50.417 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 8612.419242659076 Wh to 8613.53493710352 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 1080: 2026-02-04 09:25:00.405 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 8613.53493710352 Wh to 8614.65024304511 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 1142: 2026-02-04 09:25:10.408 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 8614.65024304511 Wh to 8615.731140334257 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 1230: 2026-02-04 09:25:20.415 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 8615.731140334257 Wh to 8616.846474045255 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 1303: 2026-02-04 09:25:30.400 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 8616.846474045255 Wh to 8617.927793473036 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 1375: 2026-02-04 09:25:40.441 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 8617.927793473036 Wh to 8619.049293473036 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
Zeile 1441: 2026-02-04 09:25:50.455 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ShellyEM3_EnergyPerDay' changed from 8619.049293473036 Wh to 8620.162877020215 Wh (source: org.openhab.automation.jsscripting$rule:EnergyPerDay)
There is no ItemStateChangedEvent in between that represents this change. Finally here the new rule doing the calculation:
configuration: {}
triggers:
- id: "1"
configuration:
cronExpression: 0/10 * * * * * *
type: timer.GenericCronTrigger
conditions: []
actions:
- inputs: {}
id: "4"
configuration:
type: application/javascript
script: >+
//console.info("---------------------------")
//console.info("Triggered", time.toZDT())
let energyPerDay = (items.ShellyEM3_EnergyPerDay.isUninitialized) ?
Quantity("0 Wh") : items.ShellyEM3_EnergyPerDay.quantityState;
//console.info("energyPerDay", energyPerDay)
var itemEnergyTotal = items.ShellyEM3_EnergyTotal;
var last10Seconds = time.ZonedDateTime.now().minusSeconds(10);
const energyLast10Seconds =
itemEnergyTotal.persistence.averageSince(last10Seconds).quantityState;
console.info("energyLast10Seconds", energyLast10Seconds)
const additionalEnergy = energyLast10Seconds.divide(360).multiply('1
h');
//console.info("additionalEnergy ", additionalEnergy)
energyPerDay = energyPerDay.add(additionalEnergy);
//console.info("new energyPerDay", energyPerDay)
items.ShellyEM3_EnergyPerDay.postUpdate(energyPerDay);
type: script.ScriptAction
This rule differs from the suggestion you’ve given due to the fact that lastStateChangeTimestamp does not return the timesamp of the previous change. I decided to call the rule every 10 seconds and multiply the average over the last 10 seconds with 10 to get the power consumed diring this periode.
Sorry that my post is again so long, but I hope I gave you all necessary information to analyse the problem.
Thanks a lot for your kindness to listen to my problem.
Kind regards,
Norbert