07.11.2022, 19:57
I use this script.
I have four timers an i want to compare two.
Total time 7/0/4 and 7/0/14.
I have four timers an i want to compare two.
Total time 7/0/4 and 7/0/14.
Code:
----------Timer for group 7/0/1 ---------------
value = event.getvalue()
key_now_1 = 'ontime_now_1'
out_now_1 = '1/0/2'
key_last_1 = 'ontime_last_1'
out_last_1 = '1/0/3'
key_total_1 = 'ontime_total_1'
out_total_1 = '1/0/4'
time = storage.get(key_now_1)
now = os.time()
if value then
if not time then
storage.set(key_now_1, now)
formattime(out_now_1, 0)
storage.set(key_last_1, now)
formattime(out_last_1, 0)
end
else
if time then
time_total = storage.exec('incrby', key_total_1, now - time)
formattime(out_total_1, time_total)
storage.delete(key_now_1)
storage.delete(key_last_1)
end
grp.update(out_now_1, '')
end
-----------------------------------------------------
----------Resident Script---------Timer for group 7/0/1 ---------------
key_now_1 = 'ontime_now_1'
out_now_1 = '1/0/2'
key_last_1 = 'ontime_last_1'
out_last_1 = '1/0/3'
key_total_1 = 'ontime_total_1'
out_total_1 = '1/0/4'
time_now = storage.get(key_now_1)
time_now_1 = storage.get(key_last_1)
if time_now then
time_now = os.time() - time_now
formattime(out_now_1, time_now)
formattime(out_last_1, time_now)
time_total = storage.get(key_total_1, 0)
formattime(out_total_1, time_total + time_now)
end
--------------------------------------------------------------------
-----------------Common Function----------------------------
function formattime(output, seconds)
local minutes = math.floor(seconds / 60)
local hours = math.floor(minutes / 60)
local days = math.floor(hours / 24)
local res = {}
seconds = seconds % 60
minutes = minutes % 60
hours = hours % 24
if days > 0 then
res[ #res + 1 ] = days .. 'd'
end
if hours > 0 then
res[ #res + 1 ] = hours .. 'h'
end
if minutes > 0 then
res[ #res + 1 ] = minutes .. 'm'
end
if seconds > 0 or #res == 0 then
res[ #res + 1 ] = seconds .. 's'
end
res = table.concat(res, ' ')
grp.update(output, res)
end
-------------------------------------------------------------------------