Hello!
I'm have a problem with the memory load/usage on my LM Ambient.
Whenever i reset the LM Ambient, the Memory load is around 15-19%, but each day it increases by 2-4%.
A few days ago the load was at 90%, so I tried installing the newest firmware, but the same thing keeps happening.
Is there a possibility that any of my scripts could be causing this? I'm relatively new to LUA so it would be fair to assume that this might be of my own doing!
Some additional info
I have attached my trend logs.
No object logs are active.
I'm only using Z-Wave products, about 40 of them are connected to my LM.
A function/user.library that is called every 1 second for 4 different light zones in the same resident script
A resident script that runs every 5 seconds
A resident script that runs every 60 seconds
I'm have a problem with the memory load/usage on my LM Ambient.
Whenever i reset the LM Ambient, the Memory load is around 15-19%, but each day it increases by 2-4%.
A few days ago the load was at 90%, so I tried installing the newest firmware, but the same thing keeps happening.
Is there a possibility that any of my scripts could be causing this? I'm relatively new to LUA so it would be fair to assume that this might be of my own doing!
Some additional info
I have attached my trend logs.
No object logs are active.
I'm only using Z-Wave products, about 40 of them are connected to my LM.
A function/user.library that is called every 1 second for 4 different light zones in the same resident script
Code:
function auto_lysstyring(auto_on, nattsenking, sensor, light_type, light_control, dim_value_day, dim_value_night, off_time)
if grp.getvalue(auto_on) == true then
offtime = off_time -- Tid i minutter for å slå av lys etter siste bevegelse
dim_day = dim_value_day -- Dimmeverdi på dagtid
dim_night = dim_value_night -- Dimmeverdi etter nattsenking
nattsenk = grp.getvalue(nattsenking) -- Henter nattsenk status true/false
mov_sensor = grp.getvalue(sensor) -- Sjekker bevegelse i rommet
light_type_check = light_type
light_control_check = grp.getvalue(light_control)
obj_find = grp.find(sensor)
delta = os.time() - obj_find.updatetime
if light_type_check == 1 then -- Light type 1 for dimming
if mov_sensor == true then
if light_control_check < 10 then
if nattsenk == true then
grp.update(light_control, dim_night)
elseif nattsenk == false then
grp.update(light_control, dim_day)
end
end
end
if mov_sensor == false and delta >= offtime * 60 then
if light_control_check > 0 then
grp.update(light_control, 0)
end
end
end
if light_type_check == 0 then -- Light type 1 for av/på
if mov_sensor == true then
if light_control_check ==false then
grp.update(light_control, true)
end
end
if mov_sensor == false and delta >= offtime * 60 then
if light_control_check == true then
grp.update(light_control, false)
end
end
end
else
end
end
A resident script that runs every 5 seconds
Code:
obj_find = grp.find('1/1/35') -- Gesture sensor value
delta = os.time() - obj_find.updatetime
if delta >= 5 and delta < 9.99 then
gesture = grp.getvalue('1/1/35')
-- Green light, ECO Mode. Sets thermostats to ECO and turns off all lights
if gesture == 1 then
-- upate HVAC MODE to ECO
grp.update('1/1/66', 3)
-- Turn off all lights
bit_objects = grp.tag('ALT_AV_BIT')
byte_objects = grp.tag('ALT_AV_BYTE')
for index, value in ipairs(bit_objects) do
grp.update(value.address, false)
end
for index, value in ipairs(byte_objects) do
grp.update(value.address, 0)
end
end
-- Orange light, Comfort mode. Sets thermostats to Comfort, lights are untouched.
if gesture == 2 then
-- upate HVAC MODE to Comfort
grp.update('1/1/66', 1)
end
-- Black Light, turns off all lights.
if gesture == 3 then
-- Turn off all lights
bit_objects = grp.tag('ALT_AV_BIT')
byte_objects = grp.tag('ALT_AV_BYTE')
for index, value in ipairs(bit_objects) do
grp.update(value.address, false)
end
for index, value in ipairs(byte_objects) do
grp.update(value.address, 0)
end
end
-- yellow Light, turns on all lights.
if gesture == 4 then
-- Turn off all lights
bit_objects = grp.tag('ALT_AV_BIT')
byte_objects = grp.tag('ALT_AV_BYTE')
for index, value in ipairs(bit_objects) do
grp.update(value.address, true)
end
for index, value in ipairs(byte_objects) do
grp.update(value.address, 90)
end
end
end
Code:
-- get an array of objects tagged 'tag name'
myobjects = grp.tag('Battery')
batteryfails = 0
-- arraytable = { 'a', 'b', 'c' }
for index, value in ipairs(myobjects) do
batterycheck = grp.getvalue(value.address)
if batterycheck < 10 then --rapporterer alle batterier under 10%
batteryfails = batteryfails + 1
end
end
if batteryfails > 0 then
grp.update('1/1/105', batteryfails)
grp.update('1/1/104', true)
elseif batteryfails == 0 and grp.getvalue('1/1/104') == true then
grp.update('1/1/105', batteryfails)
grp.update('1/1/104', false)
end