28.10.2021, 03:57
Many thanks for the help! It is working now.
Here my complete script for all other users to continue with it:
Here my complete script for all other users to continue with it:
Code:
require('json')
http = require('socket.http')
appid = 'xxxx'
lat = 'xxx'
lon ='xxx'
lang = 'de'
units = 'metric'
url = 'http://api.openweathermap.org/data/2.5/onecall?lat=%s&lon=%s&units=%s&lang=%s&appid=%s'
url = string.format(url, lat, lon, units, lang, appid)
res, code, headers, status = http.request(url)
log (code, status, headers)
data = json.pdecode(res)
--Fault messages:
if not data then
alert('Error converting data')
return
end
if not res then
alert('Error collecting data')
return
end
current = data.current
daily = data.daily[1]
alerts = data.alerts
-- current temperature
grp.write('41/1/1', current.temp)
--current Humidity
grp.write('41/1/3', current.humidity)
--current wind speed
grp.write('41/1/6', current.wind_speed)
--daily forecast Temperature min
grp.write('41/1/4', daily.temp.min)
--daily forecast Temperature max
grp.write('41/1/5', daily.temp.max)
-- daily Weather condition
grp.write('41/1/2', daily.weather[1].description)
--daily forecast wind gust
grp.write('41/1/7', daily.wind_gust)
--daily forecast max UV Index
grp.write('41/1/8', daily.uvi)
--daily forecast max UV Index
grp.write('41/1/9', (daily.rain or 0))
--alerts
if type(alerts) == 'table' and type(alerts[1]) == 'table' then
alert_event = alerts[1].event
end
grp.write('41/1/10', alert_event or '')
wetterprognose = math.ceil(daily.temp.min).."-"..math.ceil(daily.temp.max).."/"..(daily.rain or 0).."/"..math.ceil(daily.wind_gust).."/"..math.ceil(daily.uvi)
--sending daily weather forecast to MDT Taster
grp.write('7/2/3', wetterprognose)