(06.09.2022, 11:51)GIA Wrote: Yeah, I`am using that function,
But how do you get the the daily summations or weekly? Are they custom widgets/tiles, with the summation done in scripting etc?
BR
GIA
Intermediate counters are calculated using virtual objects and scripting...
below is a raw event script that runs on the object when it changes at least 1kw... for sure it need tunning but could help as a starting point
Code:
myobjects = grp.tag('CalcTotalA')
totalA = 0
for _, object in ipairs(myobjects) do
totalA = totalA + object.value
end
grp.update('Συνολική ένταση (A)',totalA)
-- Get date
now=os.date('*t')
-- system week day starts from sunday, convert it to knx format
now.wday = now.wday == 1 and 7 or now.wday - 1
-- Init counters
initTotalwh = 0
initT1wh = 0
initT2wh = 0
initT3wh = 0
initT4wh = 0
TotalkWh = math.floor(event.getvalue()/1000)
T1kWh = math.floor((grp.getvalue('Ενεργή ενέργεια Τ1 (Wh)') - initT1wh) /1000)
T2kWh = math.floor((grp.getvalue('Ενεργή ενέργεια Τ2 (Wh)') - initT2wh) /1000)
T3kWh = math.floor((grp.getvalue('Ενεργή ενέργεια Τ3 (Wh)') - initT3wh) /1000)
T4kWh = math.floor((grp.getvalue('Ενεργή ενέργεια Τ4 (Wh)') - initT4wh) /1000)
grp.update('Συνολική ενέργεια (kWh)', TotalkWh)
grp.update('Συνολική ενέργεια Τ1 (kWh)', T1kWh)
grp.update('Συνολική ενέργεια Τ2 (kWh)', T2kWh)
grp.update('Συνολική ενέργεια Τ3 (kWh)', T3kWh)
grp.update('Συνολική ενέργεια Τ4 (kWh)', T4kWh)
metinit=storage.get('met:init', 0)
metpt=storage.get('met:pt', 0)
ypt=storage.get('met:year-pt', 0)
ypt1=storage.get('met:year-pt1', 0)
ypt2=storage.get('met:year-pt2', 0)
yct=storage.get('met:year-ct', 0)
yct1=storage.get('met:year-ct1', 0)
yct2=storage.get('met:year-ct2', 0)
mpt=storage.get('met:month-pt', 0)
mpt1=storage.get('met:month-pt1', 0)
mpt2=storage.get('met:month-pt2', 0)
mct=storage.get('met:month-ct', 0)
mct1=storage.get('met:month-ct1', 0)
mct2=storage.get('met:month-ct2', 0)
daypt=storage.get('met:day-pt', 0)
daypt1=storage.get('met:day-pt1', 0)
daypt2=storage.get('met:day-pt2', 0)
dayct=storage.get('met:day-ct', 0)
dayct1=storage.get('met:day-ct1', 0)
dayct2=storage.get('met:day-ct2',0 )
wpt=storage.get('met:week-pt', 0)
wpt1=storage.get('met:week-pt1', 0)
wpt2=storage.get('met:week-pt2', 0)
wct=storage.get('met:week-ct', 0)
wct1=storage.get('met:week-ct1', 0)
wct2=storage.get('met:week-ct2', 0)
ppt=storage.get('met:period-pt', 0)
ppt1=storage.get('met:period-pt1', 0)
ppt2=storage.get('met:period-pt2', 0)
pct=storage.get('met:period-ct', 0)
pct1=storage.get('met:period-ct1', 0)
pct2=storage.get('met:period-ct2', 0)
delta=TotalkWh-metpt
if now.month==1 and now.day==1 and now.hour==0 and now.min<5 then -- Reseting Yearly, Monthly, Daily energy counters
alert('Reseting Yearly, Monthly, Daily energy counters')
grp.write('Επαναφορά μετρητή διακοπών ρεύματος',true)
storage.set('met:year-pt', yct+delta)
grp.write('Ενέργεια προηγούμενου έτους συνολικά (kWh)', yct+delta)
storage.set('met:year-ct', 0)
grp.write('Ενέργεια τρέχοντα έτους συνολικά (kWh)', 0)
storage.set('met:year-pt1', yct1+delta)
grp.write('Ενέργεια προηγούμενου έτους Τ1 (kWh)', yct1+delta)
storage.set('met:year-ct1', 0)
grp.write('Ενέργεια τρέχοντα έτους Τ1 (kWh)', 0)
storage.set('met:year-pt2', yct2+delta)
grp.write('Ενέργεια προηγούμενου έτους Τ2 (kWh)', yct2+delta)
storage.set('met:year-ct2', 0)
grp.write('Ενέργεια τρέχοντα έτους Τ2 (kWh)', 0)
storage.set('met:month-pt', mct+delta)
grp.write('Ενέργεια προηγούμενου μήνα συνολικά (kWh)', mct+delta)
storage.set('met:month-ct', 0)
grp.write('Ενέργεια τρέχοντα μήνα συνολικά (kWh)', 0)
storage.set('met:month-pt1', mct1+delta)
grp.write('Ενέργεια προηγούμενου μήνα Τ1 (kWh)', mct1+delta)
storage.set('met:month-ct1', 0)
grp.write('Ενέργεια τρέχοντα μήνα Τ1 (kWh)', 0)
storage.set('met:month-pt2', mct2+delta)
grp.write('Ενέργεια προηγούμενου μήνα Τ2 (kWh)', mct2+delta)
storage.set('met:month-ct2', 0)
grp.write('Ενέργεια τρέχοντα μήνα Τ2 (kWh)', 0)
storage.set('met:day-pt', dayct+delta)
grp.write('Ενέργεια προηγούμενης ημέρας συνολικά (kWh)', dayct+delta)
storage.set('met:day-ct', 0)
grp.write('Ενέργεια τρέχουσας ημέρας συνολικά (kWh)', 0)
storage.set('met:day-pt1', dayct1+delta)
grp.write('Ενέργεια προηγούμενης ημέρας Τ1 (kWh)', dayct1+delta)
storage.set('met:day-ct1', 0)
grp.write('Ενέργεια τρέχουσας ημέρας Τ1 (kWh)', 0)
storage.set('met:day-pt2', dayct2+delta)
grp.write('Ενέργεια προηγούμενης ημέρας Τ2 (kWh)', dayct2+delta)
storage.set('met:day-ct2', 0)
grp.write('Ενέργεια τρέχουσας ημέρας Τ2 (kWh)', 0)
elseif now.day==1 and now.hour==0 and now.min<5 then -- Reseting Monthly, Daily energy counters
alert('Reseting Monthly, Daily energy counters')
grp.write('Επαναφορά μετρητή διακοπών ρεύματος',true)
storage.set('met:month-pt', mct+delta)
grp.write('Ενέργεια προηγούμενου μήνα συνολικά (kWh)', mct+delta)
storage.set('met:month-ct', 0)
grp.write('Ενέργεια τρέχοντα μήνα συνολικά (kWh)', 0)
storage.set('met:month-pt1', mct1+delta)
grp.write('Ενέργεια προηγούμενου μήνα Τ1 (kWh)', mct1+delta)
storage.set('met:month-ct1', 0)
grp.write('Ενέργεια τρέχοντα μήνα Τ1 (kWh)', 0)
storage.set('met:month-pt2', mct2+delta)
grp.write('Ενέργεια προηγούμενου μήνα Τ2 (kWh)', mct2+delta)
storage.set('met:month-ct2', 0)
grp.write('Ενέργεια τρέχοντα μήνα Τ2 (kWh)', 0)
storage.set('met:day-pt', dayct+delta)
grp.write('Ενέργεια προηγούμενης ημέρας συνολικά (kWh)', dayct+delta)
storage.set('met:day-ct', 0)
grp.write('Ενέργεια τρέχουσας ημέρας συνολικά (kWh)', 0)
storage.set('met:day-pt1', dayct1+delta)
grp.write('Ενέργεια προηγούμενης ημέρας Τ1 (kWh)', dayct1+delta)
storage.set('met:day-ct1', 0)
grp.write('Ενέργεια τρέχουσας ημέρας Τ1 (kWh)', 0)
storage.set('met:day-pt2', dayct2+delta)
grp.write('Ενέργεια προηγούμενης ημέρας Τ2 (kWh)', dayct2+delta)
storage.set('met:day-ct2', 0)
grp.write('Ενέργεια τρέχουσας ημέρας Τ2 (kWh)', 0)
elseif now.hour==0 and now.min<5 then -- Reseting Daily energy counters
alert('Reseting Daily energy counters')
grp.write('Επαναφορά μετρητή διακοπών ρεύματος',true)
storage.set('met:day-pt', dayct+delta)
grp.write('Ενέργεια προηγούμενης ημέρας συνολικά (kWh)', dayct+delta)
storage.set('met:day-ct', 0)
grp.write('Ενέργεια τρέχουσας ημέρας συνολικά (kWh)', 0)
storage.set('met:day-pt1', dayct1+delta)
grp.write('Ενέργεια προηγούμενης ημέρας Τ1 (kWh)', dayct1+delta)
storage.set('met:day-ct1', 0)
grp.write('Ενέργεια τρέχουσας ημέρας Τ1 (kWh)', 0)
storage.set('met:day-pt2', dayct2+delta)
grp.write('Ενέργεια προηγούμενης ημέρας Τ2 (kWh)', dayct2+delta)
storage.set('met:day-ct2', 0)
grp.write('Ενέργεια τρέχουσας ημέρας Τ2 (kWh)', 0)
elseif delta >= 0.2 then -- adding current difference to energy counters
tariff= grp.getvalue('Τρέχον τιμολόγιο')
storage.set('met:pt', metpt+delta)
storage.set('met:year-ct', yct+delta)
grp.write('Ενέργεια τρέχοντα έτους συνολικά (kWh)', yct+delta)
storage.set('met:month-ct', mct+delta)
grp.write('Ενέργεια τρέχοντα μήνα συνολικά (kWh)', mct+delta)
storage.set('met:week-ct', wct+delta)
grp.write('Ενέργεια τρέχουσας εβδομάδας συνολικά (kWh)', wct+delta)
storage.set('met:day-ct', dayct+delta)
grp.write('Ενέργεια τρέχουσας ημέρας συνολικά (kWh)', dayct+delta)
storage.set('met:period-ct', pct+delta)
grp.write('Ενέργεια τρέχουσας περιόδου συνολικά (kWh)', pct+delta)
if tariff==2 then
-- log(string.format('Adding %2.1fkWh to Total and T2 energy counters', delta))
storage.set('met:year-ct2', yct2+delta)
grp.write('Ενέργεια τρέχοντα έτους Τ2 (kWh)', yct2+delta)
storage.set('met:month-ct2', mct2+delta)
grp.write('Ενέργεια τρέχοντα μήνα Τ2 (kWh)', mct2+delta)
storage.set('met:week-ct2', wct2+delta)
grp.write('Ενέργεια τρέχουσας εβδομάδας Τ2 (kWh)', wct2+delta)
storage.set('met:day-ct2', dayct2+delta)
grp.write('Ενέργεια τρέχουσας ημέρας Τ2 (kWh)', dayct2+delta)
storage.set('met:period-ct2', pct2+delta)
grp.write('Ενέργεια τρέχουσας περιόδου Τ2 (kWh)', pct2+delta)
else
-- log(string.format('Adding %2.1fkWh to Total and T1 energy counters', delta))
storage.set('met:year-ct1', yct1+delta)
grp.write('Ενέργεια τρέχοντα έτους Τ1 (kWh)', yct1+delta)
storage.set('met:month-ct1', mct1+delta)
grp.write('Ενέργεια τρέχοντα μήνα Τ1 (kWh)', mct1+delta)
storage.set('met:week-ct1', wct1+delta)
grp.write('Ενέργεια τρέχουσας εβδομάδας Τ1 (kWh)', wct1+delta)
storage.set('met:day-ct1', dayct1+delta)
grp.write('Ενέργεια τρέχουσας ημέρας Τ1 (kWh)', dayct1+delta)
storage.set('met:period-ct1', pct1+delta)
grp.write('Ενέργεια τρέχουσας περιόδου Τ1 (kWh)', pct1+delta)
end
end
if now.wday==1 and now.hour==0 and now.min<5 then -- Reseting Weekly energy counters
alert('Reseting Weekly energy counters')
storage.set('met:week-pt',wct+delta)
grp.write('Ενέργεια προηγούμενης εβδομάδας συνολικά (kWh)', wct+delta)
storage.set('met:week-pt1',wct1+delta)
grp.write('Ενέργεια προηγούμενης εβδομάδας Τ1 (kWh)', wct1+delta)
storage.set('met:week-pt2',wct2+delta)
grp.write('Ενέργεια προηγούμενης εβδομάδας Τ2 (kWh)', wct2+delta)
storage.set('met:week-ct',0)
grp.write('Ενέργεια τρέχουσας εβδομάδας συνολικά (kWh)', 0)
storage.set('met:week-ct1',0)
grp.write('Ενέργεια τρέχουσας εβδομάδας Τ1 (kWh)', 0)
storage.set('met:week-ct2',0)
grp.write('Ενέργεια τρέχουσας εβδομάδας Τ2 (kWh)', 0)
end