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.

Weather Info from API
#2
yr.no provides free detailed forecast API.
This example will check if there will be snow in the next day. You only need to adjust your location (latitude/longitude) and the status object address. There might be some limits on how often the API can be accessed so create a scheduled script that runs every 3 hours or so.
Code:
latitude = 60.3894
longitude = 5.33
status = '1/1/1'

json = require('json')
http = require('socket.http')

args = 'lat=' .. latitude .. '&lon=' .. longitude
url = 'https://api.met.no/weatherapi/locationforecast/2.0/compact?' .. args
mac = 0
io.readfile('/sys/class/net/eth0/address'):gsub('%x%x', function(v)
  mac = mac * 256 + tonumber(v, 16)
end)
http.USERAGENT = 'LM ' .. mac

res, err = http.request(url)
data = json.pdecode(res)

if type(data) == 'table' then
  date = os.date('*t')
  date.day = date.day + 1
  time = os.time(date)
  timestamp = os.date('%Y-%m-%d', time)

  snow = false

  for i, entry in ipairs(data.properties.timeseries) do
    if entry.time:sub(1, #timestamp) == timestamp then

      next1h = entry.data.next_1_hours
      code = ''

      if type(next1h) == 'table' and type(next1h.summary) == 'table' then
        code = next1h.summary.symbol_code or ''
      end

      if code:find('snow') then
        snow = true
        break
      end
    end
  end

  grp.checkwrite(status, snow)
end
Reply


Messages In This Thread
Weather Info from API - by Fahd - 24.02.2022, 23:52
RE: Weather Info from API - by admin - 25.02.2022, 08:31
RE: Weather Info from API - by Mrinj - 27.05.2022, 13:14
RE: Weather Info from API - by admin - 27.05.2022, 13:19
RE: Weather Info from API - by Mrinj - 27.05.2022, 13:23
RE: Weather Info from API - by AlexLV - 08.06.2022, 05:51
RE: Weather Info from API - by RomansP - 08.06.2022, 08:52
RE: Weather Info from API - by AlexLV - 09.06.2022, 08:21
RE: Weather Info from API - by RomansP - 09.06.2022, 11:04
RE: Weather Info from API - by RomansP - 10.06.2022, 07:53
RE: Weather Info from API - by Mrinj - 22.06.2022, 08:00
RE: Weather Info from API - by Fahd - 22.06.2022, 09:59
RE: Weather Info from API - by RomansP - 22.06.2022, 08:17
RE: Weather Info from API - by Mrinj - 22.06.2022, 16:24
RE: Weather Info from API - by admin - 23.06.2022, 06:24
RE: Weather Info from API - by Mrinj - 23.06.2022, 06:36
RE: Weather Info from API - by Acla - 09.07.2022, 23:16
RE: Weather Info from API - by admin - 11.07.2022, 06:28
RE: Weather Info from API - by Acla - 11.07.2022, 21:30
RE: Weather Info from API - by RomansP - 12.07.2022, 06:20
RE: Weather Info from API - by fabiorusco - 31.10.2022, 10:48
RE: Weather Info from API - by RomansP - 31.10.2022, 13:48
RE: Weather Info from API - by fabiorusco - 03.11.2022, 06:51
RE: Weather Info from API - by fabiorusco - 03.11.2022, 13:07
RE: Weather Info from API - by RomansP - 03.11.2022, 14:44
RE: Weather Info from API - by fabiorusco - 03.11.2022, 15:09
RE: Weather Info from API - by P_marienborg - 17.01.2023, 09:15
RE: Weather Info from API - by admin - 17.01.2023, 09:15
RE: Weather Info from API - by alias74 - 09.06.2023, 08:07

Forum Jump: