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.

Script working as "resident" but not "scheduled"
#1
Hi.
I am running a PID-controller from a resident script, every 60 seconds.
However my water temperature change is quite slow changing and I try to run the same script with the same PID-controller from scheduled scripts instead.

I have now copied all code and disabled the resident script.
However, when i schedule this script it doesn't run.
No log, nothing. Even if i klick "run script" nothing happens. 
Other scheduled scripts works just fine.

Any clues?

Code:
-- Resident: Golvvärme styrvärde regulator pid nedan: -- Ange avrundningssteget här (t.ex. 0.1, 0.2, 0.25, 0.5, etc.) local round_step = 0.20  -- Du kan ändra detta till det steg du vill ha.. -- Funktion för att avrunda till närmaste "step" local function round_to_nearest(value, step)   return math.floor(value / step + 0.5) * step end -- Variabel för att slå på eller av temperaturskillnadskontrollen local temperature_diff_enabled = false  -- Sätt till 'true' för att kontrollera temperaturskillnaden, 'false' för att inaktivera -- Hämta nuvarande och börvärde från sensorer och avrunda med angivet steg local current_value = round_to_nearest(grp.getvalue('5/5/1'), round_step) -- Framledning ärvärde local setpoint_value = round_to_nearest(grp.getvalue('5/5/0'), round_step) -- Framledning börvärde -- Kontrollera temperaturskillnad efter avrundning local temperature_diff = math.abs(setpoint_value - current_value) local limit = 0.20 -- Gränsen för temperaturskillnad -- Initiera PID om det behövs if not p then   require('user.pid')   p = PID:init({     current = '5/5/1', -- Framledning ärvärde     setpoint = '5/5/0', -- Framledning börvärde     output = '5/5/15',  -- GV styrvärde     round_step = round_step -- Här skickas round_step till PID   }) end -- Kontrollera om temperaturskillnaden ska användas för att köra PID if temperature_diff_enabled then   -- Endast kör PID om temperaturskillnaden är signifikant   if temperature_diff > limit then     local previous_output = p.output     p:run()     if p.output ~= previous_output then       -- Logga värdena tillsammans med styrvärdet       log(string.format("Styrvärde skickat till 5/5/15: %.2f (Ärvärde: %.2f, Börvärde: %.2f, Skillnad: %.2f°C)",                         p.output, current_value, setpoint_value, temperature_diff))     end   else     log("Ingen signifikant avvikelse (" .. string.format("%.2f", temperature_diff) .. "°C), limit " .. string.format("%.2f", limit) .. "°C, PID ej körd. (Börvärde: " .. string.format("%.2f", setpoint_value) .. "°C, Ärvärde: " .. string.format("%.2f", current_value) .. "°C)")   end else   -- PID körs alltid, oavsett temperaturskillnad   local previous_output = p.output   p:run()   if p.output ~= previous_output then     -- Logga värdena tillsammans med styrvärdet     log(string.format("Styrvärde skickat till 5/5/15: %.2f (Ärvärde: %.2f, Börvärde: %.2f, Skillnad: %.2f°C)",                       p.output, current_value, setpoint_value, temperature_diff))   end end
Reply


Messages In This Thread
Script working as "resident" but not "scheduled" - by jerryhenke - 23.01.2025, 11:22

Forum Jump: