Trend export - Printable Version +- Logic Machine Forum (https://forum.logicmachine.net) +-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1) +--- Forum: Scripting (https://forum.logicmachine.net/forumdisplay.php?fid=8) +--- Thread: Trend export (/showthread.php?tid=77) |
Trend export - PassivPluss - 22.09.2015 Hi. You got a script example that exports csv log to ftp client. I have tried this but the file get to big as it logs all changes. Is it possible to send only once an hour, the trend value for the passed hour or minute. That i get 24 values a day or 60 values a minute if i want bigger resolution on some adresses? RE: Trend export - admin - 23.09.2015 Try this, it should fetch values for the given trend for the last hour with one minute resolution: Code: require('genohm-scada.trends') RE: Trend export - PassivPluss - 23.09.2015 Ok. And if i w would like to have 15 minutes resolution or 60 minutes. Is that also possible? Can i use ftp server or something to access the memory with filemanager to find the csv files manualy also? RE: Trend export - PassivPluss - 01.10.2015 I tried to integrate this into your example but it only types the data in the logs of the LM. How do I change this script to get it to work? I need the LM to export the log with 30 min resolution to my web server once a day. When fetching the log i also need the values to be accurate. How is this data produced? Like the 13.00 log result, it should be the average of 12.45-13.15. Is that correct? Code: require('socket.ftp') RE: Trend export - admin - 02.10.2015 Your script does not work because you are not putting any data in buffer and thus there's no data to upload. Try this: Code: require('socket.ftp') RE: Trend export - PassivPluss - 16.10.2015 Hi I have testet and it works. You can se published data on http://passivpluss.no/WP/?page_id=537 I have another request. The commercial Husbanken whom I have to deliver data to wants to have 1 minute data for some logs. What is the resolution of the built in trend data? Is it possible to log on to ftp on Logic Machine and fetch the log file or do we have to have a script for this? The trend on my page has a resolution on 1 hour now, but I use the example you made for me. But with resolution 60 minute. Is that a good way to o it or do it suck resourses? I have much logging to be exported RE: Trend export - admin - 16.10.2015 By default there's some one-minute data available, you can change resolution variable value from 30 to 1 and it should work. RE: Trend export - PassivPluss - 16.10.2015 How much is some? How often do i have to run this script to get 1 minute data? RE: Trend export - admin - 16.10.2015 Some depends on your setting of "1 minute data" for each trend. The script above should be run once in an hour. RE: Trend export - PassivPluss - 29.10.2015 This logging works perfect. 1. If I would like to do the same but with hours, or days to make the csv. Could you help me with this? 2. I see that there is a bug in the trend viewer. When using the trend viewer to look at days I can se that for instance 8 of oktober, is the 9 of oktober in the monts vierw of the trend 3. Is there an easy to use accumulate function? In my case I got a lot of readings of energy and water, I would like to have a function that uses the trend files once an hour to add last hour value. This is to get a accumulated energy value for many months. Like I start this at 15.00. I use 500 watts in an hour. At 16.00 i would like to add 500 to group adress x\x\x so that new value is 500. say if i turn down the demand and only use 200watt in an hour. at 17.00 i would like to add 200 to x\x\x and make it 700. and so on... 4. Underneath is my logging by hours I use at the moment. This produces a csv file that looks like "Tid(Time)" "Aktiv effekt L1(Power usage L1)" "10.okt 10.00" "500" "11.okt 11.00" "400" and so on for the last 24 hours If I want to impement another trends values is that possible? Like "Tid(Time)" "Aktiv effekt L1(Power usage L1)" "Aktiv effekt L2(Power usage L2)" "Aktiv effekt L2(Power usage L2)" "10.okt 10.00" "500" "400" "200" "11.okt 11.00" "400" "500" "250" time = os.time() date = { stime = time - 86400, etime = time, } values = trends.fetch('aktiv effekt L1', 'hour', date) buffer = {} count = 0 average = 0 resolution = 60 -- in minutes row = string.format('%q,%q', "Tid", "aktiv L1") table.insert(buffer, row) for _, data in ipairs(values) do count = count + 1 average = average + data[ 2 ] if count == resolution then date = os.date('%d.%b %H:%M', time -86400) value = average / resolution row = string.format('%q,%q', date, value) table.insert(buffer, row) time = time + 60 * resolution count = 0 average = 0 end end if #buffer > 0 then data = table.concat(buffer, '\n\r') res, err = socket.ftp.put({ xxxxxx x xxxx Thanks for an helping hand RE: Trend export - Erwin van der Zwart - 02.11.2015 Hi, You currently use the trend type "Counter" for the power usage, this results in a total usage (like it should), if you use a second trend type "Absolute value" on the same object, you get the trend like you discribed. This trend will show only the absolute value per hour. You can use your trend.fetch example to fetch the (absolute) power usage and write it to another object. The CSV can be grabbed like the example you already have, just read out both trends and mail them to your account. BR, Erwin RE: Trend export - PassivPluss - 02.11.2015 (02.11.2015, 07:28)Erwin van der Zwart Wrote: Hi, Hi and thanks for the feedback. I currently use the absolute value trend and that gives me the total watts pr hour. I just activated a counter trend for the same group adress and get the following results: Absolute value 2.1.15 19.00 = 1805 W the counter trend for the same time basis gives me 18507 W. Therefor I am a little uncertain what the counter value is as it is aprox the absolute value times 10 |