28.08.2019, 18:02
(18.01.2019, 07:50)admin Wrote: Since there's no response from Yahoo we suggest using https://apixu.com instead. You will have to create a free account and make sure that your script does not fetch data too quickly (not less than once in 5 minutes).Now i get always the alert failed to load weather data.
Here's a short example, change key variable to your API key, location variable to required location in textual form. This example fetches current weather condition and forecast for today and tomorrow. Fields can be found in apixu documentation: https://www.apixu.com/doc/forecast.aspx (day Element).
Code:require('json') https = require('ssl.https') escape = require('socket.url').escape key = 'my_api_key' location = 'my location name' 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)
What im doing wrong ?
The same script has worked before.
Is there something changed in the apixu ?