I asked for a dzVents scripts which turns off lights once a determined time has been exceeded.
This was given. But once I tried the error as shown down below popped up. Any idea what goes wrong and how to solve?
Code: Select all
-- Configuratie: Lijst van lampen en hun respectieve tijdslimieten (in seconden)
-- applied lamps with value (seconds) after which light goes off by this script since light was switched on
local lampen_tijdslimieten = {
[1823] = 3600, -- Lamp met IDX 123 heeft een tijdslimiet van 1 uur (3600 seconden)
[1829] = 7200, -- Lamp met IDX 124 heeft een tijdslimiet van 2 uur (7200 seconden)
}
return {
on = {
timer = {'every 1 minutes'} -- Het script wordt elke minuut uitgevoerd
},
execute = function(domoticz)
-- Loop door alle lampen in de lijst
for lamp_idx, tijdslimiet in pairs(lampen_tijdslimieten) do
local lamp = domoticz.devices(lamp_idx)
-- Controleer of de lamp aanstaat
if lamp and lamp.state == 'On' then
-- Bereken hoe lang de lamp al aanstaat via 'lastUpdate'
-->>>>>>> hereunder the line with error
local tijd_aan = os.time() - lamp.lastUpdate.timestamp
-- Als de lamp langer dan de tijdslimiet aanstaat, zet deze uit
if tijd_aan > tijdslimiet then
print("De lamp " .. lamp.name .. " staat al langer dan de tijdslimiet (" .. tijdslimiet / 60 .. " minuten) aan. Zet de lamp uit.")
lamp.switchOff()
end
end
end
end
}Code: Select all
2025-10-23 11:07:00.489 Error: dzVents: An error occurred when calling event handler Script #2
2025-10-23 11:07:00.490 Error: dzVents: ...domoticz/scripts/dzVents/generated_scripts/Script #2.lua:24: attempt to index a nil value (field 'lastChange')