This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm that you accept these cookies being set.

Mosaic3 Trends Widget
#9
(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
Reply


Messages In This Thread
Mosaic3 Trends Widget - by gtsamis - 05.01.2022, 09:12
RE: Mosaic3 Trends Widget - by admin - 05.01.2022, 09:35
RE: Mosaic3 Trends Widget - by gtsamis - 05.01.2022, 09:45
RE: Mosaic3 Trends Widget - by admin - 06.01.2022, 13:12
RE: Mosaic3 Trends Widget - by gtsamis - 07.01.2022, 08:28
RE: Mosaic3 Trends Widget - by GIA - 05.09.2022, 19:13
RE: Mosaic3 Trends Widget - by GIA - 06.09.2022, 11:51
RE: Mosaic3 Trends Widget - by gtsamis - 06.09.2022, 12:36
RE: Mosaic3 Trends Widget - by GIA - 06.09.2022, 13:02

Forum Jump: