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.

Dynamic table of logs
#3
(20.06.2017, 20:11)Erwin van der Zwart Wrote: Hi,

Use this as event based script attached to object 1/1/8:
Code:
if event.getvalue() == 1 then -- active  alert('There is a alarm with code ' .. grp.getvalue('1/1/9') .. ' at ' .. os.date("%c", grp.getvalue('1/1/6')) end
It will generate a alert inside the alert tab, and that will be used in the alert app, can be downloaded from the appstore in FW 2.0.0.

There you will get a audio alert and a list with all available alerts.

To mail the alerts use this script as scheduled once a week: (make sure to enable 'less secure apps' in your gmail account to be able to mail and set DNS and default gateway on NIC)
Code:
--Gmail (smtp) username !IMPORTANT! user = 'YOUR EMAIL ADRESS' --Gmail (smtp) password !IMPORTANT! password = 'YOUR PASSWORD' --Sender for e-mail from = '<' .. user .. '>' alias_from = 'YOUR ALIAS' --Recipient for e-mail to = '<receiver@domain.com>' alias_to = 'receiver' --Subject for e-mail subjectpart1 = 'Alerts' subjectpart2 = 'automaticly send by homeLYnk' --Message on bottom of email (will only be showed when client don't understand attachment) epilogue = 'End of message' -- Get all alerts from DB alerts_table = db:getall('SELECT * FROM alerts') -- csv buffer buffer = {} -- format csv row csv = string.format('%q,%q,%q', "ID", "ALERT", "ADDED TO LIST") -- add to buffer table.insert(buffer, csv) -- add empty line to buffer table.insert(buffer, "") -- Loop through alerts_table for _, alerts in ipairs(alerts_table) do  -- format csv row  csv = string.format('%q,%q,%q', alerts.id, alerts.alert, os.date("%x %X", alerts.alerttime))  -- add to buffer  table.insert(buffer, csv) end --Create table to include mail settings local settings = {    from = from,    rcpt = to,    user = user,    password = password,    server = 'smtp.gmail.com',    port = 465,    secure = 'sslv23', } --Create attachment inside FTP server src = 'AlertExport '.. os.date('%Y-%m-%d %H#%M#%S') .. '.csv' dst = '/home/ftp/' .. src io.writefile(dst, buffer) --Create subject subject = subjectpart1 .. ": " .. src .. " " .. subjectpart2 --Load required modules to send email with attachment local smtp = require("socket.smtp") local mime = require("mime") local ltn12 = require("ltn12") --Create e-mail header settings.source = smtp.message{ headers = {          from = '' .. alias_from .. ' ' .. from .. '',          to = '' .. alias_to .. ' ' .. to .. '',          subject = subject }, --Load attachment inside body     body = { preamble = "", [1] = {          headers = {           ["content-type"] = 'text/plain',           ["content-disposition"] = 'attachment; filename="'..src..'"',           ["content-description"] = '.. src ..',           ["content-transfer-encoding"] = "BASE64",        },        body = ltn12.source.chain(          ltn12.source.file(io.open(dst, "rb")),          ltn12.filter.chain(          mime.encode("base64"),          mime.wrap()        )      )    },      epilogue = epilogue  } } --Send the email r, e = smtp.send(settings) --Create alert when sending gives an error with error message if (e) then  log (e)  log (r)  alert("Could not send email: ", e, "\n") end --Delete created file from ftp folder inside HL os.remove(dst)

Many thanks!
I'm going to implement it.

Best regards
Reply


Messages In This Thread
Dynamic table of logs - by Albertor - 20.06.2017, 18:01
RE: Dynamic table of logs - by Albertor - 23.06.2017, 15:39

Forum Jump: