24.02.2022, 23:52
Hello,
Please, I hope you could help me in my issue
However, I was trying to get the weather infomation from apixu.com and write them on the KNX bus.
I just followed the exemple on the openrb.com this one (https://openrb.com/featch-weather-forecast-from-apixu), I only changed the key variable as it's mentioned in the exemple.
This is the scheduled script that I used.
No data was found on those groupe addresses,
Or if you could give me any other solution, I only wants to write 1 on the KNX bus if there's a snow tomorrow, the place is Bergen in Norway
Very grateful in advance
Please, I hope you could help me in my issue
However, I was trying to get the weather infomation from apixu.com and write them on the KNX bus.
I just followed the exemple on the openrb.com this one (https://openrb.com/featch-weather-forecast-from-apixu), I only changed the key variable as it's mentioned in the exemple.
This is the scheduled script that I used.
Code:
require('json')
https = require('ssl.https')
escape = require('socket.url').escape
key = '737ad147e5be532e3d78995a68f4a160'
location = 'Norway'
url = 'https://api.apixu.com/v1/forecast.json?key=%s&q=%s&days=2'
url = string.format(url, key, escape(location))
res = https.request(url)
data = json.pdecode(res)
if type(data) ~= 'table' then
alert('failed to load weather data')
return
end
if data.error then
log('error', data.error)
return
end
current = data.current
today = data.forecast.forecastday[ 1 ].day
tomorrow = data.forecast.forecastday[ 2 ].day
-- log(current, today, tomorrow)
-- temperature in C
grp.write('32/1/1', current.temp_c)
-- "feels like" temperature in C
grp.write('32/1/2', current.feelslike_c)
-- humidity as percentage
grp.write('32/1/3', current.humidity)
-- wind speed in kilometers per hour
grp.write('32/1/4', current.wind_kph)
-- uv index
grp.write('32/1/5', current.uv)
-- weather condition text
grp.write('32/1/6', current.condition.text)
-- pressure in millibars
grp.write('32/1/7', current.pressure_mb)
-- precipitation amount in millimeters
grp.write('32/1/8', current.precip_mm)
-- minimum temperature in celsius for the day
grp.write('32/2/1', today.mintemp_c)
-- maximum temperature in celsius for the day
grp.write('32/2/2', today.maxtemp_c)
-- average temperature in celsius for the day
grp.write('32/2/3', today.avgtemp_c)
-- average humidity as percentage
grp.write('32/2/4', today.avghumidity)
-- maximum wind speed in kilometers per hour
grp.write('32/2/5', today.maxwind_kph)
-- uv index
grp.write('32/2/6', today.uv)
-- weather condition text
grp.write('32/2/7', today.condition.text)
-- total precipitation in millimeters
grp.write('32/2/8', today.totalprecip_mm)
-- minimum temperature in celsius for the day
grp.write('32/3/1', tomorrow.mintemp_c)
-- maximum temperature in celsius for the day
grp.write('32/3/2', tomorrow.maxtemp_c)
-- average temperature in celsius for the day
grp.write('32/3/3', tomorrow.avgtemp_c)
-- average humidity as percentage
grp.write('32/3/4', tomorrow.avghumidity)
-- maximum wind speed in kilometers per hour
grp.write('32/3/5', tomorrow.maxwind_kph)
-- uv index
grp.write('32/3/6', tomorrow.uv)
-- weather condition text
grp.write('32/3/7', tomorrow.condition.text)
-- total precipitation in millimeters
grp.write('32/3/8', tomorrow.totalprecip_mm)
No data was found on those groupe addresses,
Or if you could give me any other solution, I only wants to write 1 on the KNX bus if there's a snow tomorrow, the place is Bergen in Norway
Very grateful in advance