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.

Trend clean
#11
great this work for me !! Your top


Code:
ffi = require('ffi') typName=true typCat=false typTotal=false maxVal=4/60/60 function check(value)   max = math.max(max, value)   log(value)   if value > maxVal then     value=maxVal     --log(value)   end   return value end function stringtodouble(chunk)   local dbl = ffi.new('double[1]')   ffi.copy(dbl, chunk, 8)   return dbl[ 0 ] end function doubletostring(val)   local dbl = ffi.new('double[1]')   dbl[ 0 ] = val   return ffi.string(dbl, 8) end function wash(filename,maxVal)   max = 0   info = require('rrd').info(filename)   data = io.readfile(filename)   offset = info.header_size   buf = { data:sub(1, offset) }   while true do     chunk = data:sub(offset + 1, offset + 8)     if #chunk == 8 then       value = stringtodouble(chunk)       -- skip NaN (empty/undefined value)       if value == value then         value=check(value)       end             buf[ #buf + 1 ] = doubletostring(value)     else       break     end     offset = offset + 8   end   log('MAX:'..max)   data = table.concat(buf)   io.writefile(filename, data)   end if typName then   tabCurveName= {   --'ADLC-TOTAL-KWH',   --'TG2-TOTAL-KWH',   --'ECLAIRAGE-TOTAL-KWH',   --'GENERAL_ELEC-TOTAL-KWH',   --'ADLC-01_ECLAIRAGE-KWH-ECL',   --'CHAUFFAGE_CLIMATISATION_VENTILATION-TOTAL-KWH',   --'RECE-01_ECLAIRAGE-KWH-ECL'   --'ADN0-TOTAL-KWH',   --'RECE-TOTAL-KWH'     --'DIVERS-TOTAL-KWH',     --'EAU_CHAUDE-TOTAL-KWH',     --'PRISES-TOTAL-KWH',     --'TG1-TOTAL-KWH',     --'RECE-01_LOCAL_FROID-M3-FLU',     'ADN2-01_ECLAIRAGE-KWH-ECL'   }   for _, curveName in ipairs(tabCurveName) do         id = db:getone('SELECT id FROM trends WHERE name=?', curveName)     if id then       filename = '/tmp/trends/t' .. id .. '.trend'       --os.remove(file)       wash(filename,maxVal)     end                end end
-----------
FRANCE SMARTHOME & SMARTBUILDING INTEGRATION
SE ECO EXPERT
Reply


Messages In This Thread
Trend clean - by domotiqa - 22.11.2023, 07:12
RE: Trend clean - by Daniel - 22.11.2023, 08:42
RE: Trend clean - by domotiqa - 22.11.2023, 08:51
RE: Trend clean - by Daniel - 22.11.2023, 08:54
RE: Trend clean - by domotiqa - 22.11.2023, 08:59
RE: Trend clean - by admin - 22.11.2023, 09:01
RE: Trend clean - by domotiqa - 22.11.2023, 09:25
RE: Trend clean - by domotiqa - 15.12.2023, 07:44
RE: Trend clean - by admin - 15.12.2023, 10:47
RE: Trend clean - by jmir - 31.05.2024, 05:58
RE: Trend clean - by domotiqa - 19.12.2023, 08:23
RE: Trend clean - by domotiqa - 19.12.2023, 16:39
RE: Trend clean - by admin - 31.05.2024, 06:51
RE: Trend clean - by jmir - 31.05.2024, 07:06
RE: Trend clean - by admin - 31.05.2024, 07:15
RE: Trend clean - by jmir - 31.05.2024, 14:17
RE: Trend clean - by domotiqa - 18.09.2024, 17:16
RE: Trend clean - by admin - 19.09.2024, 10:43
RE: Trend clean - by domotiqa - 20.09.2024, 10:12

Forum Jump: