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.

Problem runnig script
#1
Hello. There is a problem with script execution. I can't figure out what the reason is.


Code:
local http = require("socket.http") local json = require("json") local url = "https://api.openweathermap.org/data/2.5/weather?lat=**,75&lon=**,61&appid=*******35447a18d48ad0b&units=metric" function createOrUpdateScript(name, script, time) local h_time, m_time = string.match(time, "(%d+):(%d+)") local data = {     type = 'scheduled',     name = name,     active = 1,     params = string.format("%d %d * * *", m_time, h_time),     subparams = 0,     --script = '',     category = 'Service',     description = '', }      local exists = script.get(data.name)         --log(exists)     if exists ~= nil then         log(data.name, 'Script exists, updating')         data.id = exists.id         db:update('scripting', data, { id = exists.id })     else         log(data.name, 'Script does not exist')         db:insert('scripting', data)         data.id = db:getlastautoid()     end     script.save(data, true)     script.reloadsingle(data) end --END FUNCTION      local response, status, headers, statusline = http.request(url) if status == 200 then         local data = json.decode(response) --log(data)              temp_min = data.main.temp_min       TempReal = data.main.temp       wind = data.wind.speed       dusk = os.date("%H:%M",data.sys.sunset)       sunrise = os.date("%H:%M",data.sys.sunrise)       rain = data.weather[1].main       createOrUpdateScript("Light_On", script, dusk)       os.sleep(0.5)         createOrUpdateScript("Light_Off", script, sunrise)       storage.set('temp', temp_min)              grp.write('2/2/5', wind)       grp.write('2/2/0', TempReal)       log('temp real ', TempReal)   else     -- HTTP     log("Errore. Status: " .. status)       telegram('Errore fetch weather. status: ' .. status) end if rain == "Clear" or rain == "Clouds" then     grp.write('2/2/4', false)   else     grp.write('2/2/4', true)   end if (1 >= TempReal) and ( TempReal >= -10) then   grp.write('2/0/0', true)         else   grp.write('2/0/0', false)   end

This code creates 2 scripts with the current sunrise and sunset times. I will not provide the contents of the created scripts, but if necessary I will provide them. The content is simple: turn the light group on or off. And the problem is that sometimes they just don't get done. I don't understand the reason...
Entry in script: log('done') doesn't output anything to the log.
Perhaps I missed something when creating the script? I checked it on 2 different LMs. The firmware on the devices is the same for 2023.

I'll add. The script is allowed and when I try to launch using the button in the browser, the launch is also unsuccessful, the script simply does not execute. The only way to run it is:
disable -> save -> enable -> run
Reply


Messages In This Thread
Problem runnig script - by spoty2008 - 02.11.2023, 13:21
RE: Problem runnig script - by admin - 02.11.2023, 13:53
RE: Problem runnig script - by spoty2008 - 02.11.2023, 14:05

Forum Jump: