summaryrefslogtreecommitdiffstats
path: root/nodes/weather_thread.lua
blob: ebf04004690174aa90458579be3130a8937ebae8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
local socket = require("socket")
local http = require("socket.http")
local json = require("vendor.json")

local weatherURL = 'https://openweathermap.org/data/2.5/weather?id=6695624&units=metric&appid=b1b15e88fa797225412429c1c50c122a1'
local insideURL = 'http://dht01.waw.hackerspace.pl/'
local insideData = {}

local r, c, h = http.request(weatherURL)
if c == 200 then
  local data = json.decode(r)

  local r, c, h = http.request(insideURL)
  if c == 200 then
    for n in string.gmatch(string.gsub(r, ",", "."), ":%s*(%S+)[*%%]") do
      insideData[#insideData+1] = n
    end
  end

  love.thread.getChannel('weather'):push({
    weather = data.weather[1].main:lower(),
    temperature = data.main.temp,
    lastUpdate = data.dt,
    sunRise = data.sys.sunrise,
    sunSet = data.sys.sunset,
    insideTemperature = insideData[1],
    insideHumidity = insideData[2],
  })
  print("Update finished")
else
  print("Update failed")
end