Reset counter object each month - 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: Reset counter object each month (/showthread.php?tid=1175) |
Reset counter object each month - Mr.D - 12.01.2018 Hi, I have iEM 3150 Power Meter running and are continuously counting my power consumption. I have mapped the power consumption to an KNX object (1/1/1) so it shows me the total power consumption. However, this counter is not possible to reset. I would like an object let say (2/2/2) that starts each month showing 0 as consumption and as the month progresses it increases. Then, the first day of each month, it starts all over again. This way I am able to track my consumption during the month and se how it progresses. BR Mr.D RE: Reset counter object each month - Jørn - 13.01.2018 This is how i would do it Add this as a event script to your total power consumption object. Code: kwhtot = event.getvalue() And this one as scheduled script with cron time 0 0 1 * * ,this would run 1 day every month. Code: storage.set('kwh_usage_month_start', nil) Mvh RE: Reset counter object each month - davidchispas - 25.04.2020 (13.01.2018, 22:19)Jørn Wrote: This is how i would do it Is it possible to add to this script another object '3/3/3' that registers the last maximum value of the object '2/2/2'? so we can visualize the last consumption of the previous month. RE: Reset counter object each month - AlexLV - 26.04.2020 Hi, possible to use different variants, as use trends: https://forum.logicmachine.net/showthread.php?tid=1216&highlight=trend+documentation but I think for you easiest way is create scheduled scripts, and write to the different groups data of power consumption at 0:00 every 1st day for every month (you will have 12 scheduled scripts). So you will see consumption for starting of month: Consumpted_Energy = grp.getvalue('33/5/30') -- Group of your Energy meter with consumed energy grp.write('33/7/13', Consumpted_Energy) -- April. There will be saved data of consumed energy for 0:00 of 1st April The same for May and so on..: Consumpted_Energy = grp.getvalue('33/5/30') -- Group of your Energy meter with consumed energy grp.write('33/7/14', Consumpted_Energy) -- May. There will be saved data of consumed energy for 0:00 of 1st May For previous month just EnergyPrevious = grp.getvalue('33/7/14') - grp.getvalue('33/7/13') -- For April. You should think also about other month.. Just easy calculations Of course such way you can show consumption for every day/week... etc. For me I show consumption from month start: (Add this to event script for group where is recorded your consumed energy. So all recalculations will be done automatically when data upgrades (in example 33/5/30)). MonthConsumed = grp.getvalue('33/5/30') - grp.getvalue('33/7/13' -- Also there you can add cost of energy: EnergyCost = 0.16 -- (EuroCents per kWh) your cost MonthEnergyConsumedCost = MonthConsumed * EnergyCost grp.write('33/5/50', MonthEnergyConsumedCost) -- group you will store cost of consumed energy This is just description of easy steps, let's try to play with.. Alex RE: Reset counter object each month - admin - 26.04.2020 Add this at the start of scheduled reset script (before 2/2/2 value is set to 0): Code: grp.write('3/3/3', grp.getvalue('2/2/2')) RE: Reset counter object each month - davidchispas - 28.04.2020 (26.04.2020, 09:54)admin Wrote: Add this at the start of scheduled reset script (before 2/2/2 value is set to 0): Thank you very much Admin, it works. In my opinion after the reset, this script is missing a counter status send. The monthly meter needs a first value to start the account. If it is not sent, a small value is lost in consumption. After the reset, I added this script. Code: grp.write('1/1/1', grp.getvalue('1/1/1')) |